瀏覽代碼

clientv3: add test for keep alive loop exit case

Denys Smirnov 9 年之前
父節點
當前提交
5183ce0118
共有 1 個文件被更改,包括 20 次插入0 次删除
  1. 20 0
      clientv3/integration/lease_test.go

+ 20 - 0
clientv3/integration/lease_test.go

@@ -553,3 +553,23 @@ func TestLeaseRenewLostQuorum(t *testing.T) {
 		t.Fatalf("timed out waiting for keepalive")
 	}
 }
+
+func TestLeaseKeepAliveLoopExit(t *testing.T) {
+	defer testutil.AfterTest(t)
+
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1})
+	defer clus.Terminate(t)
+
+	ctx := context.Background()
+	cli := clus.Client(0)
+
+	resp, err := cli.Grant(ctx, 5)
+	if err != nil {
+		t.Fatal(err)
+	}
+	cli.Lease.Close()
+
+	if _, err := cli.KeepAlive(ctx, resp.ID); err != clientv3.ErrLeaseHalted {
+		t.Fatalf("expected %v, got %v", clientv3.ErrLeaseHalted, err)
+	}
+}