From 1e54117580c380fe749578d2e5254804ad0a4fc2 Mon Sep 17 00:00:00 2001 From: "swingbach@gmail.com" Date: Thu, 19 May 2016 10:38:10 +0800 Subject: [PATCH] raft: add more comments for dueling candidates test case --- raft/raft_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/raft/raft_test.go b/raft/raft_test.go index f100a246f..660e14214 100644 --- a/raft/raft_test.go +++ b/raft/raft_test.go @@ -476,17 +476,23 @@ func TestDuelingCandidates(t *testing.T) { nt.send(pb.Message{From: 1, To: 1, Type: pb.MsgHup}) nt.send(pb.Message{From: 3, To: 3, Type: pb.MsgHup}) + // 1 becomes leader since it receives votes from 1 and 2 sm := nt.peers[1].(*raft) if sm.state != StateLeader { t.Errorf("state = %s, want %s", sm.state, StateLeader) } + // 3 stays as candidate since it receives a vote from 3 and a rejection from 2 sm = nt.peers[3].(*raft) if sm.state != StateCandidate { t.Errorf("state = %s, want %s", sm.state, StateCandidate) } nt.recover() + + // candidate 3 now increases its term and tries to vote again + // we expect it to disrupt the leader 1 since it has a higher term + // 3 will be follower again since both 1 and 2 rejects its vote request since 3 does not have a long enough log nt.send(pb.Message{From: 3, To: 3, Type: pb.MsgHup}) wlog := &raftLog{