veyron/runtimes/google/ipc: Fix flaky TestReconnect

There is a race between when the server dies and when the VIF gets the
error. If the next StartCall happens before the VIF is shutdown, the
client see an EOF error instead of the expect failure to connect.

A simple way to fix this is to also accept EOF as valid error.

Change-Id: I304586b3941cec1921bfe5435965366a104909f7
diff --git a/runtimes/google/ipc/server_test.go b/runtimes/google/ipc/server_test.go
index ebe2402..e70d354 100644
--- a/runtimes/google/ipc/server_test.go
+++ b/runtimes/google/ipc/server_test.go
@@ -58,8 +58,8 @@
 	}
 	// Kill the server, verify client can't talk to it anymore.
 	server.Shutdown(nil, nil)
-	if _, err := makeCall(); err == nil || !strings.HasPrefix(err.Error(), "START") {
-		t.Fatalf(`Got (%v) want ("START: <err>") as server is down`, err)
+	if _, err := makeCall(); err == nil || (!strings.HasPrefix(err.Error(), "START") && !strings.Contains(err.Error(), "EOF")) {
+		t.Fatalf(`Got (%v) want ("START: <err>" or "EOF") as server is down`, err)
 	}
 
 	// Resurrect the server with the same address, verify client
@@ -166,13 +166,14 @@
 	if err := proxy.Stop(); err != nil {
 		t.Fatal(err)
 	}
+	if result, err := makeCall(); err == nil || (!strings.HasPrefix(err.Error(), "RESOLVE") && !strings.Contains(err.Error(), "EOF")) {
+		t.Fatalf(`Got (%v, %v) want ("", "RESOLVE: <err>" or "EOF") as proxy is down`, result, err)
+	}
 	for {
 		if _, err := ns.Resolve(testContext(), name); err != nil {
 			break
 		}
-	}
-	if result, err := makeCall(); err == nil || !strings.HasPrefix(err.Error(), "RESOLVE") {
-		t.Fatalf(`Got (%v, %v) want ("", "RESOLVE: <err>") as proxy is down`, result, err)
+		time.Sleep(10 * time.Millisecond)
 	}
 	verifyMountMissing(t, ns, name)