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 @@
],
"cacheVariables": {
"OGS_COVERAGE": "ON",
"CODE_COVERAGE_VERBOSE": "ON"
"CODE_COVERAGE_VERBOSE": "ON",
"OGS_CTEST_MAX_RUNTIME": "5"
}
},
{
......
......@@ -3,15 +3,29 @@ code coverage:
extends:
- .template-build-linux
tags: [shell, envinf]
needs:
- job: "build linux: [USE_PYTHON=ON]"
artifacts: false
variables:
CMAKE_PRESET: coverage
TARGETS: testrunner_coverage
TARGETS: "testrunner_coverage ctest_coverage"
before_script:
# 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:
expose_as: 'Coverage'
paths:
- Coverage.html
- build/coverage/testrunner_coverage
- build/coverage/coverage_report
- build/coverage/coverage.json
- build/coverage/coverage.xml
expire_in: 1 week
reports:
cobertura: build/coverage/coverage.xml
......@@ -10,7 +10,7 @@ endif()
CPMAddPackage(
NAME cmake-modules
GITHUB_REPOSITORY bilke/cmake-modules
GIT_TAG 0503702f2ef733aa8f6a0c2015db89b085c5ac57
GIT_TAG cdc041689061fbb2df086b059fe71ac868cf626d
DOWNLOAD_ONLY YES
)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
......
......@@ -37,7 +37,7 @@ setup_target_for_coverage_fastcov(
# TODO: segfault in Vtu2Grid
setup_target_for_coverage_fastcov(
NAME ctest_coverage
EXECUTABLE ctest -E "partmesh|Vtu2Grid"
EXECUTABLE ctest -E "Vtu2Grid"
DEPENDENCIES all
FASTCOV_ARGS --include ${PROJECT_SOURCE_DIR}
${COVERAGE_ADDITIONAL_ARGS}
......
......@@ -81,8 +81,10 @@ function (AddTest)
${AddTest_SOURCE_PATH}/${AddTest_EXECUTABLE_ARGS})
endif()
if(${AddTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
if(DEFINED OGS_CTEST_MAX_RUNTIME)
if(${AddTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
endif()
endif()
if(${AddTest_RUNTIME} GREATER ${ogs.ctest.large_runtime})
string(PREPEND AddTest_NAME "LARGE_")
......
......@@ -21,8 +21,10 @@ function (OgsTest)
set(OgsTest_RUNTIME 1)
endif()
if(${OgsTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
if(DEFINED OGS_CTEST_MAX_RUNTIME)
if(${OgsTest_RUNTIME} GREATER ${OGS_CTEST_MAX_RUNTIME})
return()
endif()
endif()
if(${OgsTest_RUNTIME} GREATER ${ogs.ctest.large_runtime})
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