dncurrency/coverage/CMakeLists.txt
2024-01-10 20:01:49 +01:00

52 lines
2 KiB
CMake

add_custom_target(
clean_coverage
COMMAND echo "CLEANING COUNTERS"
COMMAND ${LCOV_PATH} --directory . --zerocounter -q
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS build_tests)
add_custom_target(
coverage_tests
COMMAND echo "RUN TESTS FOR COVERAGE"
COMMAND ${PROJECT_SOURCE_DIR}/ci/test.sh ${CMAKE_BINARY_DIR} || true
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS clean_coverage)
add_custom_target(
coveralls_upload
COMMAND echo "UPLOADING COVERALLS COVERAGE REPORT"
COMMAND coveralls -i nano -b build -r . --gcov-options '\\-lp'
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS coverage_tests)
add_custom_target(
generate_coverage
COMMAND echo "CAPTURING COVERAGE DATA"
COMMAND ${LCOV_PATH} --directory . --capture --output-file lcov.info.raw -q
COMMAND echo "REMOVING FLUFF FROM REPORT"
COMMAND
${LCOV_PATH} --remove lcov.info.raw '/usr/*' '/tmp/*'
'${PROJECT_SOURCE_DIR}/submodules/cpptoml/*'
'${PROJECT_SOURCE_DIR}/crypto/*'
'${PROJECT_SOURCE_DIR}/submodules/flatbuffers/*'
'${PROJECT_SOURCE_DIR}/gtest/*' '${PROJECT_SOURCE_DIR}/submodules/rocksdb/*'
'${PROJECT_SOURCE_DIR}/valgrind/*' '${PROJECT_SOURCE_DIR}/nano/core_test/*'
'${PROJECT_SOURCE_DIR}/nano/load_test/*'
'${PROJECT_SOURCE_DIR}/nano/ipc_flatbuffers_test/*'
'${PROJECT_SOURCE_DIR}/nano/ipc_flatbuffers_lib/*'
'${PROJECT_SOURCE_DIR}/nano/nano_node/*'
'${PROJECT_SOURCE_DIR}/nano/nano_wallet/*'
'${PROJECT_SOURCE_DIR}/nano/nano_rpc/*'
'${PROJECT_SOURCE_DIR}/nano/rpc_test/*'
'${PROJECT_SOURCE_DIR}/nano/qt_test/*' '${PROJECT_SOURCE_DIR}/nano/qt/*'
'${PROJECT_SOURCE_DIR}/nano/test_common/*' --output-file
${PROJECT_SOURCE_DIR}/coverage/lcov.info -q
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS coverage_tests)
add_custom_target(
generate_html
COMMAND echo "GENERATING HTML COVERAGE REPORT"
COMMAND ${GENHTML_PATH} -o coverage ${PROJECT_SOURCE_DIR}/coverage/lcov.info
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
DEPENDS generate_coverage)