]> Cypherpunks repositories - gostls13.git/commitdiff
net: deflake TestDialerDualStack
authorMikio Hara <mikioh.mikioh@gmail.com>
Wed, 18 May 2016 21:15:18 +0000 (06:15 +0900)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 19 May 2016 14:47:33 +0000 (14:47 +0000)
Fixes #15316.
Fixes #15574.

Change-Id: I3ec8bffd35b9e5123de4be983a53fc0b8c2a0895
Reviewed-on: https://go-review.googlesource.com/23242
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/dial_test.go
src/net/mockserver_test.go

index a07c5850e11408b48db5e772fdf222c0a52efa00..53656770112a3a9e9c552811d62ddd4545b32192 100644 (file)
@@ -151,10 +151,7 @@ func TestDialerDualStackFDLeak(t *testing.T) {
                        c.Close()
                }
        }
-       dss, err := newDualStackServer([]streamListener{
-               {network: "tcp4", address: "127.0.0.1"},
-               {network: "tcp6", address: "::1"},
-       })
+       dss, err := newDualStackServer()
        if err != nil {
                t.Fatal(err)
        }
@@ -329,10 +326,7 @@ func TestDialParallel(t *testing.T) {
        }
 
        for i, tt := range testCases {
-               dss, err := newDualStackServer([]streamListener{
-                       {network: "tcp4", address: "127.0.0.1"},
-                       {network: "tcp6", address: "::1"},
-               })
+               dss, err := newDualStackServer()
                if err != nil {
                        t.Fatal(err)
                }
@@ -449,9 +443,7 @@ func TestDialerFallbackDelay(t *testing.T) {
                        c.Close()
                }
        }
-       dss, err := newDualStackServer([]streamListener{
-               {network: "tcp", address: "127.0.0.1"},
-       })
+       dss, err := newDualStackServer()
        if err != nil {
                t.Fatal(err)
        }
@@ -504,10 +496,7 @@ func TestDialParallelSpuriousConnection(t *testing.T) {
                c.Close()
                wg.Done()
        }
-       dss, err := newDualStackServer([]streamListener{
-               {network: "tcp4", address: "127.0.0.1"},
-               {network: "tcp6", address: "::1"},
-       })
+       dss, err := newDualStackServer()
        if err != nil {
                t.Fatal(err)
        }
@@ -733,10 +722,7 @@ func TestDialerDualStack(t *testing.T) {
 
        var timeout = 150*time.Millisecond + closedPortDelay
        for _, dualstack := range []bool{false, true} {
-               dss, err := newDualStackServer([]streamListener{
-                       {network: "tcp4", address: "127.0.0.1"},
-                       {network: "tcp6", address: "::1"},
-               })
+               dss, err := newDualStackServer()
                if err != nil {
                        t.Fatal(err)
                }
index b67dd91650604355d9495f2b0a050550c0558401..766de6a815b9dfac62f21e0e4e99ceaa9d7a4fb3 100644 (file)
@@ -184,28 +184,24 @@ func (dss *dualStackServer) teardown() error {
        return nil
 }
 
-func newDualStackServer(lns []streamListener) (*dualStackServer, error) {
-       dss := &dualStackServer{lns: lns, port: "0"}
-       for i := range dss.lns {
-               ln, err := Listen(dss.lns[i].network, JoinHostPort(dss.lns[i].address, dss.port))
-               if err != nil {
-                       for _, ln := range dss.lns[:i] {
-                               ln.Listener.Close()
-                       }
-                       return nil, err
-               }
-               dss.lns[i].Listener = ln
-               dss.lns[i].done = make(chan bool)
-               if dss.port == "0" {
-                       if _, dss.port, err = SplitHostPort(ln.Addr().String()); err != nil {
-                               for _, ln := range dss.lns {
-                                       ln.Listener.Close()
-                               }
-                               return nil, err
-                       }
-               }
+func newDualStackServer() (*dualStackServer, error) {
+       lns, err := newDualStackListener()
+       if err != nil {
+               return nil, err
+       }
+       _, port, err := SplitHostPort(lns[0].Addr().String())
+       if err != nil {
+               lns[0].Close()
+               lns[1].Close()
+               return nil, err
        }
-       return dss, nil
+       return &dualStackServer{
+               lns: []streamListener{
+                       {network: "tcp4", address: lns[0].Addr().String(), Listener: lns[0], done: make(chan bool)},
+                       {network: "tcp6", address: lns[1].Addr().String(), Listener: lns[1], done: make(chan bool)},
+               },
+               port: port,
+       }, nil
 }
 
 func transponder(ln Listener, ch chan<- error) {