Commit fd5b8b19 authored by Willem Thiart's avatar Willem Thiart
Browse files

Check voted for

parent f9dfe150
...@@ -599,6 +599,9 @@ int raft_get_nvotes_for_me(raft_server_t* me_) ...@@ -599,6 +599,9 @@ int raft_get_nvotes_for_me(raft_server_t* me_)
void raft_vote(raft_server_t* me_, const int node) void raft_vote(raft_server_t* me_, const int node)
{ {
raft_server_private_t* me = (raft_server_private_t*)me_; raft_server_private_t* me = (raft_server_private_t*)me_;
assert(-1 == me->voted_for || node == -1);
me->voted_for = node; me->voted_for = node;
if (me->cb.persist_vote) if (me->cb.persist_vote)
me->cb.persist_vote(me_, me->udata, node); me->cb.persist_vote(me_, me->udata, node);
......
...@@ -53,6 +53,10 @@ void TestRaft_server_voting_results_in_voting(CuTest * tc) ...@@ -53,6 +53,10 @@ void TestRaft_server_voting_results_in_voting(CuTest * tc)
void *r = raft_new(); void *r = raft_new();
raft_vote(r, 1); raft_vote(r, 1);
CuAssertTrue(tc, 1 == raft_get_voted_for(r)); CuAssertTrue(tc, 1 == raft_get_voted_for(r));
/* have to reset */
raft_vote(r, -1);
raft_vote(r, 9); raft_vote(r, 9);
CuAssertTrue(tc, 9 == raft_get_voted_for(r)); CuAssertTrue(tc, 9 == raft_get_voted_for(r));
} }
......
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