Commit 1f02f374 authored by Willem Thiart's avatar Willem Thiart
Browse files

Flatbuffers transport

parent 296c7e0b
......@@ -9,6 +9,8 @@ SHELL = /bin/bash
CFLAGS += -Iinclude -Werror -Werror=return-type -Werror=uninitialized -Wcast-align \
-Wno-pointer-sign -fno-omit-frame-pointer -fno-common -fsigned-char \
-Wunused-variable \
-D FLATCC_PORTABLE \
-I/Users/willem/contrib/flatcc/include \
$(GCOV_CCFLAGS) -I$(LLQUEUE_DIR) -Iinclude -g -O2 -fPIC
UNAME := $(shell uname)
......@@ -26,10 +28,20 @@ SHAREDFLAGS = -shared
SHAREDEXT = so
endif
OBJECTS = src/raft_server.o src/raft_server_properties.o src/raft_node.o src/raft_log.o
TRANSPORT_DIR = include/transport
TRANSPORT_OBJECTS = $(TRANSPORT_DIR)/core_builder.h $(TRANSPORT_DIR)/core_reader.h $(TRANSPORT_DIR)/core_verifier.h $(TRANSPORT_DIR)/flatbuffers_common_builder.h $(TRANSPORT_DIR)/flatbuffers_common_reader.h
all: static shared
.PHONY: transport
transport:
mkdir -p $(TRANSPORT_DIR)
/Users/willem/contrib/flatcc/bin/flatcc -a -o $(TRANSPORT_DIR) src/transport/core.fbs
clinkedlistqueue:
mkdir -p $(LLQUEUE_DIR)/.git
git --git-dir=$(LLQUEUE_DIR)/.git init
......@@ -45,11 +57,11 @@ $(TEST_DIR)/main_test.c:
cd $(TEST_DIR) && sh make-tests.sh "test_*.c" > main_test.c && cd ..
.PHONY: shared
shared: $(OBJECTS)
shared: transport $(OBJECTS)
$(CC) $(OBJECTS) $(LDFLAGS) $(CFLAGS) -fPIC $(SHAREDFLAGS) -o libraft.$(SHAREDEXT)
.PHONY: static
static: $(OBJECTS)
static: transport $(OBJECTS)
ar -r libraft.a $(OBJECTS)
.PHONY: tests
......@@ -89,6 +101,7 @@ do_infer:
clean:
@rm -f $(TEST_DIR)/main_test.c *.o $(GCOV_OUTPUT); \
rm $(TRANSPORT_DIR)/*.h; \
if [ -f "libraft.$(SHAREDEXT)" ]; then rm libraft.$(SHAREDEXT); fi;\
if [ -f libraft.a ]; then rm libraft.a; fi;\
if [ -f tests_main ]; then rm tests_main; fi;
......@@ -126,7 +126,7 @@ We call ``raft_recv_entry`` when we want to append the entry to the log.
.. code-block:: c
msg_entry_response_t response;
LogEntryResponseMsg_table_t response;
e = raft_recv_entry(raft, &entry, &response);
You should populate the ``entry`` struct with the log entry the client has sent. After the call completes the ``response`` parameter is populated and can be used by the ``raft_msg_entry_response_committed`` function to check if the log entry has been committed or not.
......@@ -141,7 +141,7 @@ The ``raft_recv_entry`` function does not block! This means you will need to imp
.. code-block:: c
msg_entry_response_t response;
LogEntryResponseMsg_table_t response;
e = raft_recv_entry(sv->raft, &entry, &response);
if (0 != e)
......@@ -242,7 +242,7 @@ The following callbacks MUST be implemented: ``send_requestvote``, ``send_append
**send_requestvote()**
For this callback we have to serialize a ``msg_requestvote_t`` struct, and then send it to the peer identified by ``node``.
For this callback we have to serialize a ``RequestVoteMsg_t`` struct, and then send it to the peer identified by ``node``.
*Example from ticketd showing how the callback is implemented:*
......@@ -252,7 +252,7 @@ For this callback we have to serialize a ``msg_requestvote_t`` struct, and then
raft_server_t* raft,
void *udata,
raft_node_t* node,
msg_requestvote_t* m
RequestVoteMsg_t* m
)
{
peer_connection_t* conn = raft_node_get_udata(node);
......@@ -272,7 +272,7 @@ For this callback we have to serialize a ``msg_requestvote_t`` struct, and then
**send_appendentries()**
For this callback we have to serialize a ``msg_appendentries_t`` struct, and then send it to the peer identified by ``node``. This struct is more complicated to serialize because the ``m->entries`` array might be populated.
For this callback we have to serialize a ``AppendEntriesMsg_t`` struct, and then send it to the peer identified by ``node``. This struct is more complicated to serialize because the ``m->entries`` array might be populated.
*Example from ticketd showing how the callback is implemented:*
......@@ -282,7 +282,7 @@ For this callback we have to serialize a ``msg_appendentries_t`` struct, and the
raft_server_t* raft,
void *user_data,
raft_node_t* node,
msg_appendentries_t* m
AppendEntriesMsg_t* m
)
{
uv_buf_t bufs[3];
......@@ -376,21 +376,21 @@ The table below shows the structs that you need to deserialize-to or deserialize
+-------------------------+------------------------------+----------------------------------+
| Message Type | Struct | Function |
+-------------------------+------------------------------+----------------------------------+
| Append Entries | msg_appendentries_t | raft_recv_appendentries |
| Append Entries | AppendEntriesMsg_t | raft_recv_appendentries |
+-------------------------+------------------------------+----------------------------------+
| Append Entries response | msg_appendentries_response_t | raft_recv_appendentries_response |
| Append Entries response | AppendEntriesResponseMsg_t | raft_recv_appendentries_response |
+-------------------------+------------------------------+----------------------------------+
| Request Vote | msg_requestvote_t | raft_recv_requestvote |
| Request Vote | RequestVoteMsg_t | raft_recv_requestvote |
+-------------------------+------------------------------+----------------------------------+
| Request Vote response | msg_requestvote_response_t | raft_recv_requestvote_response |
| Request Vote response | RequestVoteResponseMsg_t | raft_recv_requestvote_response |
+-------------------------+------------------------------+----------------------------------+
*Example of how we receive an Append Entries message, and reply to it:*
.. code-block:: c
msg_appendentries_t ae;
msg_appendentries_response_t response;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t response;
char buf_in[1024], buf_out[1024];
size_t len_in, len_out;
......
......@@ -23,6 +23,12 @@
#define RAFT_REQUESTVOTE_ERR_NOT_GRANTED 0
#define RAFT_REQUESTVOTE_ERR_UNKNOWN_NODE -1
// #include "transport/core_builder.h"
#include "transport/core_reader.h"
// #include "transport/core_verifier.h"
// #include "transport/flatbuffers_common_builder.h"
// #include "transport/flatbuffers_common_reader.h"
typedef enum {
RAFT_STATE_NONE,
RAFT_STATE_FOLLOWER,
......@@ -92,105 +98,6 @@ typedef struct
raft_entry_data_t data;
} raft_entry_t;
/** Message sent from client to server.
* The client sends this message to a server with the intention of having it
* applied to the FSM. */
typedef raft_entry_t msg_entry_t;
/** Entry message response.
* Indicates to client if entry was committed or not. */
typedef struct
{
/** the entry's unique ID */
unsigned int id;
/** the entry's term */
int term;
/** the entry's index */
int idx;
} msg_entry_response_t;
/** Vote request message.
* Sent to nodes when a server wants to become leader.
* This message could force a leader/candidate to become a follower. */
typedef struct
{
/** currentTerm, to force other leader/candidate to step down */
int term;
/** candidate requesting vote */
int candidate_id;
/** index of candidate's last log entry */
int last_log_idx;
/** term of candidate's last log entry */
int last_log_term;
} msg_requestvote_t;
/** Vote request response message.
* Indicates if node has accepted the server's vote request. */
typedef struct
{
/** currentTerm, for candidate to update itself */
int term;
/** true means candidate received vote */
int vote_granted;
} msg_requestvote_response_t;
/** Appendentries message.
* This message is used to tell nodes if it's safe to apply entries to the FSM.
* Can be sent without any entries as a keep alive message.
* This message could force a leader/candidate to become a follower. */
typedef struct
{
/** currentTerm, to force other leader/candidate to step down */
int term;
/** the index of the log just before the newest entry for the node who
* receives this message */
int prev_log_idx;
/** the term of the log just before the newest entry for the node who
* receives this message */
int prev_log_term;
/** the index of the entry that has been appended to the majority of the
* cluster. Entries up to this index will be applied to the FSM */
int leader_commit;
/** number of entries within this message */
int n_entries;
/** array of entries within this message */
msg_entry_t* entries;
} msg_appendentries_t;
/** Appendentries response message.
* Can be sent without any entries as a keep alive message.
* This message could force a leader/candidate to become a follower. */
typedef struct
{
/** currentTerm, to force other leader/candidate to step down */
int term;
/** true if follower contained entry matching prevLogidx and prevLogTerm */
int success;
/* Non-Raft fields follow: */
/* Having the following fields allows us to do less book keeping in
* regards to full fledged RPC */
/** If success, this is the highest log IDX we've received and appended to
* our log; otherwise, this is the our currentIndex */
int current_idx;
/** The first idx that we received within the appendentries message */
int first_idx;
} msg_appendentries_response_t;
typedef void* raft_server_t;
typedef void* raft_node_t;
......@@ -206,7 +113,7 @@ typedef int (
raft_server_t* raft,
void *user_data,
raft_node_t* node,
msg_requestvote_t* msg
RequestVoteMsg_t* msg
);
/** Callback for sending append entries messages.
......@@ -221,7 +128,7 @@ typedef int (
raft_server_t* raft,
void *user_data,
raft_node_t* node,
msg_appendentries_t* msg
AppendEntriesMsg_t* msg
);
/**
......@@ -479,7 +386,7 @@ int raft_periodic(raft_server_t* me, int msec_elapsed);
*
* The log_offer callback will be called.
*
* @note The memory pointer (ie. raft_entry_data_t) for each msg_entry_t is
* @note The memory pointer (ie. raft_entry_data_t) for each LogEntryMsg_table_t is
* copied directly. If the memory is temporary you MUST either make the
* memory permanent (ie. via malloc) OR re-assign the memory within the
* log_offer callback.
......@@ -493,8 +400,8 @@ int raft_periodic(raft_server_t* me, int msec_elapsed);
* */
int raft_recv_appendentries(raft_server_t* me,
raft_node_t* node,
msg_appendentries_t* ae,
msg_appendentries_response_t *r);
AppendEntriesMsg_t* ae,
AppendEntriesResponseMsg_t *r);
/** Receive a response from an appendentries message we sent.
* @param[in] node The node who sent us this message
......@@ -505,7 +412,7 @@ int raft_recv_appendentries(raft_server_t* me,
* RAFT_ERR_NOT_LEADER server is not the leader */
int raft_recv_appendentries_response(raft_server_t* me,
raft_node_t* node,
msg_appendentries_response_t* r);
AppendEntriesResponseMsg_t* r);
/** Receive a requestvote message.
* @param[in] node The node who sent us this message
......@@ -514,8 +421,8 @@ int raft_recv_appendentries_response(raft_server_t* me,
* @return 0 on success */
int raft_recv_requestvote(raft_server_t* me,
raft_node_t* node,
msg_requestvote_t* vr,
msg_requestvote_response_t *r);
RequestVoteMsg_t* vr,
RequestVoteResponseMsg_t *r);
/** Receive a response from a requestvote message we sent.
* @param[in] node The node this response was sent by
......@@ -525,7 +432,7 @@ int raft_recv_requestvote(raft_server_t* me,
* RAFT_ERR_SHUTDOWN server MUST shutdown; */
int raft_recv_requestvote_response(raft_server_t* me,
raft_node_t* node,
msg_requestvote_response_t* r);
RequestVoteResponseMsg_t* r);
/** Receive an entry message from the client.
*
......@@ -537,7 +444,7 @@ int raft_recv_requestvote_response(raft_server_t* me,
*
* The log_offer callback will be called.
*
* @note The memory pointer (ie. raft_entry_data_t) in msg_entry_t is
* @note The memory pointer (ie. raft_entry_data_t) in LogEntryMsg_table_t is
* copied directly. If the memory is temporary you MUST either make the
* memory permanent (ie. via malloc) OR re-assign the memory within the
* log_offer callback.
......@@ -558,8 +465,8 @@ int raft_recv_requestvote_response(raft_server_t* me,
* RAFT_ERR_NOMEM memory allocation failure
*/
int raft_recv_entry(raft_server_t* me,
msg_entry_t* ety,
msg_entry_response_t *r);
LogEntryMsg_table_t* ety,
LogEntryResponseMsg_table_t *r);
/**
* @return server's node ID; -1 if it doesn't know what it is */
......@@ -713,7 +620,7 @@ int raft_append_entry(raft_server_t* me, raft_entry_t* ety);
/** Confirm if a msg_entry_response has been committed.
* @param[in] r The response we want to check */
int raft_msg_entry_response_committed(raft_server_t* me_,
const msg_entry_response_t* r);
const LogEntryResponseMsg_table_t* r);
/** Get node's ID.
* @return ID of node */
......
......@@ -272,7 +272,7 @@ int raft_voting_change_is_in_progress(raft_server_t* me_)
int raft_recv_appendentries_response(raft_server_t* me_,
raft_node_t* node,
msg_appendentries_response_t* r)
AppendEntriesResponseMsg_t* r)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
......@@ -383,8 +383,8 @@ int raft_recv_appendentries_response(raft_server_t* me_,
int raft_recv_appendentries(
raft_server_t* me_,
raft_node_t* node,
msg_appendentries_t* ae,
msg_appendentries_response_t *r
AppendEntriesMsg_t* ae,
AppendEntriesResponseMsg_t *r
)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
......@@ -520,7 +520,7 @@ int raft_already_voted(raft_server_t* me_)
return ((raft_server_private_t*)me_)->voted_for != -1;
}
static int __should_grant_vote(raft_server_private_t* me, msg_requestvote_t* vr)
static int __should_grant_vote(raft_server_private_t* me, RequestVoteMsg_t* vr)
{
/* TODO: 4.2.3 Raft Dissertation:
* if a server receives a RequestVote request within the minimum election
......@@ -557,8 +557,8 @@ static int __should_grant_vote(raft_server_private_t* me, msg_requestvote_t* vr)
int raft_recv_requestvote(raft_server_t* me_,
raft_node_t* node,
msg_requestvote_t* vr,
msg_requestvote_response_t *r)
RequestVoteMsg_t* vr,
RequestVoteResponseMsg_t *r)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
int e = 0;
......@@ -630,7 +630,7 @@ int raft_votes_is_majority(const int num_nodes, const int nvotes)
int raft_recv_requestvote_response(raft_server_t* me_,
raft_node_t* node,
msg_requestvote_response_t* r)
RequestVoteResponseMsg_t* r)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
......@@ -692,8 +692,8 @@ int raft_recv_requestvote_response(raft_server_t* me_,
}
int raft_recv_entry(raft_server_t* me_,
msg_entry_t* ety,
msg_entry_response_t *r)
LogEntryMsg_table_t* ety,
LogEntryResponseMsg_table_t *r)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
int i;
......@@ -755,7 +755,7 @@ int raft_recv_entry(raft_server_t* me_,
int raft_send_requestvote(raft_server_t* me_, raft_node_t* node)
{
raft_server_private_t* me = (raft_server_private_t*)me_;
msg_requestvote_t rv;
RequestVoteMsg_t rv;
int e = 0;
assert(node);
......@@ -863,7 +863,7 @@ int raft_send_appendentries(raft_server_t* me_, raft_node_t* node)
if (!(me->cb.send_appendentries))
return -1;
msg_appendentries_t ae = {};
AppendEntriesMsg_t ae = {};
ae.term = me->current_term;
ae.leader_commit = raft_get_commit_idx(me_);
ae.prev_log_idx = 0;
......@@ -1035,7 +1035,7 @@ int raft_vote_for_nodeid(raft_server_t* me_, const int nodeid)
}
int raft_msg_entry_response_committed(raft_server_t* me_,
const msg_entry_response_t* r)
const LogEntryResponseMsg_table_t* r)
{
raft_entry_t* ety = raft_get_entry_from_idx(me_, r->idx);
if (!ety)
......
table LogEntryMsg
{
term: uint64;
id: uint64;
type: uint64;
data: [byte];
}
table LogEntryResponseMsg
{
term: uint64;
id: uint64;
idx: uint64;
}
struct RequestVoteMsg
{
term: uint64;
candidateId: uint64;
lastLogIdx: uint64;
lastLogTerm: uint64;
}
struct RequestVoteResponseMsg
{
term: uint64;
voteGranted: uint64;
}
table AppendEntriesMsg
{
term: uint64;
prevLogIdx: uint64;
prevLogTerm: uint64;
leaderCommit: uint64;
nEntries: uint64;
entries: [LogEntryMsg];
}
struct AppendEntriesResponseMsg
{
term: uint64;
success: uint64;
currentIdx: uint64;
firstIdx: uint64;
}
......@@ -74,7 +74,7 @@ static int __append_msg(
}
int sender_requestvote(raft_server_t* raft,
void* udata, raft_node_t* node, msg_requestvote_t* msg)
void* udata, raft_node_t* node, RequestVoteMsg_t* msg)
{
return __append_msg(udata, msg, RAFT_MSG_REQUESTVOTE, sizeof(*msg), node,
raft);
......@@ -82,17 +82,17 @@ int sender_requestvote(raft_server_t* raft,
int sender_requestvote_response(raft_server_t* raft,
void* udata, raft_node_t* node,
msg_requestvote_response_t* msg)
RequestVoteResponseMsg_t* msg)
{
return __append_msg(udata, msg, RAFT_MSG_REQUESTVOTE_RESPONSE, sizeof(*msg),
node, raft);
}
int sender_appendentries(raft_server_t* raft,
void* udata, raft_node_t* node, msg_appendentries_t* msg)
void* udata, raft_node_t* node, AppendEntriesMsg_t* msg)
{
msg_entry_t* entries = calloc(1, sizeof(msg_entry_t) * msg->n_entries);
memcpy(entries, msg->entries, sizeof(msg_entry_t) * msg->n_entries);
LogEntryMsg_table_t* entries = calloc(1, sizeof(LogEntryMsg_table_t) * msg->n_entries);
memcpy(entries, msg->entries, sizeof(LogEntryMsg_table_t) * msg->n_entries);
msg->entries = entries;
return __append_msg(udata, msg, RAFT_MSG_APPENDENTRIES, sizeof(*msg), node,
raft);
......@@ -100,14 +100,14 @@ int sender_appendentries(raft_server_t* raft,
int sender_appendentries_response(raft_server_t* raft,
void* udata, raft_node_t* node,
msg_appendentries_response_t* msg)
AppendEntriesResponseMsg_t* msg)
{
return __append_msg(udata, msg, RAFT_MSG_APPENDENTRIES_RESPONSE,
sizeof(*msg), node, raft);
}
int sender_entries_response(raft_server_t* raft,
void* udata, raft_node_t* node, msg_entry_response_t* msg)
void* udata, raft_node_t* node, LogEntryResponseMsg_table_t* msg)
{
return __append_msg(udata, msg, RAFT_MSG_ENTRY_RESPONSE, sizeof(*msg), node,
raft);
......@@ -154,7 +154,7 @@ void sender_poll_msgs(void* s)
{
case RAFT_MSG_APPENDENTRIES:
{
msg_appendentries_response_t response;
AppendEntriesResponseMsg_t response;
raft_recv_appendentries(me->raft, m->sender, m->data, &response);
__append_msg(me, &response, RAFT_MSG_APPENDENTRIES_RESPONSE,
sizeof(response), m->sender, me->raft);
......@@ -165,7 +165,7 @@ void sender_poll_msgs(void* s)
break;
case RAFT_MSG_REQUESTVOTE:
{
msg_requestvote_response_t response;
RequestVoteResponseMsg_t response;
raft_recv_requestvote(me->raft, m->sender, m->data, &response);
__append_msg(me, &response, RAFT_MSG_REQUESTVOTE_RESPONSE,
sizeof(response), m->sender, me->raft);
......@@ -176,7 +176,7 @@ void sender_poll_msgs(void* s)
break;
case RAFT_MSG_ENTRY:
{
msg_entry_response_t response;
LogEntryResponseMsg_table_t response;
raft_recv_entry(me->raft, m->data, &response);
__append_msg(me, &response, RAFT_MSG_ENTRY_RESPONSE,
sizeof(response), m->sender, me->raft);
......
......@@ -24,21 +24,21 @@ int sender_msgs_available(void* s);
void sender_set_raft(void* s, void* r);
int sender_requestvote(raft_server_t* raft,
void* udata, raft_node_t* node, msg_requestvote_t* msg);
void* udata, raft_node_t* node, RequestVoteMsg_t* msg);
int sender_requestvote_response(raft_server_t* raft,
void* udata, raft_node_t* node, msg_requestvote_response_t* msg);
void* udata, raft_node_t* node, RequestVoteResponseMsg_t* msg);
int sender_appendentries(raft_server_t* raft,
void* udata, raft_node_t* node, msg_appendentries_t* msg);
void* udata, raft_node_t* node, AppendEntriesMsg_t* msg);
int sender_appendentries_response(raft_server_t* raft,
void* udata, raft_node_t* node, msg_appendentries_response_t* msg);
void* udata, raft_node_t* node, AppendEntriesResponseMsg_t* msg);
int sender_entries(raft_server_t* raft,
void* udata, raft_node_t* node, msg_entry_t* msg);
void* udata, raft_node_t* node, LogEntryMsg_table_t* msg);
int sender_entries_response(raft_server_t* raft,
void* udata, raft_node_t* node, msg_entry_response_t* msg);
void* udata, raft_node_t* node, LogEntryResponseMsg_table_t* msg);
#endif /* MOCK_SEND_FUNCTIONS_H */
......@@ -56,7 +56,7 @@ int __raft_applylog_shutdown(
int __raft_send_requestvote(raft_server_t* raft,
void* udata,
raft_node_t* node,
msg_requestvote_t* msg)
RequestVoteMsg_t* msg)
{
return 0;
}
......@@ -64,7 +64,7 @@ int __raft_send_requestvote(raft_server_t* raft,
static int __raft_send_appendentries(raft_server_t* raft,
void* udata,
raft_node_t* node,
msg_appendentries_t* msg)
AppendEntriesMsg_t* msg)
{
return 0;
}
......@@ -603,13 +603,13 @@ void TestRaft_server_recv_entry_auto_commits_if_we_are_the_only_node(CuTest * tc
CuAssertTrue(tc, 0 == raft_get_commit_idx(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &ety, &cr);
CuAssertTrue(tc, 1 == raft_get_log_count(r));
CuAssertTrue(tc, 1 == raft_get_commit_idx(r));
......@@ -624,14 +624,14 @@ void TestRaft_server_recv_entry_fails_if_there_is_already_a_voting_change(CuTest
CuAssertTrue(tc, 0 == raft_get_commit_idx(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.type = RAFT_LOGTYPE_ADD_NODE;
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
CuAssertTrue(tc, 0 == raft_recv_entry(r, &ety, &cr));
CuAssertTrue(tc, 1 == raft_get_log_count(r));
......@@ -700,8 +700,8 @@ void TestRaft_server_recv_requestvote_response_dont_increase_votes_for_me_when_n
raft_set_current_term(r, 1);
CuAssertTrue(tc, 0 == raft_get_nvotes_for_me(r));
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 1;
rvr.vote_granted = 0;
int e = raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
......@@ -726,8 +726,8 @@ void TestRaft_server_recv_requestvote_response_dont_increase_votes_for_me_when_t
raft_set_current_term(r, 3);
CuAssertTrue(tc, 0 == raft_get_nvotes_for_me(r));
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 2;
rvr.vote_granted = 1;
raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
......@@ -758,8 +758,8 @@ void TestRaft_server_recv_requestvote_response_increase_votes_for_me(
CuAssertIntEquals(tc, 2, raft_get_current_term(r));
CuAssertTrue(tc, 1 == raft_get_nvotes_for_me(r));
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 2;
rvr.vote_granted = 1;
int e = raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
......@@ -787,8 +787,8 @@ void TestRaft_server_recv_requestvote_response_must_be_candidate_to_receive(
raft_become_leader(r);
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 1;
rvr.vote_granted = 1;
raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
......@@ -808,15 +808,15 @@ void TestRaft_server_recv_requestvote_reply_false_if_term_less_than_current_term
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_requestvote_response_t rvr;
RequestVoteResponseMsg_t rvr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
raft_set_current_term(r, 2);
/* term is less than current term */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 1;
int e = raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
CuAssertIntEquals(tc, 0, e);
......@@ -836,7 +836,7 @@ void TestRaft_leader_recv_requestvote_does_not_step_down(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_requestvote_response_t rvr;
RequestVoteResponseMsg_t rvr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -846,8 +846,8 @@ void TestRaft_leader_recv_requestvote_does_not_step_down(
CuAssertIntEquals(tc, 1, raft_is_leader(r));
/* term is less than current term */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 1;
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
CuAssertIntEquals(tc, 1, raft_get_current_leader(r));
......@@ -858,8 +858,8 @@ void TestRaft_server_recv_requestvote_reply_true_if_term_greater_than_or_equal_t
CuTest * tc
)
{
msg_requestvote_t rv;
msg_requestvote_response_t rvr;
RequestVoteMsg_t rv;
RequestVoteResponseMsg_t rvr;
raft_cbs_t funcs = {
.persist_term = __raft_persist_term,
......@@ -874,7 +874,7 @@ void TestRaft_server_recv_requestvote_reply_true_if_term_greater_than_or_equal_t
raft_set_current_term(r, 1);
/* term is less than current term */
memset(&rv, 0, sizeof(msg_requestvote_t));
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 2;
rv.last_log_idx = 1;
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
......@@ -886,8 +886,8 @@ void TestRaft_server_recv_requestvote_reset_timeout(
CuTest * tc
)
{
msg_requestvote_t rv;
msg_requestvote_response_t rvr;
RequestVoteMsg_t rv;
RequestVoteResponseMsg_t rvr;
raft_cbs_t funcs = {
.persist_term = __raft_persist_term,
......@@ -904,7 +904,7 @@ void TestRaft_server_recv_requestvote_reset_timeout(
raft_set_election_timeout(r, 1000);
raft_periodic(r, 900);
memset(&rv, 0, sizeof(msg_requestvote_t));
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 2;
rv.last_log_idx = 1;
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
......@@ -932,12 +932,12 @@ void TestRaft_server_recv_requestvote_candidate_step_down_if_term_is_higher_than
CuAssertIntEquals(tc, 1, raft_get_voted_for(r));
/* current term is less than term */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.candidate_id = 2;
rv.term = 2;
rv.last_log_idx = 1;
msg_requestvote_response_t rvr;
RequestVoteResponseMsg_t rvr;
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
CuAssertIntEquals(tc, 1, raft_is_follower(r));
CuAssertIntEquals(tc, 2, raft_get_current_term(r));
......@@ -964,12 +964,12 @@ void TestRaft_server_recv_requestvote_depends_on_candidate_id(
CuAssertIntEquals(tc, 1, raft_get_voted_for(r));
/* current term is less than term */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.candidate_id = 3;
rv.term = 2;
rv.last_log_idx = 1;
msg_requestvote_response_t rvr;
RequestVoteResponseMsg_t rvr;
raft_recv_requestvote(r, NULL, &rv, &rvr);
CuAssertIntEquals(tc, 1, raft_is_follower(r));
CuAssertIntEquals(tc, 2, raft_get_current_term(r));
......@@ -998,12 +998,12 @@ void TestRaft_server_recv_requestvote_dont_grant_vote_if_we_didnt_vote_for_this_
/* vote for self */
raft_vote_for_nodeid(r, 1);
msg_requestvote_t rv = {};
RequestVoteMsg_t rv = {};
rv.term = 1;
rv.candidate_id = 1;
rv.last_log_idx = 1;
rv.last_log_term = 1;
msg_requestvote_response_t rvr;
RequestVoteResponseMsg_t rvr;
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
CuAssertTrue(tc, 0 == rvr.vote_granted);
......@@ -1055,13 +1055,13 @@ void TestRaft_follower_recv_appendentries_reply_false_if_term_less_than_currentt
CuAssertTrue(tc, -1 == raft_get_current_leader(r));
/* term is low */
msg_appendentries_t ae;
memset(&ae, 0, sizeof(msg_appendentries_t));
AppendEntriesMsg_t ae;
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
/* higher current term */
raft_set_current_term(r, 5);
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
CuAssertTrue(tc, 0 == aer.success);
......@@ -1080,9 +1080,9 @@ void TestRaft_follower_recv_appendentries_does_not_need_node(CuTest * tc)
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
msg_appendentries_t ae = {};
AppendEntriesMsg_t ae = {};
ae.term = 1;
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
raft_recv_appendentries(r, NULL, &ae, &aer);
CuAssertTrue(tc, 1 == aer.success);
}
......@@ -1098,8 +1098,8 @@ void TestRaft_follower_recv_appendentries_updates_currentterm_if_term_gt_current
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1109,7 +1109,7 @@ void TestRaft_follower_recv_appendentries_updates_currentterm_if_term_gt_current
CuAssertTrue(tc, -1 == raft_get_current_leader(r));
/* newer term for appendentry */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
/* no prev log idx */
ae.prev_log_idx = 0;
ae.term = 2;
......@@ -1134,8 +1134,8 @@ void TestRaft_follower_recv_appendentries_does_not_log_if_no_entries_are_specifi
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1146,7 +1146,7 @@ void TestRaft_follower_recv_appendentries_does_not_log_if_no_entries_are_specifi
CuAssertTrue(tc, 0 == raft_get_log_count(r));
/* receive an appendentry with commit */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_term = 1;
ae.prev_log_idx = 4;
......@@ -1166,9 +1166,9 @@ void TestRaft_follower_recv_appendentries_increases_log(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_entry_t ety = {};
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
LogEntryMsg_table_t ety = {};
AppendEntriesResponseMsg_t aer;
char *str = "aaa";
raft_add_node(r, NULL, 1, 1);
......@@ -1180,14 +1180,14 @@ void TestRaft_follower_recv_appendentries_increases_log(CuTest * tc)
CuAssertTrue(tc, 0 == raft_get_log_count(r));
/* receive an appendentry with commit */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 3;
ae.prev_log_term = 1;
/* first appendentries msg */
ae.prev_log_idx = 0;
ae.leader_commit = 5;
/* include one entry */
memset(&ety, 0, sizeof(msg_entry_t));
memset(&ety, 0, sizeof(LogEntryMsg_table_t));
ety.data.buf = str;
ety.data.len = 3;
ety.id = 1;
......@@ -1214,11 +1214,11 @@ void TestRaft_follower_recv_appendentries_reply_false_if_doesnt_have_log_at_prev
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
char *str = "aaa";
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1228,13 +1228,13 @@ void TestRaft_follower_recv_appendentries_reply_false_if_doesnt_have_log_at_prev
// TODO at log manually?
/* log idx that server doesn't have */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
ae.prev_log_idx = 1;
/* prev_log_term is less than current term (ie. 2) */
ae.prev_log_term = 1;
/* include one entry */
memset(&ety, 0, sizeof(msg_entry_t));
memset(&ety, 0, sizeof(LogEntryMsg_table_t));
ety.data.buf = str;
ety.data.len = 3;
ety.id = 1;
......@@ -1301,8 +1301,8 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1313,15 +1313,15 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
raft_entry_t *ety_appended = __create_mock_entries_for_conflict_tests(tc, r, strs);
/* pass a appendentry that is newer */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
/* entries from 2 onwards will be overwritten by this appendentries message */
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
/* include one entry */
memset(&mety, 0, sizeof(msg_entry_t));
memset(&mety, 0, sizeof(LogEntryMsg_table_t));
char *str4 = "444";
mety.data.buf = str4;
mety.data.len = 3;
......@@ -1351,8 +1351,8 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1363,15 +1363,15 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
raft_entry_t *ety_appended = __create_mock_entries_for_conflict_tests(tc, r, strs);
/* pass a appendentry that is newer */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
/* ALL append entries will be overwritten by this appendentries message */
ae.prev_log_idx = 0;
ae.prev_log_term = 0;
/* include one entry */
memset(&mety, 0, sizeof(msg_entry_t));
memset(&mety, 0, sizeof(LogEntryMsg_table_t));
char *str4 = "444";
mety.data.buf = str4;
mety.data.len = 3;
......@@ -1397,8 +1397,8 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -1411,12 +1411,12 @@ void TestRaft_follower_recv_appendentries_delete_entries_if_conflict_with_new_en
__create_mock_entries_for_conflict_tests(tc, r, strs);
CuAssertIntEquals(tc, 3, raft_get_log_count(r));
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
msg_entry_t e[1];
memset(&e, 0, sizeof(msg_entry_t) * 1);
LogEntryMsg_table_t e[1];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 1);
e[0].id = 1;
ae.entries = e;
ae.n_entries = 1;
......@@ -1444,16 +1444,16 @@ void TestRaft_follower_recv_appendentries_add_new_entries_not_already_in_log(
raft_add_node(r, NULL, 2, 0);
raft_set_current_term(r, 1);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include entries */
msg_entry_t e[2];
memset(&e, 0, sizeof(msg_entry_t) * 2);
LogEntryMsg_table_t e[2];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 2);
e[0].id = 1;
e[1].id = 2;
ae.entries = e;
......@@ -1478,16 +1478,16 @@ void TestRaft_follower_recv_appendentries_does_not_add_dupe_entries_already_in_l
raft_add_node(r, NULL, 2, 0);
raft_set_current_term(r, 1);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include 1 entry */
msg_entry_t e[2];
memset(&e, 0, sizeof(msg_entry_t) * 2);
LogEntryMsg_table_t e[2];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 2);
e[0].id = 1;
ae.entries = e;
ae.n_entries = 1;
......@@ -1576,16 +1576,16 @@ void TestRaft_follower_recv_appendentries_partial_failures(
raft_append_entry(r, &ety);
CuAssertIntEquals(tc, 2, raft_get_current_idx(r));
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
/* To be received: entry 2 and 3 of term 2. */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
msg_entry_t e[2];
memset(&e, 0, sizeof(msg_entry_t) * 2);
LogEntryMsg_table_t e[2];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 2);
e[0].term = 2;
e[0].id = 2;
e[1].term = 2;
......@@ -1644,16 +1644,16 @@ void TestRaft_follower_recv_appendentries_set_commitidx_to_prevLogIdx(
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include entries */
msg_entry_t e[4];
memset(&e, 0, sizeof(msg_entry_t) * 4);
LogEntryMsg_table_t e[4];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 1;
e[1].term = 1;
......@@ -1667,7 +1667,7 @@ void TestRaft_follower_recv_appendentries_set_commitidx_to_prevLogIdx(
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
/* receive an appendentry with commit */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_term = 1;
ae.prev_log_idx = 4;
......@@ -1693,16 +1693,16 @@ void TestRaft_follower_recv_appendentries_set_commitidx_to_LeaderCommit(
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include entries */
msg_entry_t e[4];
memset(&e, 0, sizeof(msg_entry_t) * 4);
LogEntryMsg_table_t e[4];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 1;
e[1].term = 1;
......@@ -1716,7 +1716,7 @@ void TestRaft_follower_recv_appendentries_set_commitidx_to_LeaderCommit(
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
/* receive an appendentry with commit */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_term = 1;
ae.prev_log_idx = 3;
......@@ -1751,14 +1751,14 @@ void TestRaft_follower_recv_appendentries_failure_includes_current_idx(
raft_append_entry(r, &ety);
/* receive an appendentry with commit */
msg_appendentries_t ae;
memset(&ae, 0, sizeof(msg_appendentries_t));
AppendEntriesMsg_t ae;
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
/* lower term means failure */
ae.term = 0;
ae.prev_log_term = 0;
ae.prev_log_idx = 0;
ae.leader_commit = 0;
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
CuAssertTrue(tc, 0 == aer.success);
......@@ -1802,8 +1802,8 @@ void TestRaft_follower_becomes_candidate_when_election_timeout_occurs(
void TestRaft_follower_dont_grant_vote_if_candidate_has_a_less_complete_log(
CuTest * tc)
{
msg_requestvote_t rv;
msg_requestvote_response_t rvr;
RequestVoteMsg_t rv;
RequestVoteResponseMsg_t rvr;
raft_cbs_t funcs = {
.persist_term = __raft_persist_term,
......@@ -1818,7 +1818,7 @@ void TestRaft_follower_dont_grant_vote_if_candidate_has_a_less_complete_log(
/* request vote */
/* vote indicates candidate's log is not complete compared to follower */
memset(&rv, 0, sizeof(msg_requestvote_t));
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 1;
rv.candidate_id = 1;
rv.last_log_idx = 1;
......@@ -1843,7 +1843,7 @@ void TestRaft_follower_dont_grant_vote_if_candidate_has_a_less_complete_log(
/* approve vote, because last_log_term is higher */
raft_set_current_term(r, 2);
memset(&rv, 0, sizeof(msg_requestvote_t));
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 2;
rv.candidate_id = 1;
rv.last_log_idx = 1;
......@@ -1865,16 +1865,16 @@ void TestRaft_follower_recv_appendentries_heartbeat_does_not_overwrite_logs(
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include entries */
msg_entry_t e[4];
memset(&e, 0, sizeof(msg_entry_t) * 4);
LogEntryMsg_table_t e[4];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 1;
ae.entries = e;
......@@ -1884,12 +1884,12 @@ void TestRaft_follower_recv_appendentries_heartbeat_does_not_overwrite_logs(
/* The server sends a follow up AE
* NOTE: the server has received a response from the last AE so
* prev_log_idx has been incremented */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
/* include entries */
memset(&e, 0, sizeof(msg_entry_t) * 4);
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 2;
e[1].term = 1;
......@@ -1905,7 +1905,7 @@ void TestRaft_follower_recv_appendentries_heartbeat_does_not_overwrite_logs(
/* receive a heartbeat
* NOTE: the leader hasn't received the response to the last AE so it can
* only assume prev_Log_idx is still 1 */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_term = 1;
ae.prev_log_idx = 1;
......@@ -1929,16 +1929,16 @@ void TestRaft_follower_recv_appendentries_does_not_deleted_commited_entries(
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 0;
ae.prev_log_term = 1;
/* include entries */
msg_entry_t e[5];
memset(&e, 0, sizeof(msg_entry_t) * 4);
LogEntryMsg_table_t e[5];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 1;
ae.entries = e;
......@@ -1946,12 +1946,12 @@ void TestRaft_follower_recv_appendentries_does_not_deleted_commited_entries(
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
/* Follow up AE. Node responded with success */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
/* include entries */
memset(&e, 0, sizeof(msg_entry_t) * 4);
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 4);
e[0].term = 1;
e[0].id = 2;
e[1].term = 1;
......@@ -1966,12 +1966,12 @@ void TestRaft_follower_recv_appendentries_does_not_deleted_commited_entries(
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
/* The server sends a follow up AE */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
/* include entries */
memset(&e, 0, sizeof(msg_entry_t) * 5);
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 5);
e[0].term = 1;
e[0].id = 2;
e[1].term = 1;
......@@ -1994,12 +1994,12 @@ void TestRaft_follower_recv_appendentries_does_not_deleted_commited_entries(
/* The server sends a follow up AE.
* This appendentry forces the node to check if it's going to delete
* commited logs */
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
ae.prev_log_idx = 3;
ae.prev_log_term = 1;
/* include entries */
memset(&e, 0, sizeof(msg_entry_t) * 5);
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 5);
e[0].id = 1;
e[0].id = 5;
e[1].term = 1;
......@@ -2102,10 +2102,10 @@ void TestRaft_follower_recv_appendentries_resets_election_timeout(
raft_periodic(r, 900);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
raft_recv_appendentries(r, raft_get_node(r, 1), &ae, &aer);
CuAssertTrue(tc, 0 == raft_get_timeout_elapsed(r));
......@@ -2120,7 +2120,7 @@ void TestRaft_follower_becoming_candidate_requests_votes_from_other_servers(
.persist_vote = __raft_persist_vote,
.send_requestvote = sender_requestvote,
};
msg_requestvote_t* rv;
RequestVoteMsg_t* rv;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -2159,8 +2159,8 @@ void TestRaft_candidate_election_timeout_and_no_leader_results_in_new_election(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_requestvote_response_t vr;
memset(&vr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t vr;
memset(&vr, 0, sizeof(RequestVoteResponseMsg_t));
vr.term = 0;
vr.vote_granted = 1;
......@@ -2184,7 +2184,7 @@ void TestRaft_candidate_election_timeout_and_no_leader_results_in_new_election(
/* Candidate 5.2 */
void TestRaft_candidate_receives_majority_of_votes_becomes_leader(CuTest * tc)
{
msg_requestvote_response_t vr;
RequestVoteResponseMsg_t vr;
raft_cbs_t funcs = {
.persist_term = __raft_persist_term,
......@@ -2209,7 +2209,7 @@ void TestRaft_candidate_receives_majority_of_votes_becomes_leader(CuTest * tc)
CuAssertTrue(tc, 1 == raft_get_nvotes_for_me(r));
/* a vote for us */
memset(&vr, 0, sizeof(msg_requestvote_response_t));
memset(&vr, 0, sizeof(RequestVoteResponseMsg_t));
vr.term = 1;
vr.vote_granted = 1;
/* get one vote */
......@@ -2235,15 +2235,15 @@ void TestRaft_candidate_will_not_respond_to_voterequest_if_it_has_already_voted(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_requestvote_t rv;
msg_requestvote_response_t rvr;
RequestVoteMsg_t rv;
RequestVoteResponseMsg_t rvr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
raft_vote(r, raft_get_node(r, 1));
memset(&rv, 0, sizeof(msg_requestvote_t));
memset(&rv, 0, sizeof(RequestVoteMsg_t));
raft_recv_requestvote(r, raft_get_node(r, 2), &rv, &rvr);
/* we've vote already, so won't respond with a vote granted... */
......@@ -2282,7 +2282,7 @@ void TestRaft_candidate_requestvote_includes_logidx(CuTest * tc)
raft_append_entry(r, &ety);
raft_send_requestvote(r, raft_get_node(r, 2));
msg_requestvote_t* rv = sender_poll_msg_data(sender);
RequestVoteMsg_t* rv = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != rv);
CuAssertIntEquals(tc, 3, rv->last_log_idx);
CuAssertIntEquals(tc, 5, rv->term);
......@@ -2311,8 +2311,8 @@ void TestRaft_candidate_recv_requestvote_response_becomes_follower_if_current_te
CuAssertTrue(tc, -1 == raft_get_current_leader(r));
CuAssertTrue(tc, 1 == raft_get_current_term(r));
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 2;
rvr.vote_granted = 0;
raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
......@@ -2343,10 +2343,10 @@ void TestRaft_candidate_recv_appendentries_frm_leader_results_in_follower(
CuAssertTrue(tc, 0 == raft_get_current_term(r));
/* receive recent appendentries */
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 1;
raft_recv_appendentries(r, raft_get_node(r, 2), &ae, &aer);
CuAssertTrue(tc, 1 == raft_is_follower(r));
......@@ -2369,8 +2369,8 @@ void TestRaft_candidate_recv_appendentries_from_same_term_results_in_step_down(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -2380,7 +2380,7 @@ void TestRaft_candidate_recv_appendentries_from_same_term_results_in_step_down(
CuAssertTrue(tc, 0 == raft_is_follower(r));
CuAssertIntEquals(tc, 1, raft_get_voted_for(r));
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 2;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
......@@ -2474,7 +2474,7 @@ void TestRaft_leader_when_it_becomes_a_leader_sends_empty_appendentries(
raft_become_leader(r);
/* receive appendentries messages for both nodes */
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
......@@ -2491,7 +2491,7 @@ void TestRaft_leader_responds_to_entry_msg_when_entry_is_committed(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -2501,7 +2501,7 @@ void TestRaft_leader_responds_to_entry_msg_when_entry_is_committed(CuTest * tc)
CuAssertTrue(tc, 0 == raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -2516,7 +2516,7 @@ void TestRaft_leader_responds_to_entry_msg_when_entry_is_committed(CuTest * tc)
void TestRaft_non_leader_recv_entry_msg_fails(CuTest * tc)
{
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
void *r = raft_new();
raft_add_node(r, NULL, 1, 1);
......@@ -2525,7 +2525,7 @@ void TestRaft_non_leader_recv_entry_msg_fails(CuTest * tc)
raft_set_state(r, RAFT_STATE_FOLLOWER);
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -2558,7 +2558,7 @@ void TestRaft_leader_sends_appendentries_with_NextIdx_when_PrevIdx_gt_NextIdx(
/* receive appendentries messages */
raft_send_appendentries(r, p);
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
}
......@@ -2595,7 +2595,7 @@ void TestRaft_leader_sends_appendentries_with_leader_commit(
/* receive appendentries messages */
raft_send_appendentries(r, raft_get_node(r, 2));
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
CuAssertTrue(tc, ae->leader_commit == 10);
}
......@@ -2619,7 +2619,7 @@ void TestRaft_leader_sends_appendentries_with_prevLogIdx(
/* receive appendentries messages */
raft_send_appendentries(r, raft_get_node(r, 2));
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
CuAssertTrue(tc, ae->prev_log_idx == 0);
......@@ -2670,7 +2670,7 @@ void TestRaft_leader_sends_appendentries_when_node_has_next_idx_of_0(
/* receive appendentries messages */
raft_send_appendentries(r, raft_get_node(r, 2));
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
/* add an entry */
/* receive appendentries messages */
......@@ -2708,7 +2708,7 @@ void TestRaft_leader_retries_appendentries_with_decremented_NextIdx_log_inconsis
/* receive appendentries messages */
raft_send_appendentries(r, raft_get_node(r, 2));
msg_appendentries_t* ae = sender_poll_msg_data(sender);
AppendEntriesMsg_t* ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
}
......@@ -2725,8 +2725,8 @@ void TestRaft_leader_append_entry_to_log_increases_idxno(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
msg_entry_t ety = {};
LogEntryResponseMsg_table_t cr;
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -2753,7 +2753,7 @@ void T_estRaft_leader_doesnt_append_entry_if_unique_id_is_duplicate(CuTest * tc)
{ NULL }
};
msg_entry_t ety;
LogEntryMsg_table_t ety;
ety.id = 1;
ety.data = "entry";
ety.data.len = strlen("entry");
......@@ -2781,7 +2781,7 @@ void TestRaft_leader_recv_appendentries_response_increase_commit_idx_when_majori
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -2811,7 +2811,7 @@ void TestRaft_leader_recv_appendentries_response_increase_commit_idx_when_majori
ety.id = 3;
raft_append_entry(r, &ety);
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
/* FIRST entry log application */
/* send appendentries -
......@@ -2859,7 +2859,7 @@ void TestRaft_leader_recv_appendentries_response_set_has_sufficient_logs_for_nod
.node_has_sufficient_logs = __raft_node_has_sufficient_logs,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *r = raft_new();
raft_add_node(r, NULL, 1, 1);
......@@ -2890,7 +2890,7 @@ void TestRaft_leader_recv_appendentries_response_set_has_sufficient_logs_for_nod
ety.id = 3;
raft_append_entry(r, &ety);
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
raft_send_appendentries(r, raft_get_node(r, 5));
aer.term = 1;
......@@ -2915,7 +2915,7 @@ void TestRaft_leader_recv_appendentries_response_increase_commit_idx_using_votin
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -2941,7 +2941,7 @@ void TestRaft_leader_recv_appendentries_response_increase_commit_idx_using_votin
ety.data.len = 4;
raft_append_entry(r, &ety);
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
/* FIRST entry log application */
/* send appendentries -
......@@ -2967,7 +2967,7 @@ void TestRaft_leader_recv_appendentries_response_duplicate_does_not_decrement_ma
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -2995,7 +2995,7 @@ void TestRaft_leader_recv_appendentries_response_duplicate_does_not_decrement_ma
ety.id = 3;
raft_append_entry(r, &ety);
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
/* receive msg 1 */
aer.term = 1;
......@@ -3031,7 +3031,7 @@ void TestRaft_leader_recv_appendentries_response_do_not_increase_commit_idx_beca
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -3061,7 +3061,7 @@ void TestRaft_leader_recv_appendentries_response_do_not_increase_commit_idx_beca
ety.id = 3;
raft_append_entry(r, &ety);
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
/* FIRST entry log application */
/* send appendentries -
......@@ -3122,7 +3122,7 @@ void TestRaft_leader_recv_appendentries_response_jumps_to_lower_next_idx(
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -3150,7 +3150,7 @@ void TestRaft_leader_recv_appendentries_response_jumps_to_lower_next_idx(
ety.id = 4;
raft_append_entry(r, &ety);
msg_appendentries_t* ae;
AppendEntriesMsg_t* ae;
/* become leader sets next_idx to current_idx */
raft_become_leader(r);
......@@ -3167,7 +3167,7 @@ void TestRaft_leader_recv_appendentries_response_jumps_to_lower_next_idx(
CuAssertIntEquals(tc, 4, ae->prev_log_idx);
/* receive mock success responses */
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 2;
aer.success = 0;
aer.current_idx = 1;
......@@ -3190,7 +3190,7 @@ void TestRaft_leader_recv_appendentries_response_decrements_to_lower_next_idx(
.send_appendentries = sender_appendentries,
.log = NULL
};
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
void *sender = sender_new(NULL);
void *r = raft_new();
......@@ -3218,7 +3218,7 @@ void TestRaft_leader_recv_appendentries_response_decrements_to_lower_next_idx(
ety.id = 4;
raft_append_entry(r, &ety);
msg_appendentries_t* ae;
AppendEntriesMsg_t* ae;
/* become leader sets next_idx to current_idx */
raft_become_leader(r);
......@@ -3235,7 +3235,7 @@ void TestRaft_leader_recv_appendentries_response_decrements_to_lower_next_idx(
CuAssertIntEquals(tc, 4, ae->prev_log_idx);
/* receive mock success responses */
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 2;
aer.success = 0;
aer.current_idx = 4;
......@@ -3248,7 +3248,7 @@ void TestRaft_leader_recv_appendentries_response_decrements_to_lower_next_idx(
CuAssertIntEquals(tc, 3, ae->prev_log_idx);
/* receive mock success responses */
memset(&aer, 0, sizeof(msg_appendentries_response_t));
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 2;
aer.success = 0;
aer.current_idx = 4;
......@@ -3301,8 +3301,8 @@ void TestRaft_leader_recv_appendentries_response_retry_only_if_leader(CuTest * t
raft_become_follower(r);
/* receive mock success responses */
msg_appendentries_response_t aer;
memset(&aer, 0, sizeof(msg_appendentries_response_t));
AppendEntriesResponseMsg_t aer;
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 1;
aer.success = 1;
aer.current_idx = 1;
......@@ -3329,8 +3329,8 @@ void TestRaft_leader_recv_appendentries_response_without_node_fails(CuTest * tc)
raft_set_current_term(r, 1);
/* receive mock success responses */
msg_appendentries_response_t aer;
memset(&aer, 0, sizeof(msg_appendentries_response_t));
AppendEntriesResponseMsg_t aer;
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 1;
aer.success = 1;
aer.current_idx = 0;
......@@ -3348,13 +3348,13 @@ void TestRaft_leader_recv_entry_resets_election_timeout(
raft_periodic(r, 900);
/* entry message */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
mety.id = 1;
mety.data.buf = "entry";
mety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &mety, &cr);
CuAssertTrue(tc, 0 == raft_get_timeout_elapsed(r));
}
......@@ -3377,13 +3377,13 @@ void TestRaft_leader_recv_entry_is_committed_returns_0_if_not_committed(CuTest *
raft_set_commit_idx(r, 0);
/* entry message */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
mety.id = 1;
mety.data.buf = "entry";
mety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &mety, &cr);
CuAssertTrue(tc, 0 == raft_msg_entry_response_committed(r, &cr));
......@@ -3409,13 +3409,13 @@ void TestRaft_leader_recv_entry_is_committed_returns_neg_1_if_invalidated(CuTest
raft_set_commit_idx(r, 0);
/* entry message */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
mety.id = 1;
mety.data.buf = "entry";
mety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &mety, &cr);
CuAssertTrue(tc, 0 == raft_msg_entry_response_committed(r, &cr));
CuAssertTrue(tc, cr.term == 1);
......@@ -3424,15 +3424,15 @@ void TestRaft_leader_recv_entry_is_committed_returns_neg_1_if_invalidated(CuTest
CuAssertTrue(tc, 0 == raft_get_commit_idx(r));
/* append entry that invalidates entry message */
msg_appendentries_t ae;
memset(&ae, 0, sizeof(msg_appendentries_t));
AppendEntriesMsg_t ae;
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.leader_commit = 1;
ae.term = 2;
ae.prev_log_idx = 0;
ae.prev_log_term = 0;
msg_appendentries_response_t aer;
msg_entry_t e[1];
memset(&e, 0, sizeof(msg_entry_t) * 1);
AppendEntriesResponseMsg_t aer;
LogEntryMsg_table_t e[1];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 1);
e[0].term = 2;
e[0].id = 999;
e[0].data.buf = "aaa";
......@@ -3464,13 +3464,13 @@ void TestRaft_leader_recv_entry_fails_if_prevlogidx_less_than_commit(CuTest * tc
raft_set_commit_idx(r, 0);
/* entry message */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
mety.id = 1;
mety.data.buf = "entry";
mety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &mety, &cr);
CuAssertTrue(tc, 0 == raft_msg_entry_response_committed(r, &cr));
CuAssertTrue(tc, cr.term == 2);
......@@ -3481,15 +3481,15 @@ void TestRaft_leader_recv_entry_fails_if_prevlogidx_less_than_commit(CuTest * tc
raft_set_commit_idx(r, 1);
/* append entry that invalidates entry message */
msg_appendentries_t ae;
memset(&ae, 0, sizeof(msg_appendentries_t));
AppendEntriesMsg_t ae;
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.leader_commit = 1;
ae.term = 2;
ae.prev_log_idx = 1;
ae.prev_log_term = 1;
msg_appendentries_response_t aer;
msg_entry_t e[1];
memset(&e, 0, sizeof(msg_entry_t) * 1);
AppendEntriesResponseMsg_t aer;
LogEntryMsg_table_t e[1];
memset(&e, 0, sizeof(LogEntryMsg_table_t) * 1);
e[0].term = 2;
e[0].id = 999;
e[0].data.buf = "aaa";
......@@ -3530,17 +3530,17 @@ void TestRaft_leader_recv_entry_does_not_send_new_appendentries_to_slow_nodes(Cu
raft_append_entry(r, &ety);
/* entry message */
msg_entry_t mety = {};
LogEntryMsg_table_t mety = {};
mety.id = 1;
mety.data.buf = "entry";
mety.data.len = strlen("entry");
/* receive entry */
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_recv_entry(r, &mety, &cr);
/* check if the slow node got sent this appendentries */
msg_appendentries_t* ae;
AppendEntriesMsg_t* ae;
ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL == ae);
}
......@@ -3578,8 +3578,8 @@ void TestRaft_leader_recv_appendentries_response_failure_does_not_set_node_nexti
raft_send_appendentries(r, raft_get_node(r, 2));
/* receive mock success response */
msg_appendentries_response_t aer;
memset(&aer, 0, sizeof(msg_appendentries_response_t));
AppendEntriesResponseMsg_t aer;
memset(&aer, 0, sizeof(AppendEntriesResponseMsg_t));
aer.term = 1;
aer.success = 0;
aer.current_idx = 0;
......@@ -3614,7 +3614,7 @@ void TestRaft_leader_recv_appendentries_response_increment_idx_of_node(
CuAssertTrue(tc, 1 == raft_node_get_next_idx(p));
/* receive mock success responses */
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
aer.term = 1;
aer.success = 1;
aer.current_idx = 0;
......@@ -3646,7 +3646,7 @@ void TestRaft_leader_recv_appendentries_response_drop_message_if_term_is_old(
CuAssertTrue(tc, 1 == raft_node_get_next_idx(p));
/* receive OLD mock success responses */
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
aer.term = 1;
aer.success = 1;
aer.current_idx = 1;
......@@ -3677,7 +3677,7 @@ void TestRaft_leader_recv_appendentries_response_steps_down_if_term_is_newer(
CuAssertTrue(tc, 1 == raft_node_get_next_idx(p));
/* receive NEW mock failed responses */
msg_appendentries_response_t aer;
AppendEntriesResponseMsg_t aer;
aer.term = 3;
aer.success = 0;
aer.current_idx = 2;
......@@ -3697,8 +3697,8 @@ void TestRaft_leader_recv_appendentries_steps_down_if_newer(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -3709,7 +3709,7 @@ void TestRaft_leader_recv_appendentries_steps_down_if_newer(
CuAssertTrue(tc, 1 == raft_is_leader(r));
CuAssertTrue(tc, 1 == raft_get_current_leader(r));
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 6;
ae.prev_log_idx = 6;
ae.prev_log_term = 5;
......@@ -3731,8 +3731,8 @@ void TestRaft_leader_recv_appendentries_steps_down_if_newer_term(
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_appendentries_t ae;
msg_appendentries_response_t aer;
AppendEntriesMsg_t ae;
AppendEntriesResponseMsg_t aer;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -3740,7 +3740,7 @@ void TestRaft_leader_recv_appendentries_steps_down_if_newer_term(
raft_set_state(r, RAFT_STATE_LEADER);
raft_set_current_term(r, 5);
memset(&ae, 0, sizeof(msg_appendentries_t));
memset(&ae, 0, sizeof(AppendEntriesMsg_t));
ae.term = 6;
ae.prev_log_idx = 5;
ae.prev_log_term = 5;
......@@ -3772,7 +3772,7 @@ void TestRaft_leader_sends_empty_appendentries_every_request_timeout(
raft_become_leader(r);
/* receive appendentries messages for both nodes */
msg_appendentries_t* ae;
AppendEntriesMsg_t* ae;
ae = sender_poll_msg_data(sender);
CuAssertTrue(tc, NULL != ae);
ae = sender_poll_msg_data(sender);
......@@ -3813,16 +3813,16 @@ void TestRaft_leader_recv_requestvote_responds_without_granting(CuTest * tc)
raft_election_start(r);
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 1;
rvr.vote_granted = 1;
raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
CuAssertTrue(tc, 1 == raft_is_leader(r));
/* receive request vote from node 3 */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 1;
raft_recv_requestvote(r, raft_get_node(r, 3), &rv, &rvr);
CuAssertTrue(tc, 0 == rvr.vote_granted);
......@@ -3849,16 +3849,16 @@ void TestRaft_leader_recv_requestvote_responds_with_granting_if_term_is_higher(C
raft_election_start(r);
msg_requestvote_response_t rvr;
memset(&rvr, 0, sizeof(msg_requestvote_response_t));
RequestVoteResponseMsg_t rvr;
memset(&rvr, 0, sizeof(RequestVoteResponseMsg_t));
rvr.term = 1;
rvr.vote_granted = 1;
raft_recv_requestvote_response(r, raft_get_node(r, 2), &rvr);
CuAssertTrue(tc, 1 == raft_is_leader(r));
/* receive request vote from node 3 */
msg_requestvote_t rv;
memset(&rv, 0, sizeof(msg_requestvote_t));
RequestVoteMsg_t rv;
memset(&rv, 0, sizeof(RequestVoteMsg_t));
rv.term = 2;
raft_recv_requestvote(r, raft_get_node(r, 3), &rv, &rvr);
CuAssertTrue(tc, 1 == raft_is_follower(r));
......
......@@ -43,7 +43,7 @@ static int __raft_applylog(
static int __raft_send_requestvote(raft_server_t* raft,
void* udata,
raft_node_t* node,
msg_requestvote_t* msg)
RequestVoteMsg_t* msg)
{
return 0;
}
......@@ -51,7 +51,7 @@ static int __raft_send_requestvote(raft_server_t* raft,
static int __raft_send_appendentries(raft_server_t* raft,
void* udata,
raft_node_t* node,
msg_appendentries_t* msg)
AppendEntriesMsg_t* msg)
{
return 0;
}
......@@ -59,10 +59,10 @@ static int __raft_send_appendentries(raft_server_t* raft,
static int __raft_send_appendentries_capture(raft_server_t* raft,
void* udata,
raft_node_t* node,
msg_appendentries_t* msg)
AppendEntriesMsg_t* msg)
{
msg_appendentries_t* msg_captured = (msg_appendentries_t*)udata;
memcpy(msg_captured, msg, sizeof(msg_appendentries_t));
AppendEntriesMsg_t* msg_captured = (AppendEntriesMsg_t*)udata;
memcpy(msg_captured, msg, sizeof(AppendEntriesMsg_t));
return 0;
}
......@@ -88,7 +88,7 @@ void TestRaft_leader_begin_snapshot_fails_if_no_logs_to_compact(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -98,7 +98,7 @@ void TestRaft_leader_begin_snapshot_fails_if_no_logs_to_compact(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -123,7 +123,7 @@ void TestRaft_leader_will_not_apply_entry_if_snapshot_is_in_progress(CuTest * tc
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -133,7 +133,7 @@ void TestRaft_leader_will_not_apply_entry_if_snapshot_is_in_progress(CuTest * tc
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -179,7 +179,7 @@ void TestRaft_leader_snapshot_begin_fails_if_less_than_2_logs_to_compact(CuTest
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -189,7 +189,7 @@ void TestRaft_leader_snapshot_begin_fails_if_less_than_2_logs_to_compact(CuTest
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -211,7 +211,7 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -222,7 +222,7 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -260,7 +260,7 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted2(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -271,7 +271,7 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted2(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -310,7 +310,7 @@ void TestRaft_joinee_needs_to_get_snapshot(CuTest * tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -320,7 +320,7 @@ void TestRaft_joinee_needs_to_get_snapshot(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -354,7 +354,7 @@ void TestRaft_follower_load_from_snapshot(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -410,7 +410,7 @@ void TestRaft_follower_load_from_snapshot_fails_if_already_loaded(CuTest * tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -441,7 +441,7 @@ void TestRaft_follower_load_from_snapshot_does_not_break_cluster_safety(CuTest *
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -477,7 +477,7 @@ void TestRaft_follower_load_from_snapshot_fails_if_log_is_newer(CuTest * tc)
raft_set_last_applied_idx(r, 5);
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......@@ -491,7 +491,7 @@ void TestRaft_leader_sends_appendentries_when_node_next_index_was_compacted(CuTe
.send_appendentries = __raft_send_appendentries_capture,
};
msg_appendentries_t ae;
AppendEntriesMsg_t ae;
void *r = raft_new();
raft_set_callbacks(r, &funcs, &ae);
......@@ -550,7 +550,7 @@ void TestRaft_recv_entry_fails_if_snapshot_in_progress(CuTest* tc)
void *r = raft_new();
raft_set_callbacks(r, &funcs, NULL);
msg_entry_response_t cr;
LogEntryResponseMsg_table_t cr;
raft_add_node(r, NULL, 1, 1);
raft_add_node(r, NULL, 2, 0);
......@@ -560,7 +560,7 @@ void TestRaft_recv_entry_fails_if_snapshot_in_progress(CuTest* tc)
CuAssertIntEquals(tc, 0, raft_get_log_count(r));
/* entry message */
msg_entry_t ety = {};
LogEntryMsg_table_t ety = {};
ety.id = 1;
ety.data.buf = "entry";
ety.data.len = strlen("entry");
......
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