Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Willemt Raft
Commits
763799c5
Commit
763799c5
authored
Nov 18, 2015
by
Willem Thiart
Browse files
Refactor, add more asserts
parent
97c91833
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/raft_server.c
View file @
763799c5
...
...
@@ -162,7 +162,8 @@ raft_entry_t* raft_get_entry_from_idx(raft_server_t* me_, int etyidx)
}
int
raft_recv_appendentries_response
(
raft_server_t
*
me_
,
int
node_idx
,
msg_appendentries_response_t
*
r
)
int
node_idx
,
msg_appendentries_response_t
*
r
)
{
raft_server_private_t
*
me
=
(
raft_server_private_t
*
)
me_
;
...
...
@@ -444,7 +445,8 @@ int raft_votes_is_majority(const int num_nodes, const int nvotes)
return
half
+
1
<=
nvotes
;
}
int
raft_recv_requestvote_response
(
raft_server_t
*
me_
,
int
node
,
int
raft_recv_requestvote_response
(
raft_server_t
*
me_
,
int
node
,
msg_requestvote_response_t
*
r
)
{
raft_server_private_t
*
me
=
(
raft_server_private_t
*
)
me_
;
...
...
src/raft_server_properties.c
View file @
763799c5
...
...
@@ -94,6 +94,8 @@ int raft_get_current_idx(raft_server_t* me_)
void
raft_set_commit_idx
(
raft_server_t
*
me_
,
int
idx
)
{
raft_server_private_t
*
me
=
(
raft_server_private_t
*
)
me_
;
assert
(
me
->
commit_idx
<=
idx
);
assert
(
idx
<=
raft_get_current_idx
(
me_
));
me
->
commit_idx
=
idx
;
}
...
...
tests/test_server.c
View file @
763799c5
...
...
@@ -270,23 +270,23 @@ void TestRaft_server_wont_apply_entry_if_there_isnt_a_majority(CuTest* tc)
void
TestRaft_server_increment_lastApplied_when_lastApplied_lt_commitidx
(
CuTest
*
tc
)
{
raft_entry_t
ety
;
void
*
r
=
raft_new
();
/* must be follower */
raft_set_state
(
r
,
RAFT_STATE_FOLLOWER
);
raft_set_current_term
(
r
,
1
);
raft_set_commit_idx
(
r
,
1
);
raft_set_last_applied_idx
(
r
,
0
);
/* need at least one entry */
raft_entry_t
ety
;
ety
.
term
=
1
;
ety
.
id
=
1
;
ety
.
data
.
buf
=
"aaa"
;
ety
.
data
.
len
=
3
;
raft_append_entry
(
r
,
&
ety
);
raft_set_commit_idx
(
r
,
1
);
/* let time lapse */
raft_periodic
(
r
,
1
);
CuAssertTrue
(
tc
,
0
!=
raft_get_last_applied_idx
(
r
));
...
...
@@ -295,19 +295,16 @@ void TestRaft_server_increment_lastApplied_when_lastApplied_lt_commitidx(
void
TestRaft_server_apply_entry_increments_last_applied_idx
(
CuTest
*
tc
)
{
raft_entry_t
ety
;
char
*
str
=
"aaa"
;
ety
.
term
=
1
;
void
*
r
=
raft_new
();
raft_set_commit_idx
(
r
,
1
);
raft_set_last_applied_idx
(
r
,
0
);
raft_entry_t
ety
;
ety
.
term
=
1
;
ety
.
id
=
1
;
ety
.
data
.
buf
=
str
;
ety
.
data
.
buf
=
"aaa"
;
ety
.
data
.
len
=
3
;
raft_append_entry
(
r
,
&
ety
);
raft_set_commit_idx
(
r
,
1
);
raft_apply_entry
(
r
);
CuAssertTrue
(
tc
,
1
==
raft_get_last_applied_idx
(
r
));
}
...
...
@@ -744,8 +741,6 @@ void TestRaft_follower_recv_appendentries_reply_false_if_doesnt_have_log_at_prev
/* term is different from appendentries */
raft_set_current_term
(
r
,
2
);
raft_set_commit_idx
(
r
,
1
);
raft_set_last_applied_idx
(
r
,
1
);
// TODO at log manually?
/* log idx that server doesn't have */
...
...
@@ -1581,6 +1576,19 @@ void TestRaft_leader_sends_appendentries_with_leader_commit(
/* i'm leader */
raft_set_state
(
r
,
RAFT_STATE_LEADER
);
int
i
;
for
(
i
=
0
;
i
<
10
;
i
++
)
{
raft_entry_t
ety
;
ety
.
term
=
1
;
ety
.
id
=
1
;
ety
.
data
.
buf
=
"aaa"
;
ety
.
data
.
len
=
3
;
raft_append_entry
(
r
,
&
ety
);
}
raft_set_commit_idx
(
r
,
10
);
/* receive appendentries messages */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment