summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go')
-rw-r--r--vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go117
1 files changed, 117 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go b/vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go
index 859c3e421..45a0cc788 100644
--- a/vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go
+++ b/vendor/github.com/hashicorp/go-sockaddr/ifaddr_test.go
@@ -411,6 +411,114 @@ func TestIfAddrMath(t *testing.T) {
wantFail: true,
},
{
+ name: "ipv4 mask operand equals input ipv4 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("10.20.30.40/8"),
+ },
+ operation: "mask",
+ value: "8",
+ expected: "10.0.0.0/8",
+ },
+ {
+ name: "ipv4 mask operand larger than input ipv4 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("192.168.10.20/24"),
+ },
+ operation: "mask",
+ value: "16",
+ expected: "192.168.0.0/16",
+ },
+ {
+ name: "ipv4 host upper bound mask operand larger than input ipv4 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("192.168.255.255/24"),
+ },
+ operation: "mask",
+ value: "16",
+ expected: "192.168.0.0/16",
+ },
+ {
+ name: "ipv4 mask operand smaller than ipv4 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("10.20.30.40/8"),
+ },
+ operation: "mask",
+ value: "16",
+ expected: "10.20.0.0/8",
+ },
+ {
+ name: "ipv4 host upper bound mask operand smaller than input ipv4 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("10.20.255.255/8"),
+ },
+ operation: "mask",
+ value: "16",
+ expected: "10.20.0.0/8",
+ },
+ {
+ name: "ipv4 mask bad value upper bound",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("127.0.0.1/8"),
+ },
+ operation: "mask",
+ value: "33",
+ wantFail: true,
+ },
+ {
+ name: "ipv4 mask bad value lower bound",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv4Addr("127.0.0.1/8"),
+ },
+ operation: "mask",
+ value: "-1",
+ wantFail: true,
+ },
+ {
+ name: "ipv6 mask operand equals input ipv6 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv6Addr("2001:0db8:85a3::8a2e:0370:7334/64"),
+ },
+ operation: "mask",
+ value: "64",
+ expected: "2001:db8:85a3::/64",
+ },
+ {
+ name: "ipv6 mask operand larger than input ipv6 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv6Addr("2001:0db8:85a3::8a2e:0370:7334/64"),
+ },
+ operation: "mask",
+ value: "32",
+ expected: "2001:db8::/32",
+ },
+ {
+ name: "ipv6 mask operand smaller than input ipv6 subnet mask",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv6Addr("2001:0db8:85a3::8a2e:0370:7334/64"),
+ },
+ operation: "mask",
+ value: "96",
+ expected: "2001:db8:85a3::8a2e:0:0/64",
+ },
+ {
+ name: "ipv6 mask bad value upper bound",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv6Addr("::1/128"),
+ },
+ operation: "mask",
+ value: "129",
+ wantFail: true,
+ },
+ {
+ name: "ipv6 mask bad value lower bound",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustIPv6Addr("::1/128"),
+ },
+ operation: "mask",
+ value: "-1",
+ wantFail: true,
+ },
+ {
name: "unix unsupported operation",
ifAddr: sockaddr.IfAddr{
SockAddr: sockaddr.MustUnixSock("/tmp/bar"),
@@ -428,6 +536,15 @@ func TestIfAddrMath(t *testing.T) {
value: "+123",
wantFail: true,
},
+ {
+ name: "unix unsupported operation",
+ ifAddr: sockaddr.IfAddr{
+ SockAddr: sockaddr.MustUnixSock("/tmp/foo"),
+ },
+ operation: "mask",
+ value: "8",
+ wantFail: true,
+ },
}
for i, test := range tests {