diff options
Diffstat (limited to 'libgo/go/net/ipraw_test.go')
-rw-r--r-- | libgo/go/net/ipraw_test.go | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/libgo/go/net/ipraw_test.go b/libgo/go/net/ipraw_test.go index d37272c1062..43b02aef2ea 100644 --- a/libgo/go/net/ipraw_test.go +++ b/libgo/go/net/ipraw_test.go @@ -21,7 +21,7 @@ var icmpTests = []struct { ipv6 bool // test with underlying AF_INET6 socket }{ {"ip4:icmp", "", "127.0.0.1", false}, - {"ip6:icmp", "", "::1", true}, + {"ip6:ipv6-icmp", "", "::1", true}, } func TestICMP(t *testing.T) { @@ -206,3 +206,33 @@ func parseICMPEchoReply(b []byte) (id, seqnum int) { seqnum = int(b[6])<<8 | int(b[7]) return } + +var ipConnLocalNameTests = []struct { + net string + laddr *IPAddr +}{ + {"ip4:icmp", &IPAddr{IP: IPv4(127, 0, 0, 1)}}, + {"ip4:icmp", &IPAddr{}}, + {"ip4:icmp", nil}, +} + +func TestIPConnLocalName(t *testing.T) { + if os.Getuid() != 0 { + t.Logf("skipping test; must be root") + return + } + + for _, tt := range ipConnLocalNameTests { + c, err := ListenIP(tt.net, tt.laddr) + if err != nil { + t.Errorf("ListenIP failed: %v", err) + return + } + defer c.Close() + la := c.LocalAddr() + if la == nil { + t.Error("IPConn.LocalAddr failed") + return + } + } +} |