From b7d8564b6542f57812e243f2d86e7e45feb7ad58 Mon Sep 17 00:00:00 2001 From: lns Date: Sun, 2 Oct 2022 21:41:33 +0200 Subject: Generate code coverage w/o external shell script, use CMake. * upload codecov/dist artifacts Signed-off-by: lns --- CMakeLists.txt | 28 +++++++++++++++++++++------- scripts/code-coverage.sh | 8 -------- 2 files changed, 21 insertions(+), 15 deletions(-) delete mode 100755 scripts/code-coverage.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 8dfbc2c0e..37d54ba38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,11 +112,18 @@ if(ENABLE_COVERAGE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --coverage") - add_custom_target(coverage) + add_custom_target(coverage DEPENDS "${CMAKE_BINARY_DIR}/coverage_report/nDPId/index.html") add_custom_command( - TARGET coverage - COMMAND "${CMAKE_SOURCE_DIR}/scripts/code-coverage.sh" - DEPENDS nDPId nDPIsrvd nDPId-test + OUTPUT "${CMAKE_BINARY_DIR}/coverage_report/nDPId/index.html" + COMMAND lcov --directory "${CMAKE_BINARY_DIR}" --directory "${CMAKE_SOURCE_DIR}/libnDPI" --capture --output-file "${CMAKE_BINARY_DIR}/lcov.info" + COMMAND genhtml -o "${CMAKE_BINARY_DIR}/coverage_report" "${CMAKE_BINARY_DIR}/lcov.info" + DEPENDS nDPId nDPId-test nDPIsrvd + ) + add_custom_target(coverage-view) + add_custom_command( + TARGET coverage-view + COMMAND cd "${CMAKE_BINARY_DIR}/coverage_report" && python3 -m http.server + DEPENDS "${CMAKE_BINARY_DIR}/coverage_report/nDPId/index.html" ) endif() if(ENABLE_SANITIZER) @@ -130,17 +137,21 @@ if(ENABLE_ZLIB) pkg_check_modules(ZLIB REQUIRED zlib) endif() if(NDPI_WITH_GCRYPT) - message(STATUS "Enable GCRYPT") + message(STATUS "nDPI: Enable GCRYPT") set(NDPI_ADDITIONAL_ARGS "${NDPI_ADDITIONAL_ARGS} --with-local-libgcrypt") endif() if(NDPI_WITH_PCRE) - message(STATUS "Enable PCRE") + message(STATUS "nDPI: Enable PCRE") set(NDPI_ADDITIONAL_ARGS "${NDPI_ADDITIONAL_ARGS} --with-pcre") endif() if(NDPI_WITH_MAXMINDDB) - message(STATUS "Enable MAXMINDDB") + message(STATUS "nDPI: Enable MAXMINDDB") set(NDPI_ADDITIONAL_ARGS "${NDPI_ADDITIONAL_ARGS} --with-maxminddb") endif() +if(ENABLE_COVERAGE) + message(STATUS "nDPI: Enable Coverage") + set(NDPI_ADDITIONAL_ARGS "${NDPI_ADDITIONAL_ARGS} --enable-code-coverage") +endif() execute_process( COMMAND git describe --tags @@ -274,6 +285,9 @@ target_link_libraries(nDPId-test "${STATIC_LIBNDPI_LIB}" "${pkgcfg_lib_NDPI_ndpi if(BUILD_EXAMPLES) add_executable(nDPIsrvd-collectd examples/c-collectd/c-collectd.c) + if(BUILD_NDPI) + add_dependencies(nDPIsrvd-collectd libnDPI) + endif() target_compile_definitions(nDPIsrvd-collectd PRIVATE ${NDPID_DEFS}) target_include_directories(nDPIsrvd-collectd PRIVATE "${STATIC_LIBNDPI_INC}" "${DEFAULT_NDPI_INCLUDE}" "${CMAKE_SOURCE_DIR}" ${NDPID_DEPS_INC}) diff --git a/scripts/code-coverage.sh b/scripts/code-coverage.sh deleted file mode 100755 index 37038bd2a..000000000 --- a/scripts/code-coverage.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "${0}")/.." -mkdir -p coverage_report -lcov --directory . --capture --output-file lcov.info -genhtml -o coverage_report lcov.info -- cgit v1.2.3