From fe2003ab1246948151bfe3dfe125395fcbc4f606 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:28:58 +0100 Subject: [PATCH 1/3] build: Add `COMMAND_ERROR_IS_FATAL` to every process in coverage scrips --- cmake/script/Coverage.cmake | 12 ++++++++++++ cmake/script/CoverageFuzz.cmake | 6 ++++++ cmake/script/CoverageInclude.cmake.in | 3 +++ 3 files changed, 21 insertions(+) diff --git a/cmake/script/Coverage.cmake b/cmake/script/Coverage.cmake index 0df2e0b734..72587a5eb6 100644 --- a/cmake/script/Coverage.cmake +++ b/cmake/script/Coverage.cmake @@ -21,26 +21,32 @@ execute_process( execute_process( COMMAND ${LCOV_COMMAND} --capture --directory src --test-name test_bitcoin --output-file test_bitcoin.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --zerocounters --directory src WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_FILTER_COMMAND} test_bitcoin.info test_bitcoin_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile test_bitcoin_filtered.info --output-file test_bitcoin_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --add-tracefile test_bitcoin_filtered.info --output-file test_bitcoin_coverage.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${GENHTML_COMMAND} test_bitcoin_coverage.info --output-directory test_bitcoin.coverage WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( @@ -51,18 +57,22 @@ execute_process( execute_process( COMMAND ${LCOV_COMMAND} --capture --directory src --test-name functional-tests --output-file functional_test.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --zerocounters --directory src WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_FILTER_COMMAND} functional_test.info functional_test_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile functional_test_filtered.info --output-file functional_test_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --add-tracefile test_bitcoin_filtered.info --add-tracefile functional_test_filtered.info --output-file total_coverage.info @@ -70,8 +80,10 @@ execute_process( COMMAND ${AWK_EXECUTABLE} "{ print substr($3,2,50) \"/\" $5 }" OUTPUT_FILE coverage_percent.txt WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${GENHTML_COMMAND} total_coverage.info --output-directory total.coverage WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) diff --git a/cmake/script/CoverageFuzz.cmake b/cmake/script/CoverageFuzz.cmake index 82b39a2535..98384689a5 100644 --- a/cmake/script/CoverageFuzz.cmake +++ b/cmake/script/CoverageFuzz.cmake @@ -16,18 +16,22 @@ execute_process( execute_process( COMMAND ${LCOV_COMMAND} --capture --directory src --test-name fuzz-tests --output-file fuzz.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --zerocounters --directory src WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_FILTER_COMMAND} fuzz.info fuzz_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile fuzz_filtered.info --output-file fuzz_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --add-tracefile fuzz_filtered.info --output-file fuzz_coverage.info @@ -35,8 +39,10 @@ execute_process( COMMAND ${AWK_EXECUTABLE} "{ print substr($3,2,50) \"/\" $5 }" OUTPUT_FILE coverage_percent.txt WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${GENHTML_COMMAND} fuzz_coverage.info --output-directory fuzz.coverage WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) diff --git a/cmake/script/CoverageInclude.cmake.in b/cmake/script/CoverageInclude.cmake.in index 7a8bf2f0af..59bf5e3af2 100644 --- a/cmake/script/CoverageInclude.cmake.in +++ b/cmake/script/CoverageInclude.cmake.in @@ -45,12 +45,15 @@ list(APPEND LCOV_FILTER_COMMAND -p "depends") execute_process( COMMAND ${LCOV_COMMAND} --capture --initial --directory src --output-file baseline.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_FILTER_COMMAND} baseline.info baseline_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --output-file baseline_filtered.info WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + COMMAND_ERROR_IS_FATAL ANY ) From e7cf4a6f27d1c7fb38b212b93fe0120b8c4ef2a2 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Fri, 30 Aug 2024 15:32:00 +0100 Subject: [PATCH 2/3] build: Add missed `-g` for "Coverage" build configuration --- cmake/module/ProcessConfigurations.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/module/ProcessConfigurations.cmake b/cmake/module/ProcessConfigurations.cmake index 5286d10267..7e2fc0080e 100644 --- a/cmake/module/ProcessConfigurations.cmake +++ b/cmake/module/ProcessConfigurations.cmake @@ -163,8 +163,8 @@ else() unset(cxx_flags_debug_overridden) endif() -set(CMAKE_CXX_FLAGS_COVERAGE "-Og --coverage") -set(CMAKE_OBJCXX_FLAGS_COVERAGE "-Og --coverage") +set(CMAKE_CXX_FLAGS_COVERAGE "-g -Og --coverage") +set(CMAKE_OBJCXX_FLAGS_COVERAGE "-g -Og --coverage") set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "--coverage") set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "--coverage") get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) From d9fcbfc3727e06e6f57d4ab09861f3212d558426 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Wed, 4 Sep 2024 06:29:37 +0100 Subject: [PATCH 3/3] build: Add `JOBS` variable support to `CoverageFuzz.cmake` script --- cmake/script/CoverageFuzz.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/script/CoverageFuzz.cmake b/cmake/script/CoverageFuzz.cmake index 98384689a5..0558805394 100644 --- a/cmake/script/CoverageFuzz.cmake +++ b/cmake/script/CoverageFuzz.cmake @@ -8,8 +8,13 @@ if(NOT DEFINED FUZZ_CORPORA_DIR) set(FUZZ_CORPORA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/qa-assets/fuzz_corpora) endif() +set(fuzz_test_runner test/fuzz/test_runner.py ${FUZZ_CORPORA_DIR}) +if(DEFINED JOBS) + list(APPEND fuzz_test_runner -j ${JOBS}) +endif() + execute_process( - COMMAND test/fuzz/test_runner.py ${FUZZ_CORPORA_DIR} --loglevel DEBUG + COMMAND ${fuzz_test_runner} --loglevel DEBUG WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} COMMAND_ERROR_IS_FATAL ANY )