]> Cypherpunks repositories - gostls13.git/commitdiff
net: make TestSelfConnect less fragile
authorRuss Cox <rsc@golang.org>
Tue, 16 Sep 2014 18:02:59 +0000 (14:02 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 16 Sep 2014 18:02:59 +0000 (14:02 -0400)
We believe TestSelfConnect can accidentally connect to
something else listening on or dialing from that port.

Fixes #8680.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews, rlh
https://golang.org/cl/136700043

src/net/dial_test.go

index c5c3236ccf6e1a4e47028462b4178f3214d0fd51..19e289f2e5e842419cdaf68afdf524a6cc52746e 100644 (file)
@@ -119,6 +119,7 @@ func TestSelfConnect(t *testing.T) {
                // TODO(brainman): do not know why it hangs.
                t.Skip("skipping known-broken test on windows")
        }
+
        // Test that Dial does not honor self-connects.
        // See the comment in DialTCP.
 
@@ -149,8 +150,12 @@ func TestSelfConnect(t *testing.T) {
        for i := 0; i < n; i++ {
                c, err := DialTimeout("tcp", addr, time.Millisecond)
                if err == nil {
+                       if c.LocalAddr().String() == addr {
+                               t.Errorf("#%d: Dial %q self-connect", i, addr)
+                       } else {
+                               t.Logf("#%d: Dial %q succeeded - possibly racing with other listener", i, addr)
+                       }
                        c.Close()
-                       t.Errorf("#%d: Dial %q succeeded", i, addr)
                }
        }
 }