Browse Source

etcdserver: enhance test cases for isReadyToAddNewMember

 - a case of a cluster with even number members
 - a case of an empty cluster
Hitoshi Mitake 10 years ago
parent
commit
dad32646eb
1 changed files with 15 additions and 0 deletions
  1. 15 0
      etcdserver/cluster_test.go

+ 15 - 0
etcdserver/cluster_test.go

@@ -623,6 +623,21 @@ func TestIsReadyToAddNewMember(t *testing.T) {
 			},
 			true,
 		},
+		{
+			// 3/4 members ready, should be fine to add one member and retain quorum
+			[]*Member{
+				newTestMember(1, nil, "1", nil),
+				newTestMember(2, nil, "2", nil),
+				newTestMember(3, nil, "3", nil),
+				newTestMember(4, nil, "", nil),
+			},
+			true,
+		},
+		{
+			// empty cluster, it is impossible but should fail
+			[]*Member{},
+			false,
+		},
 	}
 	for i, tt := range tests {
 		c := newTestCluster(tt.members)