From 3d12e36c7edf118dda1f68a287abb087973b4d63 Mon Sep 17 00:00:00 2001 From: lorneli Date: Tue, 1 May 2018 17:05:08 +0800 Subject: [PATCH] raft: merge test cases of pre-candidate with the normal one So result checking just compares the expected with output and becomes more readable. --- raft/raft_test.go | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/raft/raft_test.go b/raft/raft_test.go index 6540d0f72..5664c294a 100644 --- a/raft/raft_test.go +++ b/raft/raft_test.go @@ -303,8 +303,15 @@ func TestLeaderElectionPreVote(t *testing.T) { func testLeaderElection(t *testing.T, preVote bool) { var cfg func(*Config) + candState := StateType(StateCandidate) + candTerm := uint64(1) if preVote { cfg = preVoteConfig + // In pre-vote mode, an election that fails to complete + // leaves the node in pre-candidate state without advancing + // the term. + candState = StatePreCandidate + candTerm = 0 } tests := []struct { *network @@ -313,8 +320,8 @@ func testLeaderElection(t *testing.T, preVote bool) { }{ {newNetworkWithConfig(cfg, nil, nil, nil), StateLeader, 1}, {newNetworkWithConfig(cfg, nil, nil, nopStepper), StateLeader, 1}, - {newNetworkWithConfig(cfg, nil, nopStepper, nopStepper), StateCandidate, 1}, - {newNetworkWithConfig(cfg, nil, nopStepper, nopStepper, nil), StateCandidate, 1}, + {newNetworkWithConfig(cfg, nil, nopStepper, nopStepper), candState, candTerm}, + {newNetworkWithConfig(cfg, nil, nopStepper, nopStepper, nil), candState, candTerm}, {newNetworkWithConfig(cfg, nil, nopStepper, nopStepper, nil, nil), StateLeader, 1}, // three logs further along than 0, but in the same term so rejections @@ -327,23 +334,11 @@ func testLeaderElection(t *testing.T, preVote bool) { for i, tt := range tests { tt.send(pb.Message{From: 1, To: 1, Type: pb.MsgHup}) sm := tt.network.peers[1].(*raft) - var expState StateType - var expTerm uint64 - if tt.state == StateCandidate && preVote { - // In pre-vote mode, an election that fails to complete - // leaves the node in pre-candidate state without advancing - // the term. - expState = StatePreCandidate - expTerm = 0 - } else { - expState = tt.state - expTerm = tt.expTerm + if sm.state != tt.state { + t.Errorf("#%d: state = %s, want %s", i, sm.state, tt.state) } - if sm.state != expState { - t.Errorf("#%d: state = %s, want %s", i, sm.state, expState) - } - if g := sm.Term; g != expTerm { - t.Errorf("#%d: term = %d, want %d", i, g, expTerm) + if g := sm.Term; g != tt.expTerm { + t.Errorf("#%d: term = %d, want %d", i, g, tt.expTerm) } } }