Files
weave-scope/experimental/bridge/net_test.go
2015-05-19 10:02:58 +00:00

42 lines
1.4 KiB
Go

package main
import (
"net"
"testing"
)
func TestValidRemoteAddr(t *testing.T) {
for input, expected := range map[string]bool{
"localhost": false,
"127.0.0.1": false, // should be same as loopback
"127.1.2.3": false, // 127.0.0.0/8 is all loopback
"0.0.0.0": false,
"224.0.0.1": false, // all systems
"224.0.0.2": false, // all routers
"224.0.0.22": false,
"255.255.255.255": false, // broadcast
"1.2.3.4": true,
"::": false, // unspecified
"0:0:0:0:0:0:0:0": false, // unspecified (alternate form)
"b8:27:eb:a4:bf:6e": false,
"fe80::1240:f3ff:fe80:5474": false, // loopback
"fe80::1": false, // loopback
"::1": false, // loopback
"0:0:0:0:0:0:0:1": false, // loopback (alternate form)
"2001:db8::1:0:0:1": true, // valid
// http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml
"FF01:0:0:0:0:0:0:1": false, // Node-local all-nodes
// "FF01:0:0:0:0:0:0:2": false, // Node-local all-routers, isn't spec'd
// in package net/ip
"FF02:0:0:0:0:0:0:1": false, // Link-local all-nodes
"FF02:0:0:0:0:0:0:2": false, // Link-local all-routers
} {
if got := validateRemoteAddr(net.ParseIP(input)); expected != got {
t.Errorf("%s: expected %v, got %v", input, expected, got)
}
}
}