diff options
Diffstat (limited to 'libgo/go/net/rpc/server_test.go')
-rw-r--r-- | libgo/go/net/rpc/server_test.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libgo/go/net/rpc/server_test.go b/libgo/go/net/rpc/server_test.go index ae688c0..b05c63c 100644 --- a/libgo/go/net/rpc/server_test.go +++ b/libgo/go/net/rpc/server_test.go @@ -467,13 +467,16 @@ func TestCountMallocsOverHTTP(t *testing.T) { fmt.Printf("mallocs per HTTP rpc round trip: %d\n", countMallocs(dialHTTP, t)) } -type writeCrasher struct{} +type writeCrasher struct { + done chan bool +} func (writeCrasher) Close() error { return nil } -func (writeCrasher) Read(p []byte) (int, error) { +func (w *writeCrasher) Read(p []byte) (int, error) { + <-w.done return 0, io.EOF } @@ -482,7 +485,8 @@ func (writeCrasher) Write(p []byte) (int, error) { } func TestClientWriteError(t *testing.T) { - c := NewClient(writeCrasher{}) + w := &writeCrasher{done: make(chan bool)} + c := NewClient(w) res := false err := c.Call("foo", 1, &res) if err == nil { @@ -491,6 +495,7 @@ func TestClientWriteError(t *testing.T) { if err.Error() != "fake write failure" { t.Error("unexpected value of error:", err) } + w.done <- true } func benchmarkEndToEnd(dial func() (*Client, error), b *testing.B) { @@ -513,7 +518,7 @@ func benchmarkEndToEnd(dial func() (*Client, error), b *testing.B) { go func() { reply := new(Reply) for atomic.AddInt32(&N, -1) >= 0 { - err = client.Call("Arith.Add", args, reply) + err := client.Call("Arith.Add", args, reply) if err != nil { b.Fatalf("rpc error: Add: expected no error but got string %q", err.Error()) } |