aboutsummaryrefslogtreecommitdiff
path: root/src/net/dnsclient_unix_test.go
diff options
context:
space:
mode:
authorMikio Hara <mikioh.mikioh@gmail.com>2016-02-24 11:59:49 +0900
committerMikio Hara <mikioh.mikioh@gmail.com>2016-02-25 03:12:59 +0000
commitb48120ca3a5e8767ef1dea46c6231538f374a640 (patch)
treedf06612c700dffc6158cbc942bd616cbbbc8ac3f /src/net/dnsclient_unix_test.go
parent7c90abe2062436d0e583184f1f38f97b7aab3c14 (diff)
downloadgo-b48120ca3a5e8767ef1dea46c6231538f374a640.tar.gz
go-b48120ca3a5e8767ef1dea46c6231538f374a640.zip
net: make TestGoLookupIPWithResolverConfig robust
It crashes when the node under the test is shaken up. -- FAIL: TestGoLookupIPWithResolverConfig (11.73s) panic: interface conversion: error is nil, not *net.DNSError [recovered] panic: interface conversion: error is nil, not *net.DNSError goroutine 23 [running]: panic(0x2e2620, 0xc820181440) /go/src/runtime/panic.go:483 +0x3f3 testing.tRunner.func1(0xc820136d80) /go/src/testing/testing.go:467 +0x192 panic(0x2e2620, 0xc820181440) /go/src/runtime/panic.go:441 +0x4f6 net.TestGoLookupIPWithResolverConfig(0xc820136d80) /go/src/net/dnsclient_unix_test.go:358 +0x7ca testing.tRunner(0xc820136d80, 0x49ddc0) /go/src/testing/testing.go:473 +0x98 created by testing.RunTests /go/src/testing/testing.go:582 +0x892 exit status 2 Change-Id: I9631f41a3c73f3269c7e30d679c025ae64d71a98 Reviewed-on: https://go-review.googlesource.com/19870 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/net/dnsclient_unix_test.go')
-rw-r--r--src/net/dnsclient_unix_test.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go
index 5623039b7b..4a5c438e46 100644
--- a/src/net/dnsclient_unix_test.go
+++ b/src/net/dnsclient_unix_test.go
@@ -355,7 +355,13 @@ func TestGoLookupIPWithResolverConfig(t *testing.T) {
}
addrs, err := goLookupIP(tt.name)
if err != nil {
- if err, ok := err.(*DNSError); !ok || (err.Name != tt.error.(*DNSError).Name || err.Server != tt.error.(*DNSError).Server || err.IsTimeout != tt.error.(*DNSError).IsTimeout) {
+ // This test uses external network connectivity.
+ // We need to take care with errors on both
+ // DNS message exchange layer and DNS
+ // transport layer because goLookupIP may fail
+ // when the IP connectivty on node under test
+ // gets lost during its run.
+ if err, ok := err.(*DNSError); !ok || tt.error != nil && (err.Name != tt.error.(*DNSError).Name || err.Server != tt.error.(*DNSError).Server || err.IsTimeout != tt.error.(*DNSError).IsTimeout) {
t.Errorf("got %v; want %v", err, tt.error)
}
continue