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
release-3.1
Gyu-Ho Lee 2016-11-01 11:13:33 -07:00
parent 94c804b81a
commit 0684d8c4c6
1 changed files with 5 additions and 4 deletions

View File

@ -614,18 +614,19 @@ func TestWatchErrConnClosed(t *testing.T) {
defer clus.Terminate(t)
cli := clus.Client(0)
defer cli.Close()
wc := clientv3.NewWatcher(cli)
donec := make(chan struct{})
go func() {
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)
}
clus.TakeClient(0)