Skip to content
Snippets Groups Projects
Select Git revision
  • 699f7bfd1f522621d164d0cad81cd98fd8eecb45
  • 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

decoder.go

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ip_test.go 2.33 KiB
    package net
    
    import (
    	"testing"
    
    	"github.com/stretchr/testify/assert"
    )
    
    func TestToUint32(t *testing.T) {
    	tests := []struct {
    		name     string
    		val      uint64
    		expected uint32
    	}{
    		{
    			name:     "IP: 172.24.5.1",
    			val:      2887255297,
    			expected: 2887255297,
    		},
    		{
    			name:     "bigger than IPv4 address",
    			val:      2887255295 + 17179869184,
    			expected: 2887255295,
    		},
    	}
    
    	for _, test := range tests {
    		t.Run(test.name, func(t *testing.T) {
    			ip := IP{
    				lower: test.val,
    			}
    			assert.Equal(t, test.expected, ip.ToUint32())
    		})
    	}
    }
    
    func TestCompare(t *testing.T) {
    	tests := []struct {
    		name     string
    		ip       IP
    		other    IP
    		expected int
    	}{
    		{
    			name: "equal",
    			ip: IP{
    				lower:  100,
    				higher: 200,
    			},
    			other: IP{
    				lower:  100,
    				higher: 200,
    			},
    			expected: 0,
    		},
    		{
    			name: "greater higher word",
    			ip: IP{
    				lower:  123,
    				higher: 200,
    			},
    			other: IP{
    				lower:  456,
    				higher: 100,
    			},
    			expected: 1,
    		},
    		{
    			name: "lesser higher word",
    			ip: IP{
    				lower:  123,
    				higher: 100,
    			},
    			other: IP{
    				lower:  456,
    				higher: 200,
    			},
    			expected: -1,
    		},
    		{
    			name: "equal higher word but lesser lower word",
    			ip: IP{
    				lower:  456,
    				higher: 100,
    			},
    			other: IP{
    				lower:  123,
    				higher: 100,
    			},
    			expected: 1,
    		},
    		{
    			name: "equal higher word but lesser lower word",
    			ip: IP{
    				lower:  123,
    				higher: 100,
    			},
    			other: IP{
    				lower:  456,
    				higher: 100,
    			},
    			expected: -1,
    		},
    	}
    
    	for _, test := range tests {
    		t.Run(test.name, func(t *testing.T) {
    			assert.Equal(t, test.expected, test.ip.Compare(test.other))
    		})
    	}
    }
    
    func TestIPString(t *testing.T) {
    	tests := []struct {
    		ip       IP
    		expected string
    	}{
    		{
    			ip:       IPv4(strAddr("192.168.0.1")),
    			expected: "192.168.0.1",
    		},
    		{
    			ip:       IPv4(strAddr("0.0.0.0")),
    			expected: "0.0.0.0",
    		},
    		{
    			ip:       IPv4(strAddr("255.255.255.255")),
    			expected: "255.255.255.255",
    		},
    		{
    			ip:       IPv6(0, 0),
    			expected: "0:0:0:0:0:0:0:0",
    		},
    		{
    			ip:       IPv6(2306131596687708724, 6230974922281175806),
    			expected: "2001:678:1E0:1234:5678:DEAD:BEEF:CAFE",
    		},
    		{
    			ip:       IPv6(^uint64(0), ^uint64(0)),
    			expected: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF",
    		},
    	}
    
    	for _, test := range tests {
    		assert.Equal(t, test.expected, test.ip.String())
    	}
    }