raft: add elaspe reset test

This commit is contained in:
Xiang Li
2014-06-06 14:35:40 -07:00
committed by Yicheng Qin
parent 5d710c0f7a
commit c7e358922b

View File

@@ -57,3 +57,30 @@ func TestTickMsgBeat(t *testing.T) {
t.Errorf("called = %v, want %v", called, w)
}
}
func TestResetElapse(t *testing.T) {
tests := []struct {
msg Message
welapsed tick
}{
{Message{From: 0, To: 1, Type: msgApp, Term: 2, Entries: []Entry{{Term: 1}}}, 0},
{Message{From: 0, To: 1, Type: msgApp, Term: 1, Entries: []Entry{{Term: 1}}}, 1},
{Message{From: 0, To: 1, Type: msgVote, Term: 2}, 0},
{Message{From: 0, To: 1, Type: msgVote, Term: 1}, 1},
}
for i, tt := range tests {
n := New(3, 1, defaultHeartbeat, defaultElection)
n.sm.term = 2
n.Tick()
if n.elapsed != 1 {
t.Errorf("%d: elpased = %d, want %d", i, n.elapsed, 1)
}
n.Step(tt.msg)
if n.elapsed != tt.welapsed {
t.Errorf("%d: elpased = %d, want %d", i, n.elapsed, tt.welapsed)
}
}
}