Commit 1ab9428e authored by Mikio Hara's avatar Mikio Hara Committed by Brad Fitzpatrick

net: deflake TestDialerDualStack

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: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 086d7b0e
...@@ -151,10 +151,7 @@ func TestDialerDualStackFDLeak(t *testing.T) { ...@@ -151,10 +151,7 @@ func TestDialerDualStackFDLeak(t *testing.T) {
c.Close() c.Close()
} }
} }
dss, err := newDualStackServer([]streamListener{ dss, err := newDualStackServer()
{network: "tcp4", address: "127.0.0.1"},
{network: "tcp6", address: "::1"},
})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -329,10 +326,7 @@ func TestDialParallel(t *testing.T) { ...@@ -329,10 +326,7 @@ func TestDialParallel(t *testing.T) {
} }
for i, tt := range testCases { for i, tt := range testCases {
dss, err := newDualStackServer([]streamListener{ dss, err := newDualStackServer()
{network: "tcp4", address: "127.0.0.1"},
{network: "tcp6", address: "::1"},
})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -449,9 +443,7 @@ func TestDialerFallbackDelay(t *testing.T) { ...@@ -449,9 +443,7 @@ func TestDialerFallbackDelay(t *testing.T) {
c.Close() c.Close()
} }
} }
dss, err := newDualStackServer([]streamListener{ dss, err := newDualStackServer()
{network: "tcp", address: "127.0.0.1"},
})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -504,10 +496,7 @@ func TestDialParallelSpuriousConnection(t *testing.T) { ...@@ -504,10 +496,7 @@ func TestDialParallelSpuriousConnection(t *testing.T) {
c.Close() c.Close()
wg.Done() wg.Done()
} }
dss, err := newDualStackServer([]streamListener{ dss, err := newDualStackServer()
{network: "tcp4", address: "127.0.0.1"},
{network: "tcp6", address: "::1"},
})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -733,10 +722,7 @@ func TestDialerDualStack(t *testing.T) { ...@@ -733,10 +722,7 @@ func TestDialerDualStack(t *testing.T) {
var timeout = 150*time.Millisecond + closedPortDelay var timeout = 150*time.Millisecond + closedPortDelay
for _, dualstack := range []bool{false, true} { for _, dualstack := range []bool{false, true} {
dss, err := newDualStackServer([]streamListener{ dss, err := newDualStackServer()
{network: "tcp4", address: "127.0.0.1"},
{network: "tcp6", address: "::1"},
})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
......
...@@ -184,28 +184,24 @@ func (dss *dualStackServer) teardown() error { ...@@ -184,28 +184,24 @@ func (dss *dualStackServer) teardown() error {
return nil return nil
} }
func newDualStackServer(lns []streamListener) (*dualStackServer, error) { func newDualStackServer() (*dualStackServer, error) {
dss := &dualStackServer{lns: lns, port: "0"} lns, err := newDualStackListener()
for i := range dss.lns { if err != nil {
ln, err := Listen(dss.lns[i].network, JoinHostPort(dss.lns[i].address, dss.port)) return nil, err
if err != nil { }
for _, ln := range dss.lns[:i] { _, port, err := SplitHostPort(lns[0].Addr().String())
ln.Listener.Close() if err != nil {
} lns[0].Close()
return nil, err lns[1].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
}
}
} }
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) { func transponder(ln Listener, ch chan<- error) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment