Commit 903b8eb0 authored by Willem Thiart's avatar Willem Thiart
Browse files

Added leader/candidate voting assertion

parent a0456901
......@@ -441,4 +441,8 @@ void raft_vote(raft_server_t* me_, const int node);
* @param term The new current term */
void raft_set_current_term(raft_server_t* me_, const int term);
/**
* @return this server's node ID */
int raft_get_my_id(raft_server_t* me_);
#endif /* RAFT_H_ */
......@@ -353,11 +353,12 @@ int raft_recv_requestvote(raft_server_t* me_, int node, msg_requestvote_t* vr,
{
raft_server_private_t* me = (raft_server_private_t*)me_;
if (raft_get_current_term(me_) < vr->term)
me->voted_for = -1;
if (__should_grant_vote(me, vr))
{
/* It shouldn't be possible for a leader or candidate to grant a vote
* Both states would have voted for themselves */
assert(!(raft_is_leader(me_) || raft_is_candidate(me_)));
raft_vote(me_, node);
r->vote_granted = 1;
}
......
......@@ -36,6 +36,9 @@ void TestRaft_scenario_leader_appears(CuTest * tc)
}), sender[j]);
}
/* NOTE: important for 1st node to send vote request before others */
raft_periodic(r[0], 1000);
for (i = 0; i < 20; i++)
{
one_more_time:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment