Add test for stale append.
parent
b026fec928
commit
6988dd4d6a
|
@ -132,7 +132,23 @@ func TestServerAppendEntries(t *testing.T) {
|
||||||
server.Stop()
|
server.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Reject entries from old terms.
|
// Ensure that entries with stale terms are rejected.
|
||||||
|
func TestServerAppendEntriesWithStaleTermsAreRejected(t *testing.T) {
|
||||||
|
server := newTestServer("1")
|
||||||
|
server.Start()
|
||||||
|
server.currentTerm = 2
|
||||||
|
|
||||||
|
// Append single entry.
|
||||||
|
entries := []*LogEntry{NewLogEntry(nil, 1, 1, &TestCommand1{"foo", 10})}
|
||||||
|
resp, err := server.AppendEntries(NewAppendEntriesRequest(1, "ldr", 0, 0, entries, 0))
|
||||||
|
if !(resp.Term == 2 && !resp.Success && err != nil && err.Error() == "raft.Server: Stale request term") {
|
||||||
|
t.Fatalf("AppendEntries should have failed: %v/%v : %v", resp.Term, resp.Success, err)
|
||||||
|
}
|
||||||
|
if index, term := server.log.CommitInfo(); !(index == 0 && term == 0) {
|
||||||
|
t.Fatalf("Invalid commit info [IDX=%v, TERM=%v]", index, term)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Reject new entries to log if entries already exist.
|
// TODO: Reject new entries to log if entries already exist.
|
||||||
// TODO: Reject entries from earlier index or term.
|
// TODO: Reject entries from earlier index or term.
|
||||||
// TODO: Test rollback of uncommitted entries.
|
// TODO: Test rollback of uncommitted entries.
|
||||||
|
|
Loading…
Reference in New Issue