refactor TestListenerConnectDeadlines to avoid data races (#3201)

Fixes #3179
This commit is contained in:
Anton Kaliaev
2019-01-28 12:38:11 +04:00
committed by GitHub
parent 71e5939441
commit 8d2dd7e554

View File

@ -98,16 +98,17 @@ func TestListenerAcceptDeadlines(t *testing.T) {
func TestListenerConnectDeadlines(t *testing.T) {
for _, tc := range listenerTestCases(t, time.Second, time.Millisecond) {
readyc := make(chan struct{})
donec := make(chan struct{})
go func(ln net.Listener) {
defer close(donec)
go func(dialer Dialer) {
_, err := dialer()
if err != nil {
panic(err)
}
}(tc.dialer)
c, err := ln.Accept()
c, err := tc.listener.Accept()
if err != nil {
t.Fatal(err)
}
<-readyc
time.Sleep(2 * time.Millisecond)
@ -121,13 +122,5 @@ func TestListenerConnectDeadlines(t *testing.T) {
if have, want := opErr.Op, "read"; have != want {
t.Errorf("for %s listener, have %v, want %v", tc.description, have, want)
}
}(tc.listener)
_, err := tc.dialer()
if err != nil {
t.Fatal(err)
}
close(readyc)
<-donec
}
}