diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-05-17 16:51:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-17 16:51:25 -0400 |
commit | d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26 (patch) | |
tree | dbde13123c6add150448f7b75753ac022d862475 /vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go | |
parent | cd23b8139a9463b67e3096744321f6f4eb0ca40a (diff) | |
download | chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.tar.gz chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.tar.bz2 chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.zip |
Upgrading server dependancies (#6431)
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go')
-rw-r--r-- | vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go b/vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go new file mode 100644 index 000000000..68ce2c8b4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-sockaddr/ipaddr_test.go @@ -0,0 +1,222 @@ +package sockaddr_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/go-sockaddr" +) + +func TestSockAddr_IPAddr_CmpAddress(t *testing.T) { + tests := []struct { + a string + b string + cmp int + }{ + { // 0: Same IPAddr (v4), same port + a: "208.67.222.222:0", + b: "208.67.222.222/32", + cmp: 0, + }, + { // 1: Same IPAddr (v6), same port + a: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:0", + b: "2607:f0d0:1002:0051:0000:0000:0000:0004/128", + cmp: 0, + }, + { // 2: Same IPAddr (v4), different port + a: "208.67.222.222:4646", + b: "208.67.222.222/32", + cmp: 0, + }, + { // 3: Same IPAddr (v6), different port + a: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:4646", + b: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:4647", + cmp: 0, + }, + { // 4: Different IPAddr (v4), same port + a: "208.67.220.220:4648", + b: "208.67.222.222:4648", + cmp: -1, + }, + { // 5: Different IPAddr (v6), same port + a: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:4648", + b: "[2607:f0d0:1002:0052:0000:0000:0000:0004]:4648", + cmp: -1, + }, + { // 6: Different IPAddr (v4), different port + a: "208.67.220.220:8600", + b: "208.67.222.222:4648", + cmp: -1, + }, + { // 7: Different IPAddr (v6), different port + a: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:8500", + b: "[2607:f0d0:1002:0052:0000:0000:0000:0004]:4648", + cmp: -1, + }, + { // 8: Incompatible IPAddr (v4 vs v6), same port + a: "208.67.220.220:8600", + b: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:8600", + cmp: 0, + }, + { // 9: Incompatible IPAddr (v4 vs v6), different port + a: "208.67.220.220:8500", + b: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:8600", + cmp: 0, + }, + { // 10: Incompatible SockAddr types + a: "128.95.120.1:123", + b: "/tmp/foo.sock", + cmp: 0, + }, + { // 11: Incompatible SockAddr types + a: "[::]:123", + b: "/tmp/foo.sock", + cmp: 0, + }, + } + + for idx, test := range tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + saA, err := sockaddr.NewSockAddr(test.a) + if err != nil { + t.Fatalf("[%d] Unable to create a SockAddr from %+q: %v", idx, test.a, err) + } + saB, err := sockaddr.NewSockAddr(test.b) + if err != nil { + t.Fatalf("[%d] Unable to create an SockAddr from %+q: %v", idx, test.b, err) + } + + ipA, ok := saA.(sockaddr.IPAddr) + if !ok { + t.Fatalf("[%d] Unable to convert SockAddr %+q to an IPAddr", idx, test.a) + } + + if x := ipA.CmpAddress(saB); x != test.cmp { + t.Errorf("[%d] IPAddr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipA, saB, test.cmp, x) + } + + ipB, ok := saB.(sockaddr.IPAddr) + if !ok { + // Return success for comparing non-IPAddr types + return + } + if x := ipA.CmpAddress(ipB); x != test.cmp { + t.Errorf("[%d] IPAddr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipA, ipB, test.cmp, x) + } + if x := ipB.CmpAddress(ipA); x*-1 != test.cmp { + t.Errorf("[%d] IPAddr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipB, ipA, test.cmp, x) + } + + if x := ipB.CmpAddress(saA); x*-1 != test.cmp { + t.Errorf("[%d] IPAddr.CmpAddress() failed with %+q with %+q (expected %d, received %d)", idx, ipB, saA, test.cmp, x) + } + }) + } +} + +func TestSockAddr_IPAddr_CmpPort(t *testing.T) { + tests := []struct { + a string + b string + cmp int + }{ + { // 0: Same IPv4Addr, same port + a: "208.67.222.222:0", + b: "208.67.222.222/32", + cmp: 0, + }, + { // 1: Different IPv4Addr, same port + a: "208.67.220.220:0", + b: "208.67.222.222/32", + cmp: 0, + }, + { // 2: Same IPv4Addr, different port + a: "208.67.222.222:80", + b: "208.67.222.222:443", + cmp: -1, + }, + { // 3: Different IPv4Addr, different port + a: "208.67.220.220:8600", + b: "208.67.222.222:53", + cmp: 1, + }, + { // 4: Same IPv6Addr, same port + a: "[::]:0", + b: "::/128", + cmp: 0, + }, + { // 5: Different IPv6Addr, same port + a: "[::]:0", + b: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:0", + cmp: 0, + }, + { // 6: Same IPv6Addr, different port + a: "[::]:8400", + b: "[::]:8600", + cmp: -1, + }, + { // 7: Different IPv6Addr, different port + a: "[::]:8600", + b: "[2607:f0d0:1002:0051:0000:0000:0000:0004]:53", + cmp: 1, + }, + { // 8: Mixed IPAddr types, same port + a: "[::]:53", + b: "208.67.220.220:53", + cmp: 0, + }, + { // 9: Mixed IPAddr types, different port + a: "[::]:53", + b: "128.95.120.1:123", + cmp: -1, + }, + { // 10: Incompatible SockAddr types + a: "128.95.120.1:123", + b: "/tmp/foo.sock", + cmp: 0, + }, + { // 11: Incompatible SockAddr types + a: "[::]:123", + b: "/tmp/foo.sock", + cmp: 0, + }, + } + + for idx, test := range tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + saA, err := sockaddr.NewSockAddr(test.a) + if err != nil { + t.Fatalf("[%d] Unable to create a SockAddr from %+q: %v", idx, test.a, err) + } + saB, err := sockaddr.NewSockAddr(test.b) + if err != nil { + t.Fatalf("[%d] Unable to create an SockAddr from %+q: %v", idx, test.b, err) + } + + ipA, ok := saA.(sockaddr.IPAddr) + if !ok { + t.Fatalf("[%d] Unable to convert SockAddr %+q to an IPAddr", idx, test.a) + } + + if x := ipA.CmpPort(saB); x != test.cmp { + t.Errorf("[%d] IPAddr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipA, saB, test.cmp, x) + } + + ipB, ok := saB.(sockaddr.IPAddr) + if !ok { + // Return success for comparing non-IPAddr types + return + } + if x := ipA.CmpPort(ipB); x != test.cmp { + t.Errorf("[%d] IPAddr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipA, ipB, test.cmp, x) + } + if x := ipB.CmpPort(ipA); x*-1 != test.cmp { + t.Errorf("[%d] IPAddr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipB, ipA, test.cmp, x) + } + + if x := ipB.CmpPort(saA); x*-1 != test.cmp { + t.Errorf("[%d] IPAddr.CmpPort() failed with %+q with %+q (expected %d, received %d)", idx, ipB, saA, test.cmp, x) + } + }) + } +} |