Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Willemt Raft
Commits
2966358a
Commit
2966358a
authored
Feb 27, 2014
by
willem
Browse files
Merge branch 'master' of
https://github.com/willemt/CRaft
Conflicts: include/raft_log.h
parents
d35cf92d
1d7aa60f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
2966358a
...
...
@@ -5,11 +5,24 @@ LLQUEUE_DIR = $(CONTRIB_DIR)/CLinkedListQueue
GCOV_OUTPUT
=
*
.gcda
*
.gcno
*
.gcov
GCOV_CCFLAGS
=
-fprofile-arcs
-ftest-coverage
SHELL
=
/bin/bash
CC
=
gcc
CCFLAGS
=
-g
-O2
-Werror
-Werror
=
return
-type
-Werror
=
uninitialized
-Wcast-align
-fno-omit-frame-pointer
-fno-common
-fsigned-char
$(GCOV_CCFLAGS)
-I
$(LLQUEUE_DIR)
-Iinclude
CFLAGS
+=
-Iinclude
-Werror
-Werror
=
return
-type
-Werror
=
uninitialized
-Wcast-align
\
-Wno-pointer-sign
-fno-omit-frame-pointer
-fno-common
-fsigned-char
\
$(GCOV_CCFLAGS)
-I
$(LLQUEUE_DIR)
-Iinclude
-fPIC
-g
-O2
all
:
tests_main
UNAME
:=
$(
shell
uname
)
ifeq
($(UNAME), Darwin)
SHAREDFLAGS
=
-dynamiclib
SHAREDEXT
=
dylib
else
SHAREDFLAGS
=
-shared
SHAREDEXT
=
so
endif
OBJECTS
=
raft_server.o raft_server_properties.o raft_node.o raft_log.o
all
:
static shared
clinkedlistqueue
:
mkdir
-p
$(LLQUEUE_DIR)
/.git
git
--git-dir
=
$(LLQUEUE_DIR)
/.git init
...
...
@@ -24,10 +37,22 @@ $(TEST_DIR)/main_test.c:
fi
cd
$(TEST_DIR)
&&
sh make-tests.sh
"test_*.c"
>
main_test.c
&&
cd
..
tests_main
:
raft_server.c raft_server_properties.c raft_log.c raft_node.c $(TEST_DIR)/main_test.c $(TEST_DIR)/test_server.c $(TEST_DIR)/test_node.c $(TEST_DIR)/test_log.c $(TEST_DIR)/test_scenario.c $(TEST_DIR)/mock_send_functions.c $(TEST_DIR)/CuTest.c $(LLQUEUE_DIR)/linked_list_queue.c
$(CC)
$(CCFLAGS)
-o
$@
$^
.PHONY
:
shared
shared
:
$(OBJECTS)
$(CC)
$(OBJECTS)
$(LDFLAGS)
$(CFLAGS)
$(SHAREDFLAGS)
-o
libcraft.
$(SHAREDEXT)
.PHONY
:
static
static
:
$(OBJECTS)
ar
-r
libcraft.a
$(OBJECTS)
.PHONY
:
tests
tests
:
raft_server.c raft_server_properties.c raft_log.c raft_node.c $(TEST_DIR)/main_test.c $(TEST_DIR)/test_server.c $(TEST_DIR)/test_node.c $(TEST_DIR)/test_log.c $(TEST_DIR)/test_scenario.c $(TEST_DIR)/mock_send_functions.c $(TEST_DIR)/CuTest.c $(LLQUEUE_DIR)/linked_list_queue.c
$(CC)
$(CFLAGS)
-o
tests_main
$^
./tests_main
gcov raft_server.c
clean
:
rm
-f
$(TEST_DIR)
/main_test.c
*
.o
$(GCOV_OUTPUT)
@
rm
-f
$(TEST_DIR)
/main_test.c
*
.o
$(GCOV_OUTPUT)
;
\
if
[
-f
"libcraft.
$(SHAREDEXT)
"
]
;
then
rm
libcraft.
$(SHAREDEXT)
;
fi
;
\
if
[
-f
libcraft.a
]
;
then
rm
libcraft.a
;
fi
;
\
if
[
-f
tests_main
]
;
then
rm
tests_main
;
fi
;
include/raft_log.h
View file @
2966358a
#ifndef RAFT_LOG_H_
#define RAFT_LOG_H_
...
...
@@ -6,6 +5,8 @@ typedef void* log_t;
log_t
*
log_new
();
void
log_free
(
log_t
*
me_
);
/**
* Add entry to log.
* Don't add entry if we've already added this entry (based off ID)
...
...
@@ -13,6 +14,8 @@ log_t* log_new();
* @return 0 if unsucessful; 1 otherwise */
int
log_append_entry
(
log_t
*
me_
,
raft_entry_t
*
c
);
/**
* @return number of entries held within log */
int
log_count
(
log_t
*
me_
);
/**
...
...
@@ -30,10 +33,12 @@ void *log_poll(log_t * me_);
raft_entry_t
*
log_get_from_idx
(
log_t
*
me_
,
int
idx
);
/*
/*
*
* @return youngest entry */
raft_entry_t
*
log_peektail
(
log_t
*
me_
);
void
log_mark_peer_has_committed
(
log_t
*
me_
,
int
idx
);
void
log_mark_node_has_committed
(
log_t
*
me_
,
int
idx
);
void
log_delete
(
log_t
*
me_
,
int
idx
);
#endif
/* RAFT_LOG_H_ */
include/raft_private.h
View file @
2966358a
...
...
@@ -99,10 +99,12 @@ int raft_apply_entry(raft_server_t* me_);
int
raft_append_entry
(
raft_server_t
*
me_
,
raft_entry_t
*
c
);
void
raft_set_commit_idx
(
raft_server_t
*
me
,
int
commit_idx
);
int
raft_get_commit_idx
(
raft_server_t
*
me_
);
void
raft_set_last_applied_idx
(
raft_server_t
*
me
,
int
idx
);
void
raft_set_state
(
raft_server_t
*
me_
,
int
state
);
int
raft_get_state
(
raft_server_t
*
me_
);
raft_node_t
*
raft_node_new
(
void
*
udata
);
...
...
tests/make-tests.sh
View file @
2966358a
...
...
@@ -23,7 +23,7 @@ cat $FILES | grep '^void Test' |
-e
's/$/(CuTest*);/'
\
-e
's/^/extern /'
echo
-n
\
echo
\
'
void RunAllTests(void)
...
...
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