mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-25 10:41:41 +00:00
refactor TestListenerConnectDeadlines to avoid data races (#3201)
Fixes #3179
This commit is contained in:
@ -98,36 +98,29 @@ 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) {
|
|
||||||
defer close(donec)
|
|
||||||
|
|
||||||
c, err := ln.Accept()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
<-readyc
|
}(tc.dialer)
|
||||||
|
|
||||||
time.Sleep(2 * time.Millisecond)
|
c, err := tc.listener.Accept()
|
||||||
|
|
||||||
msg := make([]byte, 200)
|
|
||||||
_, err = c.Read(msg)
|
|
||||||
opErr, ok := err.(*net.OpError)
|
|
||||||
if !ok {
|
|
||||||
t.Fatalf("for %s listener, have %v, want *net.OpError", tc.description, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
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 {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
close(readyc)
|
|
||||||
<-donec
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
|
||||||
|
msg := make([]byte, 200)
|
||||||
|
_, err = c.Read(msg)
|
||||||
|
opErr, ok := err.(*net.OpError)
|
||||||
|
if !ok {
|
||||||
|
t.Fatalf("for %s listener, have %v, want *net.OpError", tc.description, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if have, want := opErr.Op, "read"; have != want {
|
||||||
|
t.Errorf("for %s listener, have %v, want %v", tc.description, have, want)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user