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) {