Commit 49176fc7 authored by willem's avatar willem
Browse files

Changed peer interface

parent 0feb3d14
...@@ -20,7 +20,7 @@ typedef struct { ...@@ -20,7 +20,7 @@ typedef struct {
void* inbox; void* inbox;
} sender_t; } sender_t;
int sender_send(void* caller, void* udata, int peer, const unsigned char* data, int len) int sender_send(void* caller, void* udata, void* peer, const unsigned char* data, int len)
{ {
sender_t* me = udata; sender_t* me = udata;
void* n; void* n;
......
int sender_send(void* caller, void* udata, const int peer, int sender_send(void* caller, void* udata, void* peer,
const unsigned char* data, const int len); const unsigned char* data, const int len);
void* sender_new(); void* sender_new();
......
...@@ -65,7 +65,7 @@ typedef int ( ...@@ -65,7 +65,7 @@ typedef int (
) ( ) (
void *caller, void *caller,
void *udata, void *udata,
const int peer, void* peer,
const unsigned char *send_data, const unsigned char *send_data,
const int len const int len
); );
...@@ -146,23 +146,23 @@ int raft_receive_append_entries(raft_server_t* me, msg_appendentries_t* ae); ...@@ -146,23 +146,23 @@ int raft_receive_append_entries(raft_server_t* me, msg_appendentries_t* ae);
int raft_periodic(void* me_); int raft_periodic(void* me_);
int raft_recv_appendentries(void* me_, int peer, msg_appendentries_t* ae); int raft_recv_appendentries(void* me_, void* peer, msg_appendentries_t* ae);
int raft_recv_requestvote(void* me_, int peer, msg_requestvote_t* vr); int raft_recv_requestvote(void* me_, void* peer, msg_requestvote_t* vr);
void raft_execute_command(void* me_); void raft_execute_command(void* me_);
void raft_set_election_timeout(void* me_, int millisec); void raft_set_election_timeout(void* me_, int millisec);
int raft_vote(void* me_, int peer); int raft_vote(void* me_, void* peer);
int raft_add_peer(void* me_, void* peer_udata); void* raft_add_peer(void* me_, void* peer_udata);
int raft_remove_peer(void* me_, int peer); int raft_remove_peer(void* me_, void* peer);
int raft_get_num_peers(void* me_); int raft_get_num_peers(void* me_);
int raft_recv_command(void* me_, int peer, msg_command_t* cmd); int raft_recv_command(void* me_, void* peer, msg_command_t* cmd);
int raft_get_log_size(void* me_); int raft_get_log_size(void* me_);
...@@ -182,4 +182,4 @@ int raft_is_leader(void* me_); ...@@ -182,4 +182,4 @@ int raft_is_leader(void* me_);
int raft_is_candidate(void* me_); int raft_is_candidate(void* me_);
int raft_send_requestvote(void* me_, int peer); int raft_send_requestvote(void* me_, void* peer);
...@@ -116,22 +116,22 @@ int raft_periodic(void* me_) ...@@ -116,22 +116,22 @@ int raft_periodic(void* me_)
/** /**
* Invoked by leader to replicate log entries (§5.3); also used as heartbeat (§5.2). */ * Invoked by leader to replicate log entries (§5.3); also used as heartbeat (§5.2). */
int raft_recv_appendentries(void* me_, int peer, msg_appendentries_t* ae) int raft_recv_appendentries(void* me_, void* peer, msg_appendentries_t* ae)
{ {
return 0; return 0;
} }
int raft_recv_appendentries_response(void* me_, int peer, msg_appendentries_response_t* ae) int raft_recv_appendentries_response(void* me_, void* peer, msg_appendentries_response_t* ae)
{ {
return 0; return 0;
} }
int raft_recv_requestvote(void* me_, int peer, msg_requestvote_t* vr) int raft_recv_requestvote(void* me_, void* peer, msg_requestvote_t* vr)
{ {
return 0; return 0;
} }
int raft_recv_requestvote_response(void* me_, int peer, msg_requestvote_response_t* r) int raft_recv_requestvote_response(void* me_, void* peer, msg_requestvote_response_t* r)
{ {
return 0; return 0;
} }
...@@ -144,7 +144,7 @@ void raft_set_election_timeout(void* me_, int millisec) ...@@ -144,7 +144,7 @@ void raft_set_election_timeout(void* me_, int millisec)
{ {
} }
int raft_vote(void* me_, int peer) int raft_vote(void* me_, void* peer)
{ {
return 0; return 0;
} }
...@@ -156,12 +156,12 @@ void raft_set_configuration(raft_server_t* me) ...@@ -156,12 +156,12 @@ void raft_set_configuration(raft_server_t* me)
} }
#endif #endif
int raft_add_peer(void* me_, void* peer_udata) void* raft_add_peer(void* me_, void* peer_udata)
{ {
return 0; return NULL;
} }
int raft_remove_peer(void* me_, int peer) int raft_remove_peer(void* me_, void* peer)
{ {
return 0; return 0;
} }
...@@ -172,7 +172,7 @@ int raft_get_num_peers(void* me_) ...@@ -172,7 +172,7 @@ int raft_get_num_peers(void* me_)
return 0; return 0;
} }
int raft_recv_command(void* me_, int peer, msg_command_t* cmd) int raft_recv_command(void* me_, void* peer, msg_command_t* cmd)
{ {
return 0; return 0;
} }
...@@ -220,7 +220,7 @@ int raft_is_candidate(void* me_) ...@@ -220,7 +220,7 @@ int raft_is_candidate(void* me_)
return 0; return 0;
} }
int raft_send_requestvote(void* me_, int peer) int raft_send_requestvote(void* me_, void* peer)
{ {
return 0; return 0;
......
...@@ -143,7 +143,7 @@ void TestRaft_candidate_receives_majority_of_votes_becomes_leader(CuTest * tc) ...@@ -143,7 +143,7 @@ void TestRaft_candidate_receives_majority_of_votes_becomes_leader(CuTest * tc)
/* Candidate 5.2 */ /* Candidate 5.2 */
void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted(CuTest * tc) void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
void *msg; void *msg;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
...@@ -161,7 +161,7 @@ void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted( ...@@ -161,7 +161,7 @@ void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted(
r = raft_new(); r = raft_new();
/* three nodes */ /* three nodes */
raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
raft_add_peer(r,(void*)2); raft_add_peer(r,(void*)2);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_set_current_term(r,1); raft_set_current_term(r,1);
...@@ -170,7 +170,7 @@ void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted( ...@@ -170,7 +170,7 @@ void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted(
CuAssertTrue(tc, 0 == raft_is_follower(r)); CuAssertTrue(tc, 0 == raft_is_follower(r));
raft_periodic(r); raft_periodic(r);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
CuAssertTrue(tc, 1 == raft_is_follower(r)); CuAssertTrue(tc, 1 == raft_is_follower(r));
} }
...@@ -211,7 +211,7 @@ void TestRaft_candidate_will_reject_requestvote_if_its_log_is_more_complete(CuTe ...@@ -211,7 +211,7 @@ void TestRaft_candidate_will_reject_requestvote_if_its_log_is_more_complete(CuTe
/* Candidate 5.2 */ /* Candidate 5.2 */
void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc) void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
void *msg; void *msg;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
...@@ -223,13 +223,14 @@ void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc) ...@@ -223,13 +223,14 @@ void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc)
r = raft_new(); r = raft_new();
/* three nodes */ /* three nodes */
raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
raft_add_peer(r,(void*)2); raft_add_peer(r,(void*)2);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_set_current_term(r,5); raft_set_current_term(r,5);
raft_set_current_index(r,3); raft_set_current_index(r,3);
raft_set_state(r,RAFT_STATE_CANDIDATE); raft_set_state(r,RAFT_STATE_CANDIDATE);
raft_send_requestvote(r,1); raft_send_requestvote(r,peer);
msg = sender_poll_msg(sender); msg = sender_poll_msg(sender);
// CuAssertTrue(tc, msg_is_requestvote(msg)); // CuAssertTrue(tc, msg_is_requestvote(msg));
...@@ -240,7 +241,7 @@ void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc) ...@@ -240,7 +241,7 @@ void TestRaft_candidate_requestvote_includes_loginfo(CuTest * tc)
/* Candidate 5.2 */ /* Candidate 5.2 */
void TestRaft_candidate_recv_appendentries_frm_leader_results_in_follower(CuTest * tc) void TestRaft_candidate_recv_appendentries_frm_leader_results_in_follower(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
void *msg; void *msg;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
...@@ -254,16 +255,18 @@ void TestRaft_candidate_recv_appendentries_frm_leader_results_in_follower(CuTest ...@@ -254,16 +255,18 @@ void TestRaft_candidate_recv_appendentries_frm_leader_results_in_follower(CuTest
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
/* three nodes */ /* three nodes */
raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
raft_add_peer(r,(void*)2); raft_add_peer(r,(void*)2);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_state(r,RAFT_STATE_CANDIDATE); raft_set_state(r,RAFT_STATE_CANDIDATE);
CuAssertTrue(tc, 0 == raft_is_follower(r)); CuAssertTrue(tc, 0 == raft_is_follower(r));
raft_periodic(r); raft_periodic(r);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
CuAssertTrue(tc, 1 == raft_is_follower(r)); CuAssertTrue(tc, 1 == raft_is_follower(r));
} }
......
...@@ -11,41 +11,44 @@ ...@@ -11,41 +11,44 @@
void TestRaft_follower_increases_log_after_appendentry(CuTest * tc) void TestRaft_follower_increases_log_after_appendentry(CuTest * tc)
{ {
void *r; void *r, *peer;
msg_appendentries_t ae; msg_appendentries_t ae;
memset(&ae,0,sizeof(msg_appendentries_t)); memset(&ae,0,sizeof(msg_appendentries_t));
r = raft_new(); r = raft_new();
/* three nodes */ /* three nodes */
raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
raft_add_peer(r,(void*)2); raft_add_peer(r,(void*)2);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_state(r,RAFT_STATE_FOLLOWER); raft_set_state(r,RAFT_STATE_FOLLOWER);
CuAssertTrue(tc, 0 == raft_get_log_size(r)); CuAssertTrue(tc, 0 == raft_get_log_size(r));
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
CuAssertTrue(tc, 1 == raft_get_log_size(r)); CuAssertTrue(tc, 1 == raft_get_log_size(r));
} }
void TestRaft_follower_rejects_appendentries_if_idx_and_term_dont_match_preceding_ones(CuTest * tc) void TestRaft_follower_rejects_appendentries_if_idx_and_term_dont_match_preceding_ones(CuTest * tc)
{ {
void *r; void *r, *peer;
msg_appendentries_t ae; msg_appendentries_t ae;
memset(&ae,0,sizeof(msg_appendentries_t)); memset(&ae,0,sizeof(msg_appendentries_t));
r = raft_new(); r = raft_new();
/* three nodes */ /* three nodes */
raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
raft_add_peer(r,(void*)2); raft_add_peer(r,(void*)2);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_state(r,RAFT_STATE_FOLLOWER); raft_set_state(r,RAFT_STATE_FOLLOWER);
CuAssertTrue(tc, 0 == raft_get_log_size(r)); CuAssertTrue(tc, 0 == raft_get_log_size(r));
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
CuAssertTrue(tc, 1 == raft_get_log_size(r)); CuAssertTrue(tc, 1 == raft_get_log_size(r));
} }
......
...@@ -64,7 +64,7 @@ set commitIndex = N ( ...@@ -64,7 +64,7 @@ set commitIndex = N (
void TestRaft_leader_append_command_to_log_increases_idxno(CuTest * tc) void TestRaft_leader_append_command_to_log_increases_idxno(CuTest * tc)
{ {
void *r; void *r, *peer;
msg_command_t cmd; msg_command_t cmd;
cmd.id = 1; cmd.id = 1;
...@@ -72,16 +72,17 @@ void TestRaft_leader_append_command_to_log_increases_idxno(CuTest * tc) ...@@ -72,16 +72,17 @@ void TestRaft_leader_append_command_to_log_increases_idxno(CuTest * tc)
cmd.len = strlen("command"); cmd.len = strlen("command");
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_state(r,RAFT_STATE_LEADER); raft_set_state(r,RAFT_STATE_LEADER);
CuAssertTrue(tc, 0 == raft_get_log_size(r)); CuAssertTrue(tc, 0 == raft_get_log_size(r));
raft_recv_command(r,1,&cmd); raft_recv_command(r,peer,&cmd);
CuAssertTrue(tc, 1 == raft_get_log_size(r)); CuAssertTrue(tc, 1 == raft_get_log_size(r));
} }
void TestRaft_leader_doesnt_append_command_if_unique_id_is_duplicate(CuTest * tc) void TestRaft_leader_doesnt_append_command_if_unique_id_is_duplicate(CuTest * tc)
{ {
void *r; void *r, *peer;
msg_command_t cmd; msg_command_t cmd;
cmd.id = 1; cmd.id = 1;
...@@ -89,19 +90,47 @@ void TestRaft_leader_doesnt_append_command_if_unique_id_is_duplicate(CuTest * tc ...@@ -89,19 +90,47 @@ void TestRaft_leader_doesnt_append_command_if_unique_id_is_duplicate(CuTest * tc
cmd.len = strlen("command"); cmd.len = strlen("command");
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_state(r,RAFT_STATE_LEADER); raft_set_state(r,RAFT_STATE_LEADER);
CuAssertTrue(tc, 0 == raft_get_log_size(r)); CuAssertTrue(tc, 0 == raft_get_log_size(r));
raft_recv_command(r,1,&cmd); raft_recv_command(r,peer,&cmd);
CuAssertTrue(tc, 1 == raft_get_log_size(r)); CuAssertTrue(tc, 1 == raft_get_log_size(r));
raft_recv_command(r,1,&cmd); raft_recv_command(r,peer,&cmd);
CuAssertTrue(tc, 1 == raft_get_log_size(r)); CuAssertTrue(tc, 1 == raft_get_log_size(r));
} }
void TestRaft_leader_increase_commitno_when_majority_have_entry_and_atleast_one_newer_entry(CuTest * tc) void TestRaft_leader_increase_commitno_when_majority_have_entry_and_atleast_one_newer_entry(CuTest * tc)
{ {
} }
void TestRaft_leader_steps_down_if_received_appendentries_is_newer_than_itself(CuTest * tc)
{
void* peer;
void *r;
void *sender;
raft_external_functions_t funcs = {
.send = sender_send,
.log = NULL
};
msg_appendentries_t ae;
memset(&ae,0,sizeof(msg_appendentries_t));
ae.term = 5;
ae.prevLogIndex = 6;
ae.prevLogTerm = 5;
sender = sender_new();
r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_state(r,RAFT_STATE_LEADER);
raft_set_current_term(r,5);
raft_set_current_index(r,5);
raft_set_external_functions(r,&funcs,sender);
raft_recv_appendentries(r,peer,&ae);
CuAssertTrue(tc, 1 == raft_is_follower(r));
}
...@@ -50,7 +50,7 @@ void TestRaft_add_peer(CuTest * tc) ...@@ -50,7 +50,7 @@ void TestRaft_add_peer(CuTest * tc)
void TestRaft_remove_peer(CuTest * tc) void TestRaft_remove_peer(CuTest * tc)
{ {
void *r; void *r;
int peer; void *peer;
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1); peer = raft_add_peer(r,(void*)1);
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
/* 5.1 */ /* 5.1 */
void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentterm(CuTest * tc) void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentterm(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
.send = sender_send, .send = sender_send,
...@@ -26,11 +26,12 @@ void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentt ...@@ -26,11 +26,12 @@ void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentt
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
/* higher current term */ /* higher current term */
raft_set_current_term(r,5); raft_set_current_term(r,5);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
/* response is false */ /* response is false */
aer = sender_poll_msg(sender); aer = sender_poll_msg(sender);
...@@ -44,7 +45,7 @@ void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentt ...@@ -44,7 +45,7 @@ void TestRaft_server_recv_appendentries_reply_false_when_term_less_than_currentt
/* 5.3 */ /* 5.3 */
void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entry_at_prevLogIndex(CuTest * tc) void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entry_at_prevLogIndex(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
void *msg; void *msg;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
...@@ -61,9 +62,10 @@ void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entr ...@@ -61,9 +62,10 @@ void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entr
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_current_term(r,5); raft_set_current_term(r,5);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
aer = sender_poll_msg(sender); aer = sender_poll_msg(sender);
CuAssertTrue(tc, NULL != aer); CuAssertTrue(tc, NULL != aer);
CuAssertTrue(tc, 0 == aer->success); CuAssertTrue(tc, 0 == aer->success);
...@@ -72,20 +74,22 @@ void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entr ...@@ -72,20 +74,22 @@ void TestRaft_server_recv_appendentries_reply_false_if_log_does_not_contain_entr
/* 5.3 */ /* 5.3 */
void TestRaft_server_recv_appendentries_delete_entries_if_conflict_with_new_entries(CuTest * tc) void TestRaft_server_recv_appendentries_delete_entries_if_conflict_with_new_entries(CuTest * tc)
{ {
void *r; void *r, *peer;
msg_appendentries_t ae; msg_appendentries_t ae;
memset(&ae,0,sizeof(msg_appendentries_t)); memset(&ae,0,sizeof(msg_appendentries_t));
ae.term = 2; ae.term = 2;
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
} }
void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTest * tc) void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
.send = sender_send, .send = sender_send,
...@@ -99,9 +103,11 @@ void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTes ...@@ -99,9 +103,11 @@ void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTes
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
// msg = sender_poll_msg(sender); // msg = sender_poll_msg(sender);
// CuAssertTrue(tc, aer); // CuAssertTrue(tc, aer);
...@@ -113,7 +119,7 @@ void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTes ...@@ -113,7 +119,7 @@ void TestRaft_server_recv_appendentries_add_new_entries_not_already_in_log(CuTes
//min(leaderCommit, last log index) //min(leaderCommit, last log index)
void TestRaft_server_recv_appendentries_set_commitindex(CuTest * tc) void TestRaft_server_recv_appendentries_set_commitindex(CuTest * tc)
{ {
void *r; void *r, *peer;
void *sender; void *sender;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
.send = sender_send, .send = sender_send,
...@@ -127,9 +133,10 @@ void TestRaft_server_recv_appendentries_set_commitindex(CuTest * tc) ...@@ -127,9 +133,10 @@ void TestRaft_server_recv_appendentries_set_commitindex(CuTest * tc)
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_recv_appendentries(r,1,&ae); raft_recv_appendentries(r,peer,&ae);
// msg = sender_poll_msg(sender); // msg = sender_poll_msg(sender);
// CuAssertTrue(tc, aer); // CuAssertTrue(tc, aer);
......
...@@ -18,7 +18,7 @@ void TestRaft_server_recv_requestvote_reply_false_if_term_less_than_current_term ...@@ -18,7 +18,7 @@ void TestRaft_server_recv_requestvote_reply_false_if_term_less_than_current_term
CuTest * tc CuTest * tc
) )
{ {
void *r; void *r, *peer;
void *sender; void *sender;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
.send = sender_send, .send = sender_send,
...@@ -33,9 +33,11 @@ void TestRaft_server_recv_requestvote_reply_false_if_term_less_than_current_term ...@@ -33,9 +33,11 @@ void TestRaft_server_recv_requestvote_reply_false_if_term_less_than_current_term
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_recv_requestvote(r,1,&rv); raft_recv_requestvote(r,peer,&rv);
rvr = sender_poll_msg(sender); rvr = sender_poll_msg(sender);
CuAssertTrue(tc, NULL != rvr); CuAssertTrue(tc, NULL != rvr);
CuAssertTrue(tc, 0 == rvr->voteGranted); CuAssertTrue(tc, 0 == rvr->voteGranted);
...@@ -47,7 +49,7 @@ void TestRaft_server_dont_grant_vote_if_we_didnt_vote_for_this_candidate( ...@@ -47,7 +49,7 @@ void TestRaft_server_dont_grant_vote_if_we_didnt_vote_for_this_candidate(
CuTest * tc CuTest * tc
) )
{ {
void *r; void *r, *peer;
void *sender; void *sender;
void *msg; void *msg;
raft_external_functions_t funcs = { raft_external_functions_t funcs = {
...@@ -63,10 +65,12 @@ void TestRaft_server_dont_grant_vote_if_we_didnt_vote_for_this_candidate( ...@@ -63,10 +65,12 @@ void TestRaft_server_dont_grant_vote_if_we_didnt_vote_for_this_candidate(
sender = sender_new(); sender = sender_new();
r = raft_new(); r = raft_new();
peer = raft_add_peer(r,(void*)1);
raft_set_external_functions(r,&funcs,sender); raft_set_external_functions(r,&funcs,sender);
raft_set_current_term(r,1); raft_set_current_term(r,1);
raft_vote(r,2); raft_vote(r,peer);
raft_recv_requestvote(r,1,&rv); raft_recv_requestvote(r,peer,&rv);
rvr = sender_poll_msg(sender); rvr = sender_poll_msg(sender);
CuAssertTrue(tc, NULL != rvr); CuAssertTrue(tc, NULL != rvr);
CuAssertTrue(tc, 0 == rvr->voteGranted); CuAssertTrue(tc, 0 == rvr->voteGranted);
......
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