diff --git a/src/net/dial_test.go b/src/net/dial_test.go index ead1e68d46f..93cffca93d2 100644 --- a/src/net/dial_test.go +++ b/src/net/dial_test.go @@ -591,68 +591,67 @@ func TestDialerPartialDeadline(t *testing.T) { } } -type dialerLocalAddrTest struct { - network, raddr string - laddr Addr - error -} - -var dialerLocalAddrTests = []dialerLocalAddrTest{ - {"tcp4", "127.0.0.1", nil, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{}, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("::")}, &AddrError{Err: "some error"}}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, nil}, - {"tcp4", "127.0.0.1", &TCPAddr{IP: IPv6loopback}, errNoSuitableAddress}, - {"tcp4", "127.0.0.1", &UDPAddr{}, &AddrError{Err: "some error"}}, - {"tcp4", "127.0.0.1", &UnixAddr{}, &AddrError{Err: "some error"}}, - - {"tcp6", "::1", nil, nil}, - {"tcp6", "::1", &TCPAddr{}, nil}, - {"tcp6", "::1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, - {"tcp6", "::1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, - {"tcp6", "::1", &TCPAddr{IP: ParseIP("::")}, nil}, - {"tcp6", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, errNoSuitableAddress}, - {"tcp6", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, errNoSuitableAddress}, - {"tcp6", "::1", &TCPAddr{IP: IPv6loopback}, nil}, - {"tcp6", "::1", &UDPAddr{}, &AddrError{Err: "some error"}}, - {"tcp6", "::1", &UnixAddr{}, &AddrError{Err: "some error"}}, - - {"tcp", "127.0.0.1", nil, nil}, - {"tcp", "127.0.0.1", &TCPAddr{}, nil}, - {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, - {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, - {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, nil}, - {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, nil}, - {"tcp", "127.0.0.1", &TCPAddr{IP: IPv6loopback}, errNoSuitableAddress}, - {"tcp", "127.0.0.1", &UDPAddr{}, &AddrError{Err: "some error"}}, - {"tcp", "127.0.0.1", &UnixAddr{}, &AddrError{Err: "some error"}}, - - {"tcp", "::1", nil, nil}, - {"tcp", "::1", &TCPAddr{}, nil}, - {"tcp", "::1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, - {"tcp", "::1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, - {"tcp", "::1", &TCPAddr{IP: ParseIP("::")}, nil}, - {"tcp", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, errNoSuitableAddress}, - {"tcp", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, errNoSuitableAddress}, - {"tcp", "::1", &TCPAddr{IP: IPv6loopback}, nil}, - {"tcp", "::1", &UDPAddr{}, &AddrError{Err: "some error"}}, - {"tcp", "::1", &UnixAddr{}, &AddrError{Err: "some error"}}, -} - func TestDialerLocalAddr(t *testing.T) { if !supportsIPv4 || !supportsIPv6 { t.Skip("both IPv4 and IPv6 are required") } + type test struct { + network, raddr string + laddr Addr + error + } + var tests = []test{ + {"tcp4", "127.0.0.1", nil, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{}, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("::")}, &AddrError{Err: "some error"}}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, nil}, + {"tcp4", "127.0.0.1", &TCPAddr{IP: IPv6loopback}, errNoSuitableAddress}, + {"tcp4", "127.0.0.1", &UDPAddr{}, &AddrError{Err: "some error"}}, + {"tcp4", "127.0.0.1", &UnixAddr{}, &AddrError{Err: "some error"}}, + + {"tcp6", "::1", nil, nil}, + {"tcp6", "::1", &TCPAddr{}, nil}, + {"tcp6", "::1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, + {"tcp6", "::1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, + {"tcp6", "::1", &TCPAddr{IP: ParseIP("::")}, nil}, + {"tcp6", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, errNoSuitableAddress}, + {"tcp6", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, errNoSuitableAddress}, + {"tcp6", "::1", &TCPAddr{IP: IPv6loopback}, nil}, + {"tcp6", "::1", &UDPAddr{}, &AddrError{Err: "some error"}}, + {"tcp6", "::1", &UnixAddr{}, &AddrError{Err: "some error"}}, + + {"tcp", "127.0.0.1", nil, nil}, + {"tcp", "127.0.0.1", &TCPAddr{}, nil}, + {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, + {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, + {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, nil}, + {"tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, nil}, + {"tcp", "127.0.0.1", &TCPAddr{IP: IPv6loopback}, errNoSuitableAddress}, + {"tcp", "127.0.0.1", &UDPAddr{}, &AddrError{Err: "some error"}}, + {"tcp", "127.0.0.1", &UnixAddr{}, &AddrError{Err: "some error"}}, + + {"tcp", "::1", nil, nil}, + {"tcp", "::1", &TCPAddr{}, nil}, + {"tcp", "::1", &TCPAddr{IP: ParseIP("0.0.0.0")}, nil}, + {"tcp", "::1", &TCPAddr{IP: ParseIP("0.0.0.0").To4()}, nil}, + {"tcp", "::1", &TCPAddr{IP: ParseIP("::")}, nil}, + {"tcp", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To4()}, errNoSuitableAddress}, + {"tcp", "::1", &TCPAddr{IP: ParseIP("127.0.0.1").To16()}, errNoSuitableAddress}, + {"tcp", "::1", &TCPAddr{IP: IPv6loopback}, nil}, + {"tcp", "::1", &UDPAddr{}, &AddrError{Err: "some error"}}, + {"tcp", "::1", &UnixAddr{}, &AddrError{Err: "some error"}}, + } + if supportsIPv4map { - dialerLocalAddrTests = append(dialerLocalAddrTests, dialerLocalAddrTest{ + tests = append(tests, test{ "tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("::")}, nil, }) } else { - dialerLocalAddrTests = append(dialerLocalAddrTests, dialerLocalAddrTest{ + tests = append(tests, test{ "tcp", "127.0.0.1", &TCPAddr{IP: ParseIP("::")}, &AddrError{Err: "some error"}, }) } @@ -682,7 +681,7 @@ func TestDialerLocalAddr(t *testing.T) { } } - for _, tt := range dialerLocalAddrTests { + for _, tt := range tests { d := &Dialer{LocalAddr: tt.laddr} var addr string ip := ParseIP(tt.raddr)