try to remove race condition in mux test

This commit is contained in:
Megan Marsh 2018-12-14 13:53:39 -08:00
parent 2045390e74
commit 52176ecf2d
1 changed files with 16 additions and 2 deletions

View File

@ -17,15 +17,20 @@ func TestMuxBroker(t *testing.T) {
go bc.Run() go bc.Run()
go bs.Run() go bs.Run()
errChan := make(chan error, 1)
go func() { go func() {
c, err := bc.Dial(5) c, err := bc.Dial(5)
if err != nil { if err != nil {
t.Fatalf("err: %s", err) errChan <- fmt.Errorf("err dialing: %s", err)
close(errChan)
return
} }
if _, err := c.Write([]byte{42}); err != nil { if _, err := c.Write([]byte{42}); err != nil {
t.Fatalf("err: %s", err) errChan <- fmt.Errorf("err writing: %s", err)
} }
close(errChan)
}() }()
client, err := bs.Accept(5) client, err := bs.Accept(5)
@ -41,6 +46,15 @@ func TestMuxBroker(t *testing.T) {
if data[0] != 42 { if data[0] != 42 {
t.Fatalf("bad: %d", data[0]) t.Fatalf("bad: %d", data[0])
} }
for {
err, open := <-errChan
if !open {
if err != nil {
t.Fatalf(err)
}
}
}
} }
func testYamux(t *testing.T) (client *yamux.Session, server *yamux.Session) { func testYamux(t *testing.T) (client *yamux.Session, server *yamux.Session) {