veyron/lib/unixfd, veyron/lib/security/agent/server: Try to fix the flaky agent tests.
Change-Id: I932ad10651cf66bdf8d4ba232f66dc08552c1f35
diff --git a/lib/unixfd/unixfd_test.go b/lib/unixfd/unixfd_test.go
index 6dca48f..152efa8 100644
--- a/lib/unixfd/unixfd_test.go
+++ b/lib/unixfd/unixfd_test.go
@@ -136,15 +136,25 @@
if err != nil {
t.Fatalf("FileConn: %v", err)
}
+ var readErr error
+ var n int
+ var saddr net.Addr
+ done := make(chan struct{})
+ buf := make([]byte, 10)
+ go func() {
+ saddr, n, err = ReadConnection(server, buf)
+ close(done)
+ }()
caddr, err := SendConnection(uclient.(*net.UnixConn), []byte("hello"), true)
if err != nil {
t.Fatalf("SendConnection: %v", err)
}
-
- buf := make([]byte, 10)
- saddr, n, err := ReadConnection(server, buf)
- if err != nil {
- t.Fatalf("ReadConnection: %v", err)
+ <-done
+ if readErr != nil {
+ t.Fatalf("ReadConnection: %v", readErr)
+ }
+ if saddr == nil {
+ t.Fatalf("ReadConnection returned nil, %d", n)
}
data := buf[0:n]
if !bytes.Equal([]byte("hello"), data) {