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

Flatbuffers transport

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