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
RedisLabs Raft
Commits
fc503058
"vscode:/vscode.git/clone" did not exist on "48efc25f749c3620f9245786582ac76cb40e9bf4"
Unverified
Commit
fc503058
authored
Apr 06, 2022
by
Ozan Tezcan
Committed by
GitHub
Apr 06, 2022
Browse files
Add raft_get_state_str() to get state as string (#100)
parent
38d64cae
Changes
4
Hide whitespace changes
Inline
Side-by-side
include/raft.h
View file @
fc503058
...
...
@@ -32,8 +32,7 @@ typedef enum {
}
raft_membership_e
;
typedef
enum
{
RAFT_STATE_NONE
,
RAFT_STATE_FOLLOWER
,
RAFT_STATE_FOLLOWER
=
1
,
RAFT_STATE_PRECANDIDATE
,
RAFT_STATE_CANDIDATE
,
RAFT_STATE_LEADER
,
...
...
@@ -1249,6 +1248,9 @@ raft_node_id_t raft_node_get_id(raft_node_t* me);
* @return get state of type raft_state_e. */
int
raft_get_state
(
raft_server_t
*
me
);
/* @return state string */
const
char
*
raft_get_state_str
(
raft_server_t
*
me
);
/** Get the most recent log's term
* @return the last log term */
raft_term_t
raft_get_last_log_term
(
raft_server_t
*
me
);
...
...
include/raft_private.h
View file @
fc503058
...
...
@@ -49,7 +49,7 @@ struct raft_server {
raft_index_t
last_applied_idx
;
/* follower/leader/candidate indicator */
int
state
;
raft_state_e
state
;
/* amount of time left till timeout */
int
timeout_elapsed
;
...
...
src/raft_server_properties.c
View file @
fc503058
...
...
@@ -139,6 +139,22 @@ int raft_get_state(raft_server_t* me)
return
me
->
state
;
}
const
char
*
raft_get_state_str
(
raft_server_t
*
me
)
{
switch
(
me
->
state
)
{
case
RAFT_STATE_FOLLOWER
:
return
"follower"
;
case
RAFT_STATE_PRECANDIDATE
:
return
"pre-candidate"
;
case
RAFT_STATE_CANDIDATE
:
return
"candidate"
;
case
RAFT_STATE_LEADER
:
return
"leader"
;
default:
return
"unknown"
;
}
}
raft_node_t
*
raft_get_node
(
raft_server_t
*
me
,
raft_node_id_t
nodeid
)
{
int
i
;
...
...
tests/test_server.c
View file @
fc503058
...
...
@@ -240,6 +240,19 @@ void TestRaft_set_state(CuTest * tc)
void
*
r
=
raft_new
();
raft_set_state
(
r
,
RAFT_STATE_LEADER
);
CuAssertTrue
(
tc
,
RAFT_STATE_LEADER
==
raft_get_state
(
r
));
CuAssertStrEquals
(
tc
,
"leader"
,
raft_get_state_str
(
r
));
raft_set_state
(
r
,
RAFT_STATE_CANDIDATE
);
CuAssertTrue
(
tc
,
RAFT_STATE_CANDIDATE
==
raft_get_state
(
r
));
CuAssertStrEquals
(
tc
,
"candidate"
,
raft_get_state_str
(
r
));
raft_set_state
(
r
,
RAFT_STATE_PRECANDIDATE
);
CuAssertTrue
(
tc
,
RAFT_STATE_PRECANDIDATE
==
raft_get_state
(
r
));
CuAssertStrEquals
(
tc
,
"pre-candidate"
,
raft_get_state_str
(
r
));
raft_set_state
(
r
,
RAFT_STATE_FOLLOWER
);
CuAssertTrue
(
tc
,
RAFT_STATE_FOLLOWER
==
raft_get_state
(
r
));
CuAssertStrEquals
(
tc
,
"follower"
,
raft_get_state_str
(
r
));
}
void
TestRaft_server_starts_as_follower
(
CuTest
*
tc
)
...
...
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