Browse Source

raft: refine TestVote

Yicheng Qin 11 years ago
parent
commit
7dc02b947d
1 changed files with 8 additions and 9 deletions
  1. 8 9
      raft/raft_test.go

+ 8 - 9
raft/raft_test.go

@@ -383,7 +383,7 @@ func TestCommit(t *testing.T) {
 	}
 }
 
-func TestVote(t *testing.T) {
+func TestRecvMsgVote(t *testing.T) {
 	tests := []struct {
 		state   stateType
 		i, term int
@@ -418,7 +418,6 @@ func TestVote(t *testing.T) {
 	}
 
 	for i, tt := range tests {
-		called := false
 		sm := &stateMachine{
 			state: tt.state,
 			vote:  tt.voteFor,
@@ -427,14 +426,14 @@ func TestVote(t *testing.T) {
 
 		sm.Step(Message{Type: msgVote, From: 1, Index: tt.i, LogTerm: tt.term})
 
-		for _, m := range sm.Msgs() {
-			called = true
-			if m.Index != tt.w {
-				t.Errorf("#%d, m.Index = %d, want %d", i, m.Index, tt.w)
-			}
+		msgs := sm.Msgs()
+		if len(msgs) != 1 {
+			t.Errorf("#%d: len(msgs) = %d, want 1", i, len(msgs))
+			continue
 		}
-		if !called {
-			t.Fatal("#%d: not called", i)
+		g := msgs[0].Index
+		if g != tt.w {
+			t.Errorf("#%d, m.Index = %d, want %d", i, g, tt.w)
 		}
 	}
 }