Skip to content
Snippets Groups Projects
Select Git revision
  • 0e00270bea8588545ea720c2642c4458cd3af7da
  • master default protected
  • renovate/configure
  • 2-create-ospf-example
  • feature/isis
  • migrate-to-github-actions
  • aspath/convenience
  • hashroute/public
  • cmd/rismirror
  • riscli/vrf
  • fix/bmp_down
  • ris/logging
  • fix/ris_race
  • fix/bmp_metrics
  • please-go-vet
  • fix/lock_copy
  • fix/dedup_mem
  • add-get-routers-rpc
  • feature/bgp_md5
  • is-is/srv
  • feature/ris/lpm_any
  • v0.0.3-pre4
  • v0.0.3-pre3
  • v0.0.3-pre2
  • v0.0.3-pre1
  • v0.0.2-pre9
  • v0.0.2-pre8
  • v0.0.2-pre7
  • v0.0.2-pre6
  • v0.0.2-pre5
  • v0.0.2-pre4
  • v0.0.2-pre3
  • v0.0.2-pre2
  • v0.0.2-pre1
  • v0.0.1-pre10
  • v0.0.1-pre9
  • v0.0.1-pre7
  • v0.0.1-pre8
  • v0.0.1-pre6
  • v0.0.1-pre4
  • v0.0.1-pre5
41 results

vrf_test.go

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    vrf_test.go 2.51 KiB
    package vrf
    
    import (
    	"testing"
    
    	"github.com/stretchr/testify/assert"
    )
    
    func TestNewWithDuplicate(t *testing.T) {
    	_, err := NewDefaultVRF()
    	assert.Nil(t, err, "no error on first invocation")
    
    	_, err = NewDefaultVRF()
    	assert.NotNil(t, err, "ambigious VRF name")
    }
    
    func TestIPv4UnicastRIBWith(t *testing.T) {
    	v := newUntrackedVRF("master1", uint32(1))
    	rib, err := v.CreateIPv4UnicastLocRIB("inet.0")
    
    	assert.Equal(t, rib, v.IPv4UnicastRIB())
    	assert.Nil(t, err, "error must be nil")
    }
    
    func TestIPv6UnicastRIB(t *testing.T) {
    	v := newUntrackedVRF("master2", uint32(2))
    	rib, err := v.CreateIPv6UnicastLocRIB("inet6.0")
    
    	assert.Equal(t, rib, v.IPv6UnicastRIB())
    	assert.Nil(t, err, "error must be nil")
    }
    
    func TestCreateLocRIBTwice(t *testing.T) {
    	v := newUntrackedVRF("master3", uint32(3))
    	_, err := v.CreateIPv6UnicastLocRIB("inet6.0")
    	assert.Nil(t, err, "error must be nil on first invokation")
    
    	_, err = v.CreateIPv6UnicastLocRIB("inet6.0")
    	assert.NotNil(t, err, "error must not be nil on second invokation")
    }
    
    func TestRIBByName(t *testing.T) {
    	v := newUntrackedVRF("master4", uint32(4))
    	rib, _ := v.CreateIPv6UnicastLocRIB("inet6.0")
    	assert.NotNil(t, rib, "rib must not be nil after creation")
    
    	foundRIB, found := v.RIBByName("inet6.0")
    	assert.True(t, found)
    	assert.Exactly(t, rib, foundRIB)
    }
    
    func TestName(t *testing.T) {
    	v := newUntrackedVRF("foo", 5)
    	assert.Equal(t, "foo", v.Name())
    }
    func TestID(t *testing.T) {
    	v := newUntrackedVRF("foo", uint32(6))
    	assert.Equal(t, uint32(6), v.ID())
    }
    
    func TestUnregister(t *testing.T) {
    	vrfName := "registeredVRF"
    	vrfID := uint32(7)
    	v, err := New(vrfName, vrfID)
    	assert.Nil(t, err, "error must be nil on first invokation")
    
    	_, err = New(vrfName, vrfID)
    	assert.NotNil(t, err, "error must not be nil on second invokation")
    
    	_, found := globalRegistry.vrfsName[vrfName]
    	assert.True(t, found, "vrf must be in global registry")
    
    	_, found = globalRegistry.vrfsID[vrfID]
    	assert.True(t, found, "vrf must be in global registry")
    
    	v.Unregister()
    
    	_, found = globalRegistry.vrfsName[vrfName]
    	assert.False(t, found, "vrf must not be in global registry")
    
    	_, found = globalRegistry.vrfsID[vrfID]
    	assert.False(t, found, "vrf must not be in global registry")
    }
    
    func TestGetRIBNames(t *testing.T) {
    	vrfName := "namedRIBs"
    	vrfID := uint32(8)
    	v, err := New(vrfName, vrfID)
    	assert.Nil(t, err, "error must be nil on first invokation")
    
    	ribNames := v.GetRIBNames()
    	expectedRibNames := []string{"inet.8", "inet6.8"}
    
    	assert.EqualValues(t, expectedRibNames, ribNames, "rib names must match")
    }