Skip to content
Snippets Groups Projects
Verified Commit 79efe512 authored by Lars Bilke's avatar Lars Bilke
Browse files

[ci] Create a combined coverage report of testrunner and ctests.

Runs all ctests with a RUNTIME < 5 including utils tests.

Creates combined reports in these formats:

- html (build/coverage/coverage_report/index.html)
- json (build/coverage/coverage.json)
- xml (build/coverage/coverage.xml)
parent 51a23495
No related branches found
No related tags found
No related merge requests found
...@@ -159,7 +159,8 @@ ...@@ -159,7 +159,8 @@
], ],
"cacheVariables": { "cacheVariables": {
"OGS_COVERAGE": "ON", "OGS_COVERAGE": "ON",
"CODE_COVERAGE_VERBOSE": "ON" "CODE_COVERAGE_VERBOSE": "ON",
"OGS_CTEST_MAX_RUNTIME": "5"
} }
}, },
{ {
......
...@@ -3,15 +3,29 @@ code coverage: ...@@ -3,15 +3,29 @@ code coverage:
extends: extends:
- .template-build-linux - .template-build-linux
tags: [shell, envinf] tags: [shell, envinf]
needs:
- job: "build linux: [USE_PYTHON=ON]"
artifacts: false
variables: variables:
CMAKE_PRESET: coverage CMAKE_PRESET: coverage
TARGETS: testrunner_coverage TARGETS: "testrunner_coverage ctest_coverage"
before_script: before_script:
# HACK to easier linking to the generated pages # HACK to easier linking to the generated pages
- echo '<meta http-equiv="REFRESH" content="0;URL=build/coverage/testrunner_coverage/index.html">' >> Coverage.html - echo '<meta http-equiv="REFRESH" content="0;URL=build/coverage/coverage_report/index.html">' >> Coverage.html
after_script:
- cd build/coverage
- poetry run fastcov -C testrunner_coverage.info ctest_coverage.info --lcov -o coverage.info
- poetry run fastcov -C testrunner_coverage.info ctest_coverage.info -o coverage.json
- 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
artifacts: artifacts:
expose_as: 'Coverage' expose_as: 'Coverage'
paths: paths:
- Coverage.html - Coverage.html
- build/coverage/testrunner_coverage - build/coverage/coverage_report
- build/coverage/coverage.json
- build/coverage/coverage.xml
expire_in: 1 week expire_in: 1 week
reports:
cobertura: build/coverage/coverage.xml
...@@ -10,7 +10,7 @@ endif() ...@@ -10,7 +10,7 @@ endif()
CPMAddPackage( CPMAddPackage(
NAME cmake-modules NAME cmake-modules
GITHUB_REPOSITORY bilke/cmake-modules GITHUB_REPOSITORY bilke/cmake-modules
GIT_TAG 0503702f2ef733aa8f6a0c2015db89b085c5ac57 GIT_TAG cdc041689061fbb2df086b059fe71ac868cf626d
DOWNLOAD_ONLY YES DOWNLOAD_ONLY YES
) )
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
......
...@@ -37,7 +37,7 @@ setup_target_for_coverage_fastcov( ...@@ -37,7 +37,7 @@ setup_target_for_coverage_fastcov(
# TODO: segfault in Vtu2Grid # TODO: segfault in Vtu2Grid
setup_target_for_coverage_fastcov( setup_target_for_coverage_fastcov(
NAME ctest_coverage NAME ctest_coverage
EXECUTABLE ctest -E "partmesh|Vtu2Grid" EXECUTABLE ctest -E "Vtu2Grid"
DEPENDENCIES all DEPENDENCIES all
FASTCOV_ARGS --include ${PROJECT_SOURCE_DIR} FASTCOV_ARGS --include ${PROJECT_SOURCE_DIR}
${COVERAGE_ADDITIONAL_ARGS} ${COVERAGE_ADDITIONAL_ARGS}
......
...@@ -81,8 +81,10 @@ function (AddTest) ...@@ -81,8 +81,10 @@ function (AddTest)
${AddTest_SOURCE_PATH}/${AddTest_EXECUTABLE_ARGS}) ${AddTest_SOURCE_PATH}/${AddTest_EXECUTABLE_ARGS})
endif() endif()
if(${AddTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME}) if(DEFINED OGS_CTEST_MAX_RUNTIME)
return() if(${AddTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
endif()
endif() endif()
if(${AddTest_RUNTIME} GREATER ${ogs.ctest.large_runtime}) if(${AddTest_RUNTIME} GREATER ${ogs.ctest.large_runtime})
string(PREPEND AddTest_NAME "LARGE_") string(PREPEND AddTest_NAME "LARGE_")
......
...@@ -21,8 +21,10 @@ function (OgsTest) ...@@ -21,8 +21,10 @@ function (OgsTest)
set(OgsTest_RUNTIME 1) set(OgsTest_RUNTIME 1)
endif() endif()
if(${OgsTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME}) if(DEFINED OGS_CTEST_MAX_RUNTIME)
return() if(${OgsTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
endif()
endif() endif()
if(${OgsTest_RUNTIME} GREATER ${ogs.ctest.large_runtime}) if(${OgsTest_RUNTIME} GREATER ${ogs.ctest.large_runtime})
string(APPEND OgsTest_NAME_WE "-LARGE") string(APPEND OgsTest_NAME_WE "-LARGE")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment