From ffe919067a85d2690b0b55d1bb6a71977c1fe5df Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Thu, 17 Jun 2021 15:02:33 +0200 Subject: [PATCH] [ci] Generate coverage vis. --- scripts/ci/jobs/code-coverage.yml | 3 ++- scripts/cmake/CMakeSetup.cmake | 2 +- scripts/cmake/Coverage.cmake | 18 ++++++++++++++++++ scripts/test/generate_coverage_vis_data.in.py | 4 +++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/scripts/ci/jobs/code-coverage.yml b/scripts/ci/jobs/code-coverage.yml index fc95559ae5d..ac68e457ea9 100644 --- a/scripts/ci/jobs/code-coverage.yml +++ b/scripts/ci/jobs/code-coverage.yml @@ -21,13 +21,14 @@ code coverage: - genhtml --demangle-cpp -o coverage_report coverage.info - wget https://raw.github.com/eriwen/lcov-to-cobertura-xml/master/lcov_cobertura/lcov_cobertura.py - poetry run python lcov_cobertura.py coverage.info --base-dir $CI_PROJECT_DIR + - poetry run ./generate_coverage_vis_data.py artifacts: - expose_as: 'Coverage' paths: - Coverage.html - build/coverage/coverage_report - build/coverage/coverage.json - build/coverage/coverage.xml + - build/coverage/coverage_reports/*.json expire_in: 1 week reports: cobertura: build/coverage/coverage.xml diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake index a549b6247c7..763b6f4bc0d 100644 --- a/scripts/cmake/CMakeSetup.cmake +++ b/scripts/cmake/CMakeSetup.cmake @@ -13,7 +13,7 @@ endif() CPMAddPackage( NAME cmake-modules GITHUB_REPOSITORY bilke/cmake-modules - GIT_TAG d6d1a778e41cb114e5cdf279b8a659fa0ce9a0d4 + GIT_TAG d98828f54f6974717798e63195cfbf08fe2daad0 DOWNLOAD_ONLY YES ) set(CMAKE_MODULE_PATH diff --git a/scripts/cmake/Coverage.cmake b/scripts/cmake/Coverage.cmake index 0689aee21cf..0fb66a367f4 100644 --- a/scripts/cmake/Coverage.cmake +++ b/scripts/cmake/Coverage.cmake @@ -38,6 +38,8 @@ endif() setup_target_for_coverage_fastcov( NAME testrunner_coverage + BASE_DIRECTORY + ${PROJECT_BINARY_DIR} EXECUTABLE $<TARGET_FILE:testrunner> -l @@ -46,6 +48,7 @@ setup_target_for_coverage_fastcov( DEPENDENCIES testrunner FASTCOV_ARGS + --branch-coverage --include ${PROJECT_SOURCE_DIR} ${COVERAGE_ADDITIONAL_ARGS} @@ -59,6 +62,8 @@ setup_target_for_coverage_fastcov( setup_target_for_coverage_fastcov( NAME ctest_coverage + BASE_DIRECTORY + ${PROJECT_BINARY_DIR} EXECUTABLE ctest -E @@ -66,14 +71,27 @@ setup_target_for_coverage_fastcov( DEPENDENCIES all FASTCOV_ARGS + --branch-coverage --include ${PROJECT_SOURCE_DIR} ${COVERAGE_ADDITIONAL_ARGS} EXCLUDE Applications/CLI/ Tests/ + POST_CMD + perl + -i + -pe + s!${PROJECT_SOURCE_DIR}/!!g + ctest_coverage.json + NO_DEMANGLE ) if(UNIX) add_custom_target(clean_coverage find . -name '*.gcda' -delete) endif() + +configure_file( + ${PROJECT_SOURCE_DIR}/scripts/test/generate_coverage_vis_data.in.py + ${PROJECT_BINARY_DIR}/generate_coverage_vis_data.py @ONLY +) diff --git a/scripts/test/generate_coverage_vis_data.in.py b/scripts/test/generate_coverage_vis_data.in.py index 649884118d0..1944db4f297 100755 --- a/scripts/test/generate_coverage_vis_data.in.py +++ b/scripts/test/generate_coverage_vis_data.in.py @@ -2,7 +2,9 @@ import os -ctests = ["SurfaceComplexation", "EquilibriumPhase", "KineticReactant"] +# need to increase OGS_CTEST_MAX_RUNTIME to enable these: +# ctests = ["SurfaceComplexation", "EquilibriumPhase", "KineticReactant"] +ctests = ["SteadyState", "ComponentTransport", "ThermoHydroMechanics"] report_path = "./coverage_reports" os.makedirs(report_path, exist_ok=True) -- GitLab