Browse Source

clientv3: Avoid timeouts in ordering test

Joe Betz 7 years ago
parent
commit
66e65cd660

+ 12 - 9
clientv3/balancer/balancer_test.go

@@ -67,13 +67,14 @@ func TestRoundRobinBalancedResolvableNoFailover(t *testing.T) {
 			defer rsv.Close()
 			rsv.InitialAddrs(resolvedAddrs)
 
+			name := genName()
 			cfg := Config{
 				Policy: picker.RoundrobinBalanced,
-				Name:   genName(),
+				Name:   name,
 				Logger: zap.NewExample(),
 			}
-			rrb := New(cfg)
-			conn, err := grpc.Dial(fmt.Sprintf("endpoint://nofailover/*"), grpc.WithInsecure(), grpc.WithBalancerName(rrb.Name()))
+			RegisterBuilder(cfg)
+			conn, err := grpc.Dial(fmt.Sprintf("endpoint://nofailover/*"), grpc.WithInsecure(), grpc.WithBalancerName(name))
 			if err != nil {
 				t.Fatalf("failed to dial mock server: %v", err)
 			}
@@ -129,13 +130,14 @@ func TestRoundRobinBalancedResolvableFailoverFromServerFail(t *testing.T) {
 	defer rsv.Close()
 	rsv.InitialAddrs(resolvedAddrs)
 
+	name := genName()
 	cfg := Config{
 		Policy: picker.RoundrobinBalanced,
-		Name:   genName(),
+		Name:   name,
 		Logger: zap.NewExample(),
 	}
-	rrb := New(cfg)
-	conn, err := grpc.Dial(fmt.Sprintf("endpoint://serverfail/mock.server"), grpc.WithInsecure(), grpc.WithBalancerName(rrb.Name()))
+	RegisterBuilder(cfg)
+	conn, err := grpc.Dial(fmt.Sprintf("endpoint://serverfail/mock.server"), grpc.WithInsecure(), grpc.WithBalancerName(name))
 	if err != nil {
 		t.Fatalf("failed to dial mock server: %s", err)
 	}
@@ -242,13 +244,14 @@ func TestRoundRobinBalancedResolvableFailoverFromRequestFail(t *testing.T) {
 	defer rsv.Close()
 	rsv.InitialAddrs(resolvedAddrs)
 
+	name := genName()
 	cfg := Config{
 		Policy: picker.RoundrobinBalanced,
-		Name:   genName(),
+		Name:   name,
 		Logger: zap.NewExample(),
 	}
-	rrb := New(cfg)
-	conn, err := grpc.Dial(fmt.Sprintf("endpoint://requestfail/mock.server"), grpc.WithInsecure(), grpc.WithBalancerName(rrb.Name()))
+	RegisterBuilder(cfg)
+	conn, err := grpc.Dial(fmt.Sprintf("endpoint://requestfail/mock.server"), grpc.WithInsecure(), grpc.WithBalancerName(name))
 	if err != nil {
 		t.Fatalf("failed to dial mock server: %s", err)
 	}

+ 2 - 0
clientv3/ordering/util.go

@@ -43,6 +43,8 @@ func NewOrderViolationSwitchEndpointClosure(c clientv3.Client) OrderViolationFun
 		// set available endpoints back to all endpoints in to ensure
 		// the client has access to all the endpoints.
 		c.SetEndpoints(eps...)
+		// give enough time for operation
+		time.Sleep(1 * time.Second)
 		violationCount++
 		return nil
 	}

+ 2 - 1
clientv3/ordering/util_test.go

@@ -142,8 +142,9 @@ func TestUnresolvableOrderViolation(t *testing.T) {
 	if err != nil {
 		t.Fatal(err)
 	}
+	clus.Members[3].WaitStarted(t)
 	cli.SetEndpoints(clus.Members[3].GRPCAddr())
-	time.Sleep(1 * time.Second) // give enough time for operation
+	time.Sleep(5 * time.Second) // give enough time for operation
 
 	_, err = OrderingKv.Get(ctx, "foo", clientv3.WithSerializable())
 	if err != ErrNoGreaterRev {

+ 8 - 3
integration/cluster.go

@@ -950,6 +950,13 @@ func (m *member) Launch() error {
 }
 
 func (m *member) WaitOK(t *testing.T) {
+	m.WaitStarted(t)
+	for m.s.Leader() == 0 {
+		time.Sleep(tickDuration)
+	}
+}
+
+func (m *member) WaitStarted(t *testing.T) {
 	cc := MustNewHTTPClient(t, []string{m.URL()}, m.ClientTLSInfo)
 	kapi := client.NewKeysAPI(cc)
 	for {
@@ -962,9 +969,7 @@ func (m *member) WaitOK(t *testing.T) {
 		cancel()
 		break
 	}
-	for m.s.Leader() == 0 {
-		time.Sleep(tickDuration)
-	}
+
 }
 
 func (m *member) URL() string { return m.ClientURLs[0].String() }