فهرست منبع

Merge pull request #5137 from gyuho/member_add_test

e2e: add member add/update test
Gyu-Ho Lee 9 سال پیش
والد
کامیت
b37a0ad9e7
1فایلهای تغییر یافته به همراه56 افزوده شده و 0 حذف شده
  1. 56 0
      e2e/ctl_v3_member_test.go

+ 56 - 0
e2e/ctl_v3_member_test.go

@@ -26,6 +26,8 @@ import (
 
 func TestCtlV3MemberList(t *testing.T)   { testCtl(t, memberListTest) }
 func TestCtlV3MemberRemove(t *testing.T) { testCtl(t, memberRemoveTest, withQuorum()) }
+func TestCtlV3MemberAdd(t *testing.T)    { testCtl(t, memberAddTest) }
+func TestCtlV3MemberUpdate(t *testing.T) { testCtl(t, memberUpdateTest) }
 
 func memberListTest(cx ctlCtx) {
 	if err := ctlV3MemberList(cx); err != nil {
@@ -101,3 +103,57 @@ func ctlV3MemberRemove(cx ctlCtx, memberID, clusterID string) error {
 	cmdArgs := append(cx.PrefixArgs(), "member", "remove", memberID)
 	return spawnWithExpect(cmdArgs, fmt.Sprintf("%s removed from cluster %s", memberID, clusterID))
 }
+
+func memberAddTest(cx ctlCtx) {
+	peerURL := fmt.Sprintf("http://localhost:%d", etcdProcessBasePort+11)
+	cmdArgs := append(cx.PrefixArgs(), "member", "add", "newmember", fmt.Sprintf("--peerURLs=%s", peerURL))
+	if err := spawnWithExpect(cmdArgs, " added to cluster "); err != nil {
+		cx.t.Fatal(err)
+	}
+
+	mresp, err := getMemberList(cx)
+	if err != nil {
+		cx.t.Fatal(err)
+	}
+	if len(mresp.Members) != 2 {
+		cx.t.Fatalf("expected 2, got %d", len(mresp.Members))
+	}
+
+	found := false
+	for _, mem := range mresp.Members {
+		for _, v := range mem.PeerURLs {
+			if v == peerURL {
+				found = true
+				break
+			}
+		}
+	}
+	if !found {
+		cx.t.Fatalf("expected %s in PeerURLs, got %+v", peerURL, mresp.Members)
+	}
+}
+
+func memberUpdateTest(cx ctlCtx) {
+	mr, err := getMemberList(cx)
+	if err != nil {
+		cx.t.Fatal(err)
+	}
+
+	peerURL := fmt.Sprintf("http://localhost:%d", etcdProcessBasePort+11)
+	cmdArgs := append(cx.PrefixArgs(), "member", "update", fmt.Sprintf("%x", mr.Members[0].ID), fmt.Sprintf("--peerURLs=%s", peerURL))
+	if err = spawnWithExpect(cmdArgs, " updated in cluster "); err != nil {
+		cx.t.Fatal(err)
+	}
+
+	mresp, err := getMemberList(cx)
+	if err != nil {
+		cx.t.Fatal(err)
+	}
+	if len(mresp.Members) != 1 {
+		cx.t.Fatalf("expected 1, got %d", len(mresp.Members))
+	}
+
+	if mresp.Members[0].PeerURLs[0] != peerURL {
+		cx.t.Fatalf("expected %s in PeerURLs, got %+v", peerURL, mresp.Members)
+	}
+}