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
eac69f09
Unverified
Commit
eac69f09
authored
Aug 17, 2021
by
Ozan Tezcan
Committed by
GitHub
Aug 17, 2021
Browse files
Added python tests and code coverage to cmake (#38)
added python tests and coverage to cmake
parent
c76b1bc0
Changes
1
Show whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
eac69f09
# Library build :
# mkdir build && cd build && cmake ..
# make
# Coverage :
# mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Coverage
# make && make lib_coverage
# Tests :
# mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug
# make && make tests_full
project
(
raft C
)
project
(
raft C
)
cmake_minimum_required
(
VERSION 3.9
)
cmake_minimum_required
(
VERSION 3.9
)
set
(
CMAKE_C_STANDARD 99
)
set
(
CMAKE_C_STANDARD_REQUIRED ON
)
set
(
CMAKE_C_EXTENSIONS OFF
)
enable_testing
()
macro
(
define_test name
)
macro
(
define_test name
)
add_executable
(
${
name
}
add_executable
(
${
name
}
tests/
${
name
}
.c
tests/
${
name
}
.c
...
@@ -19,6 +23,74 @@ macro(define_test name)
...
@@ -19,6 +23,74 @@ macro(define_test name)
add_test
(
NAME
${
name
}
COMMAND $<TARGET_FILE:
${
name
}
>
)
add_test
(
NAME
${
name
}
COMMAND $<TARGET_FILE:
${
name
}
>
)
endmacro
()
endmacro
()
# ----------------------- Build Settings Start ------------------------------- #
set
(
CMAKE_C_STANDARD 99
)
set
(
CMAKE_C_STANDARD_REQUIRED ON
)
set
(
CMAKE_C_EXTENSIONS OFF
)
enable_testing
()
if
(
NOT CMAKE_BUILD_TYPE
)
message
(
STATUS
"No build type selected, defaulting to Release"
)
set
(
CMAKE_BUILD_TYPE
"Release"
)
endif
()
message
(
STATUS
"Main build type:
${
CMAKE_BUILD_TYPE
}
"
)
# ------------------------ Build Settings End -------------------------------- #
# --------------------------- Build Helpers Start ---------------------------- #
add_custom_target
(
check
${
CMAKE_COMMAND
}
-E env CTEST_OUTPUT_ON_FAILURE=1
${
CMAKE_CTEST_COMMAND
}
-C $<CONFIG> --verbose
WORKING_DIRECTORY
${
CMAKE_BINARY_DIR
}
)
# ---------------------------- Build Helpers End ----------------------------- #
# --------------------------- Code Coverage Start ---------------------------- #
if
(
${
CMAKE_BUILD_TYPE
}
MATCHES
"Coverage"
)
add_compile_options
(
-fprofile-arcs -ftest-coverage
)
link_libraries
(
gcov
)
endif
()
add_custom_target
(
lib_coverage
)
add_custom_command
(
TARGET lib_coverage
COMMAND lcov --capture --directory .
--output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
COMMAND lcov --remove coverage.info '/usr/*' '*example*' '*test*'
--output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
COMMAND lcov --list coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
)
add_dependencies
(
lib_coverage check
)
# ---------------------------- Code Coverage End ----------------------------- #
# ------------------------------ Python Tests ---------------------------------#
add_custom_target
(
test_fuzzer
)
add_custom_command
(
TARGET test_fuzzer
COMMAND python
${
CMAKE_SOURCE_DIR
}
/tests/log_fuzzer.py
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
)
add_custom_target
(
test_virtraft
)
add_custom_command
(
TARGET test_virtraft
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 1 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 7 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 1 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 2 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 3 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 4 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 5 -m 3 $
(
VIRTRAFT_OPTS
)
COMMAND python3 tests/virtraft2.py --servers 5 -i 20000 --compaction_rate 50 --drop_rate 5 -P 10 --seed 6 -m 3 $
(
VIRTRAFT_OPTS
))
# ----------------------------- Python Tests End ----------------------------- #
# ----------------------------- C Tests Start -------------------------------- #
add_custom_target
(
tests_full
)
add_dependencies
(
tests_full check test_fuzzer test_virtraft
)
add_library
(
raft STATIC
add_library
(
raft STATIC
src/raft_log.c
src/raft_log.c
src/raft_server.c
src/raft_server.c
...
@@ -34,3 +106,5 @@ define_test(test_node)
...
@@ -34,3 +106,5 @@ define_test(test_node)
define_test
(
test_scenario
)
define_test
(
test_scenario
)
define_test
(
test_server
)
define_test
(
test_server
)
define_test
(
test_snapshotting
)
define_test
(
test_snapshotting
)
# ------------------------------ C Tests End --------------------------------- #
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