Browse Source

clientv3/integration: close active connection to get ErrClientConnClosing

because clientv3.Close won't trigger it any more

clientv3.Close just closes watch client
instead of closing grpc connection
Gyu-Ho Lee 9 years ago
parent
commit
0684d8c4c6
1 changed files with 5 additions and 4 deletions
  1. 5 4
      clientv3/integration/watch_test.go

+ 5 - 4
clientv3/integration/watch_test.go

@@ -614,18 +614,19 @@ func TestWatchErrConnClosed(t *testing.T) {
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	cli := clus.Client(0)
 	cli := clus.Client(0)
+	defer cli.Close()
 	wc := clientv3.NewWatcher(cli)
 	wc := clientv3.NewWatcher(cli)
 
 
 	donec := make(chan struct{})
 	donec := make(chan struct{})
 	go func() {
 	go func() {
 		defer close(donec)
 		defer close(donec)
-		wc.Watch(context.TODO(), "foo")
-		if err := wc.Close(); err != nil && err != grpc.ErrClientConnClosing {
-			t.Fatalf("expected %v, got %v", grpc.ErrClientConnClosing, err)
+		ch := wc.Watch(context.TODO(), "foo")
+		if wr := <-ch; grpc.ErrorDesc(wr.Err()) != grpc.ErrClientConnClosing.Error() {
+			t.Fatalf("expected %v, got %v", grpc.ErrClientConnClosing, grpc.ErrorDesc(wr.Err()))
 		}
 		}
 	}()
 	}()
 
 
-	if err := cli.Close(); err != nil {
+	if err := cli.ActiveConnection().Close(); err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 	clus.TakeClient(0)
 	clus.TakeClient(0)