From d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Wed, 17 May 2017 16:51:25 -0400 Subject: Upgrading server dependancies (#6431) --- .../hashicorp/go-sockaddr/route_info_test.go | 196 +++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 vendor/github.com/hashicorp/go-sockaddr/route_info_test.go (limited to 'vendor/github.com/hashicorp/go-sockaddr/route_info_test.go') diff --git a/vendor/github.com/hashicorp/go-sockaddr/route_info_test.go b/vendor/github.com/hashicorp/go-sockaddr/route_info_test.go new file mode 100644 index 000000000..1716327e8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-sockaddr/route_info_test.go @@ -0,0 +1,196 @@ +package sockaddr + +import "testing" + +func Test_parseBSDDefaultIfName(t *testing.T) { + testCases := []struct { + name string + routeOut string + want string + }{ + { + name: "macOS Sierra 10.12 - Common", + routeOut: ` route to: default +destination: default + mask: default + gateway: 10.23.9.1 + interface: en0 + flags: + recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire + 0 0 0 0 0 0 1500 0 +`, + want: "en0", + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + got, err := parseDefaultIfNameFromRoute(tc.routeOut) + if err != nil { + t.Fatalf("unable to parse default interface from route output: %v", err) + } + + if got != tc.want { + t.Errorf("got %s; want %s", got, tc.want) + } + }) + } +} + +func Test_parseLinuxDefaultIfName(t *testing.T) { + testCases := []struct { + name string + routeOut string + want string + }{ + { + name: "Linux Ubuntu 14.04 - Common", + routeOut: `default via 10.1.2.1 dev eth0 +10.1.2.0/24 dev eth0 proto kernel scope link src 10.1.2.5 +`, + want: "eth0", + }, + { + name: "Chromebook - 8743.85.0 (Official Build) stable-channel gandof, Milestone 54", + routeOut: `default via 192.168.1.1 dev wlan0 metric 1 +192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.174 +`, + want: "wlan0", + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + got, err := parseDefaultIfNameFromIPCmd(tc.routeOut) + if err != nil { + t.Fatalf("unable to parse default interface from route output: %v", err) + } + + if got != tc.want { + t.Errorf("got %+q; want %+q", got, tc.want) + } + }) + } +} + +func Test_parseWindowsDefaultIfName(t *testing.T) { + testCases := []struct { + name string + routeOut string + ipconfigOut string + want string + }{ + { + name: "Windows 10 - Enterprise", + routeOut: `=========================================================================== +Interface List + 10...08 00 27 a2 e9 51 ......Intel(R) PRO/1000 MT Desktop Adapter + 13...08 00 27 35 02 ed ......Intel(R) PRO/1000 MT Desktop Adapter #2 + 1...........................Software Loopback Interface 1 + 5...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter + 8...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3 +=========================================================================== + +IPv4 Route Table +=========================================================================== +Active Routes: +Network Destination Netmask Gateway Interface Metric + 0.0.0.0 0.0.0.0 10.0.2.2 10.0.2.15 25 + 10.0.2.0 255.255.255.0 On-link 10.0.2.15 281 + 10.0.2.15 255.255.255.255 On-link 10.0.2.15 281 + 10.0.2.255 255.255.255.255 On-link 10.0.2.15 281 + 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 + 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 + 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 + 192.168.56.0 255.255.255.0 On-link 192.168.56.100 281 + 192.168.56.100 255.255.255.255 On-link 192.168.56.100 281 + 192.168.56.255 255.255.255.255 On-link 192.168.56.100 281 + 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 + 224.0.0.0 240.0.0.0 On-link 192.168.56.100 281 + 224.0.0.0 240.0.0.0 On-link 10.0.2.15 281 + 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 + 255.255.255.255 255.255.255.255 On-link 192.168.56.100 281 + 255.255.255.255 255.255.255.255 On-link 10.0.2.15 281 +=========================================================================== +Persistent Routes: + None + +IPv6 Route Table +=========================================================================== +Active Routes: + If Metric Network Destination Gateway + 1 331 ::1/128 On-link + 13 281 fe80::/64 On-link + 10 281 fe80::/64 On-link + 13 281 fe80::60cc:155f:77a4:ab99/128 + On-link + 10 281 fe80::cccc:710e:f5bb:3088/128 + On-link + 1 331 ff00::/8 On-link + 13 281 ff00::/8 On-link + 10 281 ff00::/8 On-link +=========================================================================== +Persistent Routes: + None +`, + ipconfigOut: `Windows IP Configuration + + +Ethernet adapter Ethernet: + + Connection-specific DNS Suffix . : host.example.org + Link-local IPv6 Address . . . . . : fe80::cccc:710e:f5bb:3088%10 + IPv4 Address. . . . . . . . . . . : 10.0.2.15 + Subnet Mask . . . . . . . . . . . : 255.255.255.0 + Default Gateway . . . . . . . . . : 10.0.2.2 + +Ethernet adapter Ethernet 2: + + Connection-specific DNS Suffix . : + Link-local IPv6 Address . . . . . : fe80::60cc:155f:77a4:ab99%13 + IPv4 Address. . . . . . . . . . . : 192.168.56.100 + Subnet Mask . . . . . . . . . . . : 255.255.255.0 + Default Gateway . . . . . . . . . : + +Tunnel adapter isatap.host.example.org: + + Media State . . . . . . . . . . . : Media disconnected + Connection-specific DNS Suffix . : + +Tunnel adapter Reusable ISATAP Interface {F3F2E4A5-8823-40E5-87EA-1F6881BACC95}: + + Media State . . . . . . . . . . . : Media disconnected + Connection-specific DNS Suffix . : host.example.org +`, + want: "Ethernet", + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + got, err := parseDefaultIfNameWindows(tc.routeOut, tc.ipconfigOut) + if err != nil { + t.Fatalf("unable to parse default interface from route output: %v", err) + } + + if got != tc.want { + t.Errorf("got %s; want %s", got, tc.want) + } + }) + } +} + +func Test_VisitComands(t *testing.T) { + ri, err := NewRouteInfo() + if err != nil { + t.Fatalf("bad: %v", err) + } + + var count int + ri.VisitCommands(func(name string, cmd []string) { + count++ + }) + if count == 0 { + t.Fatalf("Expected more than 0 items") + } +} -- cgit v1.2.3-1-g7c22