From e2aa51c22bcb185ef8e2dc9eb8973bdd4a2a3daa Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 28 Apr 2015 19:11:46 -0700 Subject: [PATCH] command/server: fix one race condition --- command/server/listener_test.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/command/server/listener_test.go b/command/server/listener_test.go index d0894c5101..b52f87f772 100644 --- a/command/server/listener_test.go +++ b/command/server/listener_test.go @@ -5,7 +5,6 @@ import ( "io" "net" "testing" - "time" ) type testListenerConnFn func(net.Listener) (net.Conn, error) @@ -30,14 +29,19 @@ func testListenerImpl(t *testing.T, ln net.Listener, connFn testListenerConnFn) defer server.Close() var buf bytes.Buffer - go io.Copy(&buf, server) + copyCh := make(chan struct{}) + go func() { + io.Copy(&buf, server) + close(copyCh) + }() if _, err := client.Write([]byte("foo")); err != nil { t.Fatalf("err: %s", err) } - time.Sleep(100 * time.Millisecond) + client.Close() + <-copyCh if buf.String() != "foo" { t.Fatalf("bad: %v", buf.String()) }