diff options
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/ipv4addr_test.go')
-rw-r--r-- | vendor/github.com/hashicorp/go-sockaddr/ipv4addr_test.go | 991 |
1 files changed, 0 insertions, 991 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/ipv4addr_test.go b/vendor/github.com/hashicorp/go-sockaddr/ipv4addr_test.go deleted file mode 100644 index 0b3d8b0c6..000000000 --- a/vendor/github.com/hashicorp/go-sockaddr/ipv4addr_test.go +++ /dev/null @@ -1,991 +0,0 @@ -package sockaddr_test - -import ( - "fmt" - "testing" - - "github.com/hashicorp/go-sockaddr" -) - -func TestSockAddr_IPv4Addr(t *testing.T) { - tests := []struct { - z00_input string - z01_addrHexStr string - z02_addrBinStr string - z03_addrStr string - z04_NetIPStringOut string - z05_addrInt sockaddr.IPv4Address - z06_netInt sockaddr.IPv4Network - z07_ipMaskStr string - z08_maskbits int - z09_NetIPNetStringOut string - z10_maskInt sockaddr.IPv4Mask - z11_networkStr string - z12_octets []int - z13_firstUsable string - z14_lastUsable string - z15_broadcast string - z16_portInt sockaddr.IPPort - z17_DialPacketArgs []string - z18_DialStreamArgs []string - z19_ListenPacketArgs []string - z20_ListenStreamArgs []string - z21_IsRFC1918 bool - z22_IsRFC6598 bool - z23_IsRFC6890 bool - z99_pass bool - }{ - { // 0 - z00_input: "0.0.0.0", - z01_addrHexStr: "00000000", - z02_addrBinStr: "00000000000000000000000000000000", - z03_addrStr: "0.0.0.0", - z04_NetIPStringOut: "0.0.0.0", - z05_addrInt: 0, - z06_netInt: 0, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "0.0.0.0/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "0.0.0.0", - z12_octets: []int{0, 0, 0, 0}, - z13_firstUsable: "0.0.0.0", - z14_lastUsable: "0.0.0.0", - z15_broadcast: "0.0.0.0", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "0.0.0.0:0"}, - z20_ListenStreamArgs: []string{"tcp4", "0.0.0.0:0"}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 1 - z00_input: "0.0.0.0:80", - z01_addrHexStr: "00000000", - z02_addrBinStr: "00000000000000000000000000000000", - z03_addrStr: "0.0.0.0:80", - z04_NetIPStringOut: "0.0.0.0", - z05_addrInt: 0, - z06_netInt: 0, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "0.0.0.0/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "0.0.0.0", - z12_octets: []int{0, 0, 0, 0}, - z13_firstUsable: "0.0.0.0", - z14_lastUsable: "0.0.0.0", - z15_broadcast: "0.0.0.0", - z16_portInt: 80, - z17_DialPacketArgs: []string{"udp4", "0.0.0.0:80"}, - z18_DialStreamArgs: []string{"tcp4", "0.0.0.0:80"}, - z19_ListenPacketArgs: []string{"udp4", "0.0.0.0:80"}, - z20_ListenStreamArgs: []string{"tcp4", "0.0.0.0:80"}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 2 - z00_input: "0.0.0.0/0", - z01_addrHexStr: "00000000", - z02_addrBinStr: "00000000000000000000000000000000", - z03_addrStr: "0.0.0.0/0", - z04_NetIPStringOut: "0.0.0.0", - z05_addrInt: 0, - z06_netInt: 0, - z07_ipMaskStr: "00000000", - z09_NetIPNetStringOut: "0.0.0.0/0", - z10_maskInt: 0, - z11_networkStr: "0.0.0.0/0", - z12_octets: []int{0, 0, 0, 0}, - z13_firstUsable: "0.0.0.1", - z14_lastUsable: "255.255.255.254", - z15_broadcast: "255.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z99_pass: true, - }, - { // 3 - z00_input: "0.0.0.1", - z01_addrHexStr: "00000001", - z02_addrBinStr: "00000000000000000000000000000001", - z03_addrStr: "0.0.0.1", - z04_NetIPStringOut: "0.0.0.1", - z05_addrInt: 1, - z06_netInt: 1, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "0.0.0.1/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "0.0.0.1", - z12_octets: []int{0, 0, 0, 1}, - z13_firstUsable: "0.0.0.1", - z14_lastUsable: "0.0.0.1", - z15_broadcast: "0.0.0.1", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "0.0.0.1:0"}, - z20_ListenStreamArgs: []string{"tcp4", "0.0.0.1:0"}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 4 - z00_input: "0.0.0.1/1", - z01_addrHexStr: "00000001", - z02_addrBinStr: "00000000000000000000000000000001", - z03_addrStr: "0.0.0.1/1", - z04_NetIPStringOut: "0.0.0.1", - z05_addrInt: 1, - z06_netInt: 0, - z07_ipMaskStr: "80000000", - z08_maskbits: 1, - z09_NetIPNetStringOut: "0.0.0.0/1", - z10_maskInt: 2147483648, - z11_networkStr: "0.0.0.0/1", - z12_octets: []int{0, 0, 0, 1}, - z13_firstUsable: "0.0.0.1", - z14_lastUsable: "127.255.255.254", - z15_broadcast: "127.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z99_pass: true, - }, - { // 5 - z00_input: "1.2.3.4", - z01_addrHexStr: "01020304", - z02_addrBinStr: "00000001000000100000001100000100", - z03_addrStr: "1.2.3.4", - z04_NetIPStringOut: "1.2.3.4", - z05_addrInt: 16909060, - z06_netInt: 16909060, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "1.2.3.4/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "1.2.3.4", - z12_octets: []int{1, 2, 3, 4}, - z13_firstUsable: "1.2.3.4", - z14_lastUsable: "1.2.3.4", - z15_broadcast: "1.2.3.4", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "1.2.3.4:0"}, - z20_ListenStreamArgs: []string{"tcp4", "1.2.3.4:0"}, - z99_pass: true, - }, - { // 6 - z00_input: "10.0.0.0/8", - z01_addrHexStr: "0a000000", - z02_addrBinStr: "00001010000000000000000000000000", - z03_addrStr: "10.0.0.0/8", - z04_NetIPStringOut: "10.0.0.0", - z05_addrInt: 167772160, - z06_netInt: 167772160, - z07_ipMaskStr: "ff000000", - z08_maskbits: 8, - z09_NetIPNetStringOut: "10.0.0.0/8", - z10_maskInt: 4278190080, - z11_networkStr: "10.0.0.0/8", - z12_octets: []int{10, 0, 0, 0}, - z13_firstUsable: "10.0.0.1", - z14_lastUsable: "10.255.255.254", - z15_broadcast: "10.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 7 - z00_input: "128.0.0.0", - z01_addrHexStr: "80000000", - z02_addrBinStr: "10000000000000000000000000000000", - z03_addrStr: "128.0.0.0", - z04_NetIPStringOut: "128.0.0.0", - z05_addrInt: 2147483648, - z06_netInt: 2147483648, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "128.0.0.0/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "128.0.0.0", - z12_octets: []int{128, 0, 0, 0}, - z13_firstUsable: "128.0.0.0", - z14_lastUsable: "128.0.0.0", - z15_broadcast: "128.0.0.0", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "128.0.0.0:0"}, - z20_ListenStreamArgs: []string{"tcp4", "128.0.0.0:0"}, - z99_pass: true, - }, - { // 8 - z00_input: "128.95.120.1/32", - z01_addrHexStr: "805f7801", - z02_addrBinStr: "10000000010111110111100000000001", - z03_addrStr: "128.95.120.1", - z04_NetIPStringOut: "128.95.120.1", - z05_addrInt: 2153740289, - z06_netInt: 2153740289, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "128.95.120.1/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "128.95.120.1", - z12_octets: []int{128, 95, 120, 1}, - z13_firstUsable: "128.95.120.1", - z14_lastUsable: "128.95.120.1", - z15_broadcast: "128.95.120.1", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "128.95.120.1:0"}, - z20_ListenStreamArgs: []string{"tcp4", "128.95.120.1:0"}, - z99_pass: true, - }, - { // 9 - z00_input: "172.16.1.3/12", - z01_addrHexStr: "ac100103", - z02_addrBinStr: "10101100000100000000000100000011", - z03_addrStr: "172.16.1.3/12", - z04_NetIPStringOut: "172.16.1.3", - z05_addrInt: 2886729987, - z06_netInt: 2886729728, - z07_ipMaskStr: "fff00000", - z08_maskbits: 12, - z09_NetIPNetStringOut: "172.16.0.0/12", - z10_maskInt: 4293918720, - z11_networkStr: "172.16.0.0/12", - z12_octets: []int{172, 16, 1, 3}, - z13_firstUsable: "172.16.0.1", - z14_lastUsable: "172.31.255.254", - z15_broadcast: "172.31.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 10 - z00_input: "192.168.0.0/16", - z01_addrHexStr: "c0a80000", - z02_addrBinStr: "11000000101010000000000000000000", - z03_addrStr: "192.168.0.0/16", - z04_NetIPStringOut: "192.168.0.0", - z05_addrInt: 3232235520, - z06_netInt: 3232235520, - z07_ipMaskStr: "ffff0000", - z08_maskbits: 16, - z09_NetIPNetStringOut: "192.168.0.0/16", - z10_maskInt: 4294901760, - z11_networkStr: "192.168.0.0/16", - z12_octets: []int{192, 168, 0, 0}, - z13_firstUsable: "192.168.0.1", - z14_lastUsable: "192.168.255.254", - z15_broadcast: "192.168.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 11 - z00_input: "192.168.0.1", - z01_addrHexStr: "c0a80001", - z02_addrBinStr: "11000000101010000000000000000001", - z03_addrStr: "192.168.0.1", - z04_NetIPStringOut: "192.168.0.1", - z05_addrInt: 3232235521, - z06_netInt: 3232235521, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "192.168.0.1/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "192.168.0.1", - z12_octets: []int{192, 168, 0, 1}, - z13_firstUsable: "192.168.0.1", - z14_lastUsable: "192.168.0.1", - z15_broadcast: "192.168.0.1", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "192.168.0.1:0"}, - z20_ListenStreamArgs: []string{"tcp4", "192.168.0.1:0"}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 12 - z00_input: "192.168.0.2/31", - z01_addrHexStr: "c0a80002", - z02_addrBinStr: "11000000101010000000000000000010", - z03_addrStr: "192.168.0.2/31", - z04_NetIPStringOut: "192.168.0.2", - z05_addrInt: 3232235522, - z06_netInt: 3232235522, - z07_ipMaskStr: "fffffffe", - z08_maskbits: 31, - z09_NetIPNetStringOut: "192.168.0.2/31", - z10_maskInt: 4294967294, - z11_networkStr: "192.168.0.2/31", - z12_octets: []int{192, 168, 0, 2}, - z13_firstUsable: "192.168.0.2", - z14_lastUsable: "192.168.0.3", - z15_broadcast: "192.168.0.3", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 13 - z00_input: "192.168.1.10/24", - z01_addrHexStr: "c0a8010a", - z02_addrBinStr: "11000000101010000000000100001010", - z03_addrStr: "192.168.1.10/24", - z04_NetIPStringOut: "192.168.1.10", - z05_addrInt: 3232235786, - z06_netInt: 3232235776, - z07_ipMaskStr: "ffffff00", - z08_maskbits: 24, - z09_NetIPNetStringOut: "192.168.1.0/24", - z10_maskInt: 4294967040, - z11_networkStr: "192.168.1.0/24", - z12_octets: []int{192, 168, 1, 10}, - z13_firstUsable: "192.168.1.1", - z14_lastUsable: "192.168.1.254", - z15_broadcast: "192.168.1.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 14 - z00_input: "192.168.10.10/16", - z01_addrHexStr: "c0a80a0a", - z02_addrBinStr: "11000000101010000000101000001010", - z03_addrStr: "192.168.10.10/16", - z04_NetIPStringOut: "192.168.10.10", - z05_addrInt: 3232238090, - z06_netInt: 3232235520, - z07_ipMaskStr: "ffff0000", - z08_maskbits: 16, - z09_NetIPNetStringOut: "192.168.0.0/16", - z10_maskInt: 4294901760, - z11_networkStr: "192.168.0.0/16", - z12_octets: []int{192, 168, 10, 10}, - z13_firstUsable: "192.168.0.1", - z14_lastUsable: "192.168.255.254", - z15_broadcast: "192.168.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z21_IsRFC1918: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 15 - z00_input: "240.0.0.0/4", - z01_addrHexStr: "f0000000", - z02_addrBinStr: "11110000000000000000000000000000", - z03_addrStr: "240.0.0.0/4", - z04_NetIPStringOut: "240.0.0.0", - z05_addrInt: 4026531840, - z06_netInt: 4026531840, - z07_ipMaskStr: "f0000000", - z08_maskbits: 4, - z09_NetIPNetStringOut: "240.0.0.0/4", - z10_maskInt: 4026531840, - z11_networkStr: "240.0.0.0/4", - z12_octets: []int{240, 0, 0, 0}, - z13_firstUsable: "240.0.0.1", - z14_lastUsable: "255.255.255.254", - z15_broadcast: "255.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 16 - z00_input: "240.0.0.1/4", - z01_addrHexStr: "f0000001", - z02_addrBinStr: "11110000000000000000000000000001", - z03_addrStr: "240.0.0.1/4", - z04_NetIPStringOut: "240.0.0.1", - z05_addrInt: 4026531841, - z06_netInt: 4026531840, - z07_ipMaskStr: "f0000000", - z08_maskbits: 4, - z09_NetIPNetStringOut: "240.0.0.0/4", - z10_maskInt: 4026531840, - z11_networkStr: "240.0.0.0/4", - z12_octets: []int{240, 0, 0, 1}, - z13_firstUsable: "240.0.0.1", - z14_lastUsable: "255.255.255.254", - z15_broadcast: "255.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 17 - z00_input: "255.255.255.255", - z01_addrHexStr: "ffffffff", - z02_addrBinStr: "11111111111111111111111111111111", - z03_addrStr: "255.255.255.255", - z04_NetIPStringOut: "255.255.255.255", - z05_addrInt: 4294967295, - z06_netInt: 4294967295, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "255.255.255.255/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "255.255.255.255", - z12_octets: []int{255, 255, 255, 255}, - z13_firstUsable: "255.255.255.255", - z14_lastUsable: "255.255.255.255", - z15_broadcast: "255.255.255.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "255.255.255.255:0"}, - z20_ListenStreamArgs: []string{"tcp4", "255.255.255.255:0"}, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 18 - z00_input: "www.hashicorp.com", - z99_pass: false, - }, - { // 19 - z00_input: "2001:DB8::/48", - z99_pass: false, - }, - { // 20 - z00_input: "2001:DB8::", - z99_pass: false, - }, - { // 21 - z00_input: "128.95.120.1:8600", - z01_addrHexStr: "805f7801", - z02_addrBinStr: "10000000010111110111100000000001", - z03_addrStr: "128.95.120.1:8600", - z04_NetIPStringOut: "128.95.120.1", - z05_addrInt: 2153740289, - z06_netInt: 2153740289, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "128.95.120.1/32", - z10_maskInt: sockaddr.IPv4HostMask, - z11_networkStr: "128.95.120.1", - z12_octets: []int{128, 95, 120, 1}, - z13_firstUsable: "128.95.120.1", - z14_lastUsable: "128.95.120.1", - z15_broadcast: "128.95.120.1", - z16_portInt: 8600, - z17_DialPacketArgs: []string{"udp4", "128.95.120.1:8600"}, - z18_DialStreamArgs: []string{"tcp4", "128.95.120.1:8600"}, - z19_ListenPacketArgs: []string{"udp4", "128.95.120.1:8600"}, - z20_ListenStreamArgs: []string{"tcp4", "128.95.120.1:8600"}, - z99_pass: true, - }, - { // 22 - z00_input: "100.64.2.3/23", - z01_addrHexStr: "64400203", - z02_addrBinStr: "01100100010000000000001000000011", - z03_addrStr: "100.64.2.3/23", - z04_NetIPStringOut: "100.64.2.3", - z05_addrInt: 1681916419, - z06_netInt: 1681916416, - z07_ipMaskStr: "fffffe00", - z08_maskbits: 23, - z09_NetIPNetStringOut: "100.64.2.0/23", - z10_maskInt: 4294966784, - z11_networkStr: "100.64.2.0/23", - z12_octets: []int{100, 64, 2, 3}, - z13_firstUsable: "100.64.2.1", - z14_lastUsable: "100.64.3.254", - z15_broadcast: "100.64.3.255", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", ""}, - z20_ListenStreamArgs: []string{"tcp4", ""}, - z22_IsRFC6598: true, - z23_IsRFC6890: true, - z99_pass: true, - }, - { // 23 - z00_input: "192.168.3.53/00ffffff", - z01_addrHexStr: "c0a80335", - z02_addrBinStr: "11000000101010000000001100110101", - z03_addrStr: "192.168.3.53", - z04_NetIPStringOut: "192.168.3.53", - z05_addrInt: 3232236341, - z06_netInt: 3232236341, - z07_ipMaskStr: "ffffffff", - z08_maskbits: 32, - z09_NetIPNetStringOut: "192.168.3.53/32", - z10_maskInt: 4294967295, - z11_networkStr: "192.168.3.53", - z12_octets: []int{192, 168, 3, 53}, - z13_firstUsable: "192.168.3.53", - z14_lastUsable: "192.168.3.53", - z15_broadcast: "192.168.3.53", - z17_DialPacketArgs: []string{"udp4", ""}, - z18_DialStreamArgs: []string{"tcp4", ""}, - z19_ListenPacketArgs: []string{"udp4", "192.168.3.53:0"}, - z20_ListenStreamArgs: []string{"tcp4", "192.168.3.53:0"}, - z21_IsRFC1918: true, - z22_IsRFC6598: false, - z23_IsRFC6890: true, - z99_pass: true, - }, - } - - for idx, test := range tests { - t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { - ipv4, err := sockaddr.NewIPv4Addr(test.z00_input) - if test.z99_pass && err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.z00_input, err) - } else if !test.z99_pass && err == nil { - t.Fatalf("[%d] Expected test to fail for %+q", idx, test.z00_input) - } else if !test.z99_pass && err != nil { - // Expected failure, return successfully - return - } - - if type_ := ipv4.Type(); type_ != sockaddr.TypeIPv4 { - t.Errorf("[%d] Expected new IPv4Addr to be Type %d, received %d (int)", idx, sockaddr.TypeIPv4, type_) - } - - h, ok := ipv4.Host().(sockaddr.IPv4Addr) - if !ok { - t.Errorf("[%d] Unable to type assert +%q's Host to IPv4Addr", idx, test.z00_input) - } - - if h.Address != ipv4.Address || h.Mask != sockaddr.IPv4HostMask || h.Port != ipv4.Port { - t.Errorf("[%d] Expected %+q's Host() to return identical IPv4Addr except mask, received %+q", idx, test.z00_input, h.String()) - } - - if c := cap(*ipv4.NetIP()); c != sockaddr.IPv4len { - t.Errorf("[%d] Expected new IPv4Addr's Address capacity to be %d bytes, received %d", idx, sockaddr.IPv4len, c) - } - - if l := len(*ipv4.NetIP()); l != sockaddr.IPv4len { - t.Errorf("[%d] Expected new IPv4Addr's Address length to be %d bytes, received %d", idx, sockaddr.IPv4len, l) - } - - if s := ipv4.AddressHexString(); s != test.z01_addrHexStr { - t.Errorf("[%d] Expected address %+q's hexadecimal representation to be %+q, received %+q", idx, test.z00_input, test.z01_addrHexStr, s) - } - - if s := ipv4.AddressBinString(); s != test.z02_addrBinStr { - t.Errorf("[%d] Expected address %+q's binary representation to be %+q, received %+q", idx, test.z00_input, test.z02_addrBinStr, s) - } - - if s := ipv4.String(); s != test.z03_addrStr { - t.Errorf("[%d] Expected %+q's String to be %+q, received %+q", idx, test.z00_input, test.z03_addrStr, s) - } - - if s := ipv4.NetIP().String(); s != test.z04_NetIPStringOut { - t.Errorf("[%d] Expected %+q's address to be %+q, received %+q", idx, test.z00_input, test.z04_NetIPStringOut, s) - } - - if a := ipv4.Address; a != test.z05_addrInt { - t.Errorf("[%d] Expected %+q's Address to return %d, received %d", idx, test.z00_input, test.z05_addrInt, a) - } - - if n, ok := ipv4.Network().(sockaddr.IPv4Addr); !ok || n.Address != sockaddr.IPv4Address(test.z06_netInt) { - t.Errorf("[%d] Expected %+q's Network to return %d, received %d", idx, test.z00_input, test.z06_netInt, n.Address) - } - - if m := ipv4.NetIPMask().String(); m != test.z07_ipMaskStr { - t.Errorf("[%d] Expected %+q's mask to be %+q, received %+q", idx, test.z00_input, test.z07_ipMaskStr, m) - } - - if m := ipv4.Maskbits(); m != test.z08_maskbits { - t.Errorf("[%d] Expected %+q's port to be %d, received %d", idx, test.z00_input, test.z08_maskbits, m) - } - - if n := ipv4.NetIPNet().String(); n != test.z09_NetIPNetStringOut { - t.Errorf("[%d] Expected %+q's network to be %+q, received %+q", idx, test.z00_input, test.z09_NetIPNetStringOut, n) - } - - if m := ipv4.Mask; m != test.z10_maskInt { - t.Errorf("[%d] Expected %+q's Mask to return %d, received %d", idx, test.z00_input, test.z10_maskInt, m) - } - - // Network()'s mask must match the IPv4Addr's Mask - if n, ok := ipv4.Network().(sockaddr.IPv4Addr); !ok || n.Mask != test.z10_maskInt { - t.Errorf("[%d] Expected %+q's Network's Mask to return %d, received %d", idx, test.z00_input, test.z10_maskInt, n.Mask) - } - - if n := ipv4.Network().String(); n != test.z11_networkStr { - t.Errorf("[%d] Expected %+q's Network() to be %+q, received %+q", idx, test.z00_input, test.z11_networkStr, n) - } - - if o := ipv4.Octets(); len(o) != 4 || o[0] != test.z12_octets[0] || o[1] != test.z12_octets[1] || o[2] != test.z12_octets[2] || o[3] != test.z12_octets[3] { - t.Errorf("[%d] Expected %+q's Octets to be %+v, received %+v", idx, test.z00_input, test.z12_octets, o) - } - - if f := ipv4.FirstUsable().String(); f != test.z13_firstUsable { - t.Errorf("[%d] Expected %+q's FirstUsable() to be %+q, received %+q", idx, test.z00_input, test.z13_firstUsable, f) - } - - if l := ipv4.LastUsable().String(); l != test.z14_lastUsable { - t.Errorf("[%d] Expected %+q's LastUsable() to be %+q, received %+q", idx, test.z00_input, test.z14_lastUsable, l) - } - - if b := ipv4.Broadcast().String(); b != test.z15_broadcast { - t.Errorf("[%d] Expected %+q's broadcast to be %+q, received %+q", idx, test.z00_input, test.z15_broadcast, b) - } - - if p := ipv4.IPPort(); sockaddr.IPPort(p) != test.z16_portInt || sockaddr.IPPort(p) != test.z16_portInt { - t.Errorf("[%d] Expected %+q's port to be %d, received %d", idx, test.z00_input, test.z16_portInt, p) - } - - if dialNet, dialArgs := ipv4.DialPacketArgs(); dialNet != test.z17_DialPacketArgs[0] || dialArgs != test.z17_DialPacketArgs[1] { - t.Errorf("[%d] Expected %+q's DialPacketArgs() to be %+q, received %+q, %+q", idx, test.z00_input, test.z17_DialPacketArgs, dialNet, dialArgs) - } - - if dialNet, dialArgs := ipv4.DialStreamArgs(); dialNet != test.z18_DialStreamArgs[0] || dialArgs != test.z18_DialStreamArgs[1] { - t.Errorf("[%d] Expected %+q's DialStreamArgs() to be %+q, received %+q, %+q", idx, test.z00_input, test.z18_DialStreamArgs, dialNet, dialArgs) - } - - if listenNet, listenArgs := ipv4.ListenPacketArgs(); listenNet != test.z19_ListenPacketArgs[0] || listenArgs != test.z19_ListenPacketArgs[1] { - t.Errorf("[%d] Expected %+q's ListenPacketArgs() to be %+q, received %+q, %+q", idx, test.z00_input, test.z19_ListenPacketArgs, listenNet, listenArgs) - } - - if listenNet, listenArgs := ipv4.ListenStreamArgs(); listenNet != test.z20_ListenStreamArgs[0] || listenArgs != test.z20_ListenStreamArgs[1] { - t.Errorf("[%d] Expected %+q's ListenStreamArgs() to be %+q, received %+q, %+q", idx, test.z00_input, test.z20_ListenStreamArgs, listenNet, listenArgs) - } - - if v := sockaddr.IsRFC(1918, ipv4); v != test.z21_IsRFC1918 { - t.Errorf("[%d] Expected IsRFC(1918, %+q) to be %+q, received %+q", idx, test.z00_input, test.z21_IsRFC1918, v) - } - - if v := sockaddr.IsRFC(6598, ipv4); v != test.z22_IsRFC6598 { - t.Errorf("[%d] Expected IsRFC(6598, %+q) to be %+q, received %+q", idx, test.z00_input, test.z22_IsRFC6598, v) - } - - if v := sockaddr.IsRFC(6890, ipv4); v != test.z23_IsRFC6890 { - t.Errorf("[%d] Expected IsRFC(6890, %+q) to be %+q, received %+q", idx, test.z00_input, test.z23_IsRFC6890, v) - } - }) - } -} - -func TestSockAddr_IPv4Addr_CmpAddress(t *testing.T) { - tests := []struct { - a string - b string - cmp int - }{ - { // 0 - a: "208.67.222.222/32", - b: "208.67.222.222", - cmp: 0, - }, - { // 1 - a: "208.67.222.222/32", - b: "208.67.222.222/32", - cmp: 0, - }, - { // 2 - a: "208.67.222.222/32", - b: "208.67.222.222:0", - cmp: 0, - }, - { // 3 - a: "208.67.222.220/32", - b: "208.67.222.222/32", - cmp: -1, - }, - { // 4 - a: "208.67.222.222/32", - b: "208.67.222.220/32", - cmp: 1, - }, - } - - for idx, test := range tests { - t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { - ipv4a, err := sockaddr.NewIPv4Addr(test.a) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.a, err) - } - - ipv4b, err := sockaddr.NewIPv4Addr(test.b) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.b, err) - } - - if x := ipv4a.CmpAddress(ipv4b); x != test.cmp { - t.Errorf("[%d] IPv4Addr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipv4a, ipv4b, test.cmp, x) - } - - if x := ipv4b.CmpAddress(ipv4a); x*-1 != test.cmp { - t.Errorf("[%d] IPv4Addr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipv4a, ipv4b, test.cmp, x) - } - }) - } -} - -func TestSockAddr_IPv4Addr_ContainsAddress(t *testing.T) { - tests := []struct { - input string - pass []string - fail []string - }{ - { // 0 - input: "208.67.222.222/32", - pass: []string{ - "208.67.222.222", - "208.67.222.222/32", - "208.67.222.223/31", - "208.67.222.222/31", - "0.0.0.0/0", - }, - fail: []string{ - "0.0.0.0/1", - "208.67.222.220/31", - "208.67.220.224/31", - "208.67.220.220/32", - }, - }, - } - - for idx, test := range tests { - t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { - ipv4, err := sockaddr.NewIPv4Addr(test.input) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.input, err) - } - - for passIdx, passInput := range test.pass { - passAddr, err := sockaddr.NewIPv4Addr(passInput) - if err != nil { - t.Fatalf("[%d/%d] Unable to create an IPv4Addr from %+q: %v", idx, passIdx, passInput, err) - } - - if !passAddr.ContainsAddress(ipv4.Address) { - t.Errorf("[%d/%d] Expected %+q to contain %+q", idx, passIdx, test.input, passInput) - } - } - - for failIdx, failInput := range test.fail { - failAddr, err := sockaddr.NewIPv4Addr(failInput) - if err != nil { - t.Fatalf("[%d/%d] Unable to create an IPv4Addr from %+q: %v", idx, failIdx, failInput, err) - } - - if failAddr.ContainsAddress(ipv4.Address) { - t.Errorf("[%d/%d] Expected %+q to contain %+q", idx, failIdx, test.input, failInput) - } - } - }) - } -} - -func TestSockAddr_IPv4Addr_CmpPort(t *testing.T) { - tests := []struct { - a string - b string - cmp int - }{ - { // 0: Same port, same IP - a: "208.67.222.222:0", - b: "208.67.222.222/32", - cmp: 0, - }, - { // 1: Same port, different IP - a: "208.67.222.220:0", - b: "208.67.222.222/32", - cmp: 0, - }, - { // 2: Same IP, different port - a: "208.67.222.222:80", - b: "208.67.222.222:443", - cmp: -1, - }, - { // 3: Same IP, different port - a: "208.67.222.222:443", - b: "208.67.222.222:80", - cmp: 1, - }, - { // 4: Different IP, different port - a: "208.67.222.222:53", - b: "208.67.220.220:8600", - cmp: -1, - }, - { // 5: Different IP, different port - a: "208.67.222.222:8600", - b: "208.67.220.220:53", - cmp: 1, - }, - } - - for idx, test := range tests { - t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { - ipv4a, err := sockaddr.NewIPv4Addr(test.a) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.a, err) - } - - ipv4b, err := sockaddr.NewIPv4Addr(test.b) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.b, err) - } - - if x := ipv4a.CmpPort(ipv4b); x != test.cmp { - t.Errorf("[%d] IPv4Addr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipv4a, ipv4b, test.cmp, x) - } - - if x := ipv4b.CmpPort(ipv4a); x*-1 != test.cmp { - t.Errorf("[%d] IPv4Addr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipv4a, ipv4b, test.cmp, x) - } - }) - } -} - -func TestSockAddr_IPv4Addr_Equal(t *testing.T) { - tests := []struct { - name string - input string - pass []string - fail []string - }{ - { - name: "passing", - input: "208.67.222.222/32", - pass: []string{"208.67.222.222", "208.67.222.222/32", "208.67.222.222:0"}, - fail: []string{"208.67.222.222/31", "208.67.220.220", "208.67.220.220/32", "208.67.222.222:5432"}, - }, - { - name: "failing", - input: "4.2.2.1", - pass: []string{"4.2.2.1", "4.2.2.1/32"}, - fail: []string{"4.2.2.1/0", "4.2.2.2", "4.2.2.2/32", "::1"}, - }, - } - - for idx, test := range tests { - t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { - ipv4, err := sockaddr.NewIPv4Addr(test.input) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, test.input, err) - } - - for goodIdx, passInput := range test.pass { - good, err := sockaddr.NewIPv4Addr(passInput) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, passInput, err) - } - - if !ipv4.Equal(good) { - t.Errorf("[%d/%d] Expected %+q to be equal to %+q: %+q/%+q", idx, goodIdx, test.input, passInput, ipv4.String(), good.String()) - } - } - - for failIdx, failInput := range test.fail { - fail, err := sockaddr.NewIPAddr(failInput) - if err != nil { - t.Fatalf("[%d] Unable to create an IPv4Addr from %+q: %v", idx, failInput, err) - } - - if ipv4.Equal(fail) { - t.Errorf("[%d/%d] Expected %+q to be not equal to %+q", idx, failIdx, test.input, failInput) - } - } - }) - } -} - -func TestIPv4CmpRFC(t *testing.T) { - tests := []struct { - name string - ipv4 sockaddr.IPv4Addr - rfc uint - sa sockaddr.SockAddr - ret int - }{ - { - name: "ipv4 rfc cmp recv match not arg", - ipv4: sockaddr.MustIPv4Addr("192.168.1.10"), - rfc: 1918, - sa: sockaddr.MustIPv6Addr("::1"), - ret: -1, - }, - { - name: "ipv4 rfc cmp recv match", - ipv4: sockaddr.MustIPv4Addr("192.168.1.2"), - rfc: 1918, - sa: sockaddr.MustIPv4Addr("203.1.2.3"), - ret: -1, - }, - { - name: "ipv4 rfc cmp defer", - ipv4: sockaddr.MustIPv4Addr("192.168.1.3"), - rfc: 1918, - sa: sockaddr.MustIPv4Addr("192.168.1.4"), - ret: 0, - }, - { - name: "ipv4 rfc cmp recv not match", - ipv4: sockaddr.MustIPv4Addr("1.2.3.4"), - rfc: 1918, - sa: sockaddr.MustIPv4Addr("203.1.2.3"), - ret: 0, - }, - { - name: "ipv4 rfc cmp recv not match arg", - ipv4: sockaddr.MustIPv4Addr("1.2.3.4"), - rfc: 1918, - sa: sockaddr.MustIPv6Addr("::1"), - ret: 0, - }, - { - name: "ipv4 rfc cmp arg match", - ipv4: sockaddr.MustIPv4Addr("1.2.3.4"), - rfc: 1918, - sa: sockaddr.MustIPv4Addr("192.168.1.5"), - ret: 1, - }, - } - for i, test := range tests { - if test.name == "" { - t.Fatalf("test %d must have a name", i) - } - - t.Run(test.name, func(t *testing.T) { - ipv4 := test.ipv4 - if ret := ipv4.CmpRFC(test.rfc, test.sa); ret != test.ret { - t.Errorf("%s: unexpected ret: wanted %d got %d", test.name, test.ret, ret) - } - }) - } -} - -func TestIPv4Attrs(t *testing.T) { - const expectedNumAttrs = 3 - attrs := sockaddr.IPv4Attrs() - if len(attrs) != expectedNumAttrs { - t.Fatalf("wrong number of IPv4Attrs: %d vs %d", len(attrs), expectedNumAttrs) - } -} |