Browse Source

Merge pull request #8756 from gyuho/tests

clientv3/integration: do not create v3 clients when not used
Gyu-Ho Lee 8 years ago
parent
commit
fff1fb2ed7

+ 4 - 4
clientv3/integration/dial_test.go

@@ -47,7 +47,7 @@ var (
 // TestDialTLSExpired tests client with expired certs fails to dial.
 // TestDialTLSExpired tests client with expired certs fails to dial.
 func TestDialTLSExpired(t *testing.T) {
 func TestDialTLSExpired(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1, PeerTLS: &testTLSInfo, ClientTLS: &testTLSInfo})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1, PeerTLS: &testTLSInfo, ClientTLS: &testTLSInfo, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	tls, err := testTLSInfoExpired.ClientConfig()
 	tls, err := testTLSInfoExpired.ClientConfig()
@@ -69,7 +69,7 @@ func TestDialTLSExpired(t *testing.T) {
 // when TLS endpoints (https, unixs) are given but no tls config.
 // when TLS endpoints (https, unixs) are given but no tls config.
 func TestDialTLSNoConfig(t *testing.T) {
 func TestDialTLSNoConfig(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1, ClientTLS: &testTLSInfo})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1, ClientTLS: &testTLSInfo, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 	// expect "signed by unknown authority"
 	// expect "signed by unknown authority"
 	_, err := clientv3.New(clientv3.Config{
 	_, err := clientv3.New(clientv3.Config{
@@ -94,7 +94,7 @@ func TestDialSetEndpointsAfterFail(t *testing.T) {
 // testDialSetEndpoints ensures SetEndpoints can replace unavailable endpoints with available ones.
 // testDialSetEndpoints ensures SetEndpoints can replace unavailable endpoints with available ones.
 func testDialSetEndpoints(t *testing.T, setBefore bool) {
 func testDialSetEndpoints(t *testing.T, setBefore bool) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	// get endpoint list
 	// get endpoint list
@@ -152,7 +152,7 @@ func TestSwitchSetEndpoints(t *testing.T) {
 func TestRejectOldCluster(t *testing.T) {
 func TestRejectOldCluster(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
 	// 2 endpoints to test multi-endpoint Status
 	// 2 endpoints to test multi-endpoint Status
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 2})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 2, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	cfg := clientv3.Config{
 	cfg := clientv3.Config{

+ 3 - 3
clientv3/integration/kv_test.go

@@ -828,7 +828,7 @@ func TestKVPutStoppedServerAndClose(t *testing.T) {
 // TestKVGetOneEndpointDown ensures a client can connect and get if one endpoint is down.
 // TestKVGetOneEndpointDown ensures a client can connect and get if one endpoint is down.
 func TestKVGetOneEndpointDown(t *testing.T) {
 func TestKVGetOneEndpointDown(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	// get endpoint list
 	// get endpoint list
@@ -858,7 +858,7 @@ func TestKVGetOneEndpointDown(t *testing.T) {
 // endpoints are down, then it will reconnect.
 // endpoints are down, then it will reconnect.
 func TestKVGetResetLoneEndpoint(t *testing.T) {
 func TestKVGetResetLoneEndpoint(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 2})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 2, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	// get endpoint list
 	// get endpoint list
@@ -936,7 +936,7 @@ func TestKVPutAtMostOnce(t *testing.T) {
 
 
 func TestKVSwitchUnavailable(t *testing.T) {
 func TestKVSwitchUnavailable(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	clus.Members[0].InjectPartition(t, clus.Members[1:])
 	clus.Members[0].InjectPartition(t, clus.Members[1:])

+ 1 - 1
clientv3/integration/metrics_test.go

@@ -65,7 +65,7 @@ func TestV3ClientMetrics(t *testing.T) {
 
 
 	url := "unix://" + addr + "/metrics"
 	url := "unix://" + addr + "/metrics"
 
 
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 
 	cfg := clientv3.Config{
 	cfg := clientv3.Config{

+ 1 - 0
clientv3/integration/network_partition_test.go

@@ -53,6 +53,7 @@ func testNetworkPartitionBalancer(t *testing.T, op func(*clientv3.Client, contex
 	clus := integration.NewClusterV3(t, &integration.ClusterConfig{
 	clus := integration.NewClusterV3(t, &integration.ClusterConfig{
 		Size:                 3,
 		Size:                 3,
 		GRPCKeepAliveMinTime: time.Millisecond, // avoid too_many_pings
 		GRPCKeepAliveMinTime: time.Millisecond, // avoid too_many_pings
+		SkipCreatingClient:   true,
 	})
 	})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 
 

+ 1 - 1
clientv3/ordering/util_test.go

@@ -82,7 +82,7 @@ func TestEndpointSwitchResolvesViolation(t *testing.T) {
 
 
 func TestUnresolvableOrderViolation(t *testing.T) {
 func TestUnresolvableOrderViolation(t *testing.T) {
 	defer testutil.AfterTest(t)
 	defer testutil.AfterTest(t)
-	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 5})
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 5, SkipCreatingClient: true})
 	defer clus.Terminate(t)
 	defer clus.Terminate(t)
 	cfg := clientv3.Config{
 	cfg := clientv3.Config{
 		Endpoints: []string{
 		Endpoints: []string{

+ 10 - 5
integration/cluster.go

@@ -103,6 +103,8 @@ type ClusterConfig struct {
 	GRPCKeepAliveMinTime  time.Duration
 	GRPCKeepAliveMinTime  time.Duration
 	GRPCKeepAliveInterval time.Duration
 	GRPCKeepAliveInterval time.Duration
 	GRPCKeepAliveTimeout  time.Duration
 	GRPCKeepAliveTimeout  time.Duration
+	// SkipCreatingClient to skip creating clients for each member.
+	SkipCreatingClient bool
 }
 }
 
 
 type cluster struct {
 type cluster struct {
@@ -986,12 +988,15 @@ func NewClusterV3(t *testing.T, cfg *ClusterConfig) *ClusterV3 {
 		cluster: NewClusterByConfig(t, cfg),
 		cluster: NewClusterByConfig(t, cfg),
 	}
 	}
 	clus.Launch(t)
 	clus.Launch(t)
-	for _, m := range clus.Members {
-		client, err := NewClientV3(m)
-		if err != nil {
-			t.Fatalf("cannot create client: %v", err)
+
+	if !cfg.SkipCreatingClient {
+		for _, m := range clus.Members {
+			client, err := NewClientV3(m)
+			if err != nil {
+				t.Fatalf("cannot create client: %v", err)
+			}
+			clus.clients = append(clus.clients, client)
 		}
 		}
-		clus.clients = append(clus.clients, client)
 	}
 	}
 
 
 	return clus
 	return clus