Browse Source

Merge pull request #9267 from gyuho/member-add-test

snapshot: fix "TestSnapshotV3RestoreMultiMemberAdd"
Gyuho Lee 7 years ago
parent
commit
8bf0c43b73
2 changed files with 18 additions and 9 deletions
  1. 1 0
      pkg/testutil/var.go
  2. 17 9
      snapshot/member_test.go

+ 1 - 0
pkg/testutil/var.go

@@ -17,5 +17,6 @@ package testutil
 import "time"
 import "time"
 
 
 var (
 var (
+	ApplyTimeout   = time.Second
 	RequestTimeout = 3 * time.Second
 	RequestTimeout = 3 * time.Second
 )
 )

+ 17 - 9
snapshot/member_test.go

@@ -59,6 +59,9 @@ func TestSnapshotV3RestoreMultiMemberAdd(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 
 
+	// wait for membership reconfiguration apply
+	time.Sleep(testutil.ApplyTimeout)
+
 	cfg := embed.NewConfig()
 	cfg := embed.NewConfig()
 	cfg.Name = "3"
 	cfg.Name = "3"
 	cfg.InitialClusterToken = testClusterTkn
 	cfg.InitialClusterToken = testClusterTkn
@@ -102,16 +105,21 @@ func TestSnapshotV3RestoreMultiMemberAdd(t *testing.T) {
 	if len(mresp.Members) != 4 {
 	if len(mresp.Members) != 4 {
 		t.Fatalf("expected 4 members, got %+v", mresp)
 		t.Fatalf("expected 4 members, got %+v", mresp)
 	}
 	}
-	for i := range kvs {
-		var gresp *clientv3.GetResponse
-		ctx, cancel = context.WithTimeout(context.Background(), testutil.RequestTimeout)
-		gresp, err = cli2.Get(ctx, kvs[i].k)
-		cancel()
-		if err != nil {
-			t.Fatal(err)
+
+	// make sure restored cluster has kept all data on recovery
+	var gresp *clientv3.GetResponse
+	ctx, cancel = context.WithTimeout(context.Background(), testutil.RequestTimeout)
+	gresp, err = cli2.Get(ctx, "foo", clientv3.WithPrefix())
+	cancel()
+	if err != nil {
+		t.Fatal(err)
+	}
+	for i := range gresp.Kvs {
+		if string(gresp.Kvs[i].Key) != kvs[i].k {
+			t.Fatalf("#%d: key expected %s, got %s", i, kvs[i].k, string(gresp.Kvs[i].Key))
 		}
 		}
-		if string(gresp.Kvs[0].Value) != kvs[i].v {
-			t.Fatalf("#%d: value expected %s, got %s", i, kvs[i].v, string(gresp.Kvs[0].Value))
+		if string(gresp.Kvs[i].Value) != kvs[i].v {
+			t.Fatalf("#%d: value expected %s, got %s", i, kvs[i].v, string(gresp.Kvs[i].Value))
 		}
 		}
 	}
 	}
 }
 }