mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-25 18:51:39 +00:00
refactor TestListenerConnectDeadlines to avoid data races (#3201)
Fixes #3179
This commit is contained in:
@ -98,16 +98,17 @@ func TestListenerAcceptDeadlines(t *testing.T) {
|
|||||||
|
|
||||||
func TestListenerConnectDeadlines(t *testing.T) {
|
func TestListenerConnectDeadlines(t *testing.T) {
|
||||||
for _, tc := range listenerTestCases(t, time.Second, time.Millisecond) {
|
for _, tc := range listenerTestCases(t, time.Second, time.Millisecond) {
|
||||||
readyc := make(chan struct{})
|
go func(dialer Dialer) {
|
||||||
donec := make(chan struct{})
|
_, err := dialer()
|
||||||
go func(ln net.Listener) {
|
if err != nil {
|
||||||
defer close(donec)
|
panic(err)
|
||||||
|
}
|
||||||
|
}(tc.dialer)
|
||||||
|
|
||||||
c, err := ln.Accept()
|
c, err := tc.listener.Accept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
<-readyc
|
|
||||||
|
|
||||||
time.Sleep(2 * time.Millisecond)
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
|
||||||
@ -121,13 +122,5 @@ func TestListenerConnectDeadlines(t *testing.T) {
|
|||||||
if have, want := opErr.Op, "read"; have != want {
|
if have, want := opErr.Op, "read"; have != want {
|
||||||
t.Errorf("for %s listener, have %v, want %v", tc.description, 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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user