Browse Source

server: move TestModeChange to functional tests

Yicheng Qin 11 years ago
parent
commit
7aa9838d8d
2 changed files with 62 additions and 62 deletions
  1. 62 0
      etcd/etcd_functional_test.go
  2. 0 62
      etcd/etcd_test.go

+ 62 - 0
etcd/etcd_functional_test.go

@@ -135,6 +135,68 @@ func BenchmarkEndToEndSet(b *testing.B) {
 	}
 }
 
+// TODO(yichengq): cannot handle previous msgDenial correctly now
+func TestModeSwitch(t *testing.T) {
+	t.Skip("not passed")
+	size := 5
+	round := 3
+
+	for i := 0; i < size; i++ {
+		es, hs := buildCluster(size, false)
+		waitCluster(t, es)
+
+		config := config.NewClusterConfig()
+		config.SyncInterval = 0
+		id := int64(i)
+		for j := 0; j < round; j++ {
+			lead, _ := waitActiveLeader(es)
+			// cluster only demotes follower
+			if lead == id {
+				continue
+			}
+
+			config.ActiveSize = size - 1
+			if err := es[lead].p.setClusterConfig(config); err != nil {
+				t.Fatalf("#%d: setClusterConfig err = %v", i, err)
+			}
+			if err := es[lead].p.remove(id); err != nil {
+				t.Fatalf("#%d: remove err = %v", i, err)
+			}
+
+			waitMode(standbyMode, es[i])
+
+			for k := 0; k < 4; k++ {
+				if es[i].s.leader != noneId {
+					break
+				}
+				time.Sleep(20 * time.Millisecond)
+			}
+			if g := es[i].s.leader; g != lead {
+				t.Errorf("#%d: lead = %d, want %d", i, g, lead)
+			}
+
+			config.ActiveSize = size
+			if err := es[lead].p.setClusterConfig(config); err != nil {
+				t.Fatalf("#%d: setClusterConfig err = %v", i, err)
+			}
+
+			waitMode(participantMode, es[i])
+
+			if err := checkParticipant(i, es); err != nil {
+				t.Errorf("#%d: check alive err = %v", i, err)
+			}
+		}
+
+		for i := range hs {
+			es[len(hs)-i-1].Stop()
+		}
+		for i := range hs {
+			hs[len(hs)-i-1].Close()
+		}
+	}
+	afterTest(t)
+}
+
 type leadterm struct {
 	lead int64
 	term int64

+ 0 - 62
etcd/etcd_test.go

@@ -280,68 +280,6 @@ func TestBecomeStandby(t *testing.T) {
 	afterTest(t)
 }
 
-// TODO(yichengq): cannot handle previous msgDenial correctly now
-func TestModeSwitch(t *testing.T) {
-	t.Skip("not passed")
-	size := 5
-	round := 3
-
-	for i := 0; i < size; i++ {
-		es, hs := buildCluster(size, false)
-		waitCluster(t, es)
-
-		config := config.NewClusterConfig()
-		config.SyncInterval = 0
-		id := int64(i)
-		for j := 0; j < round; j++ {
-			lead, _ := waitActiveLeader(es)
-			// cluster only demotes follower
-			if lead == id {
-				continue
-			}
-
-			config.ActiveSize = size - 1
-			if err := es[lead].p.setClusterConfig(config); err != nil {
-				t.Fatalf("#%d: setClusterConfig err = %v", i, err)
-			}
-			if err := es[lead].p.remove(id); err != nil {
-				t.Fatalf("#%d: remove err = %v", i, err)
-			}
-
-			waitMode(standbyMode, es[i])
-
-			for k := 0; k < 4; k++ {
-				if es[i].s.leader != noneId {
-					break
-				}
-				time.Sleep(20 * time.Millisecond)
-			}
-			if g := es[i].s.leader; g != lead {
-				t.Errorf("#%d: lead = %d, want %d", i, g, lead)
-			}
-
-			config.ActiveSize = size
-			if err := es[lead].p.setClusterConfig(config); err != nil {
-				t.Fatalf("#%d: setClusterConfig err = %v", i, err)
-			}
-
-			waitMode(participantMode, es[i])
-
-			if err := checkParticipant(i, es); err != nil {
-				t.Errorf("#%d: check alive err = %v", i, err)
-			}
-		}
-
-		for i := range hs {
-			es[len(hs)-i-1].Stop()
-		}
-		for i := range hs {
-			hs[len(hs)-i-1].Close()
-		}
-	}
-	afterTest(t)
-}
-
 func buildCluster(number int, tls bool) ([]*Server, []*httptest.Server) {
 	bootstrapper := 0
 	es := make([]*Server, number)