CMake/gkfs-code-coverage.cmake
0 → 100644
+82
−0
+54
−9
+10
−0
+1
−0
Loading
This MR enables the generation of code coverage reports for the source code. More specifically, it introduces the following changes:
gkfs-code-coverage.cmake CMake script under {PROJECT_ROOT}/CMake/ and includes it in the project's main CMakeLists.txt. This script defines the GKFS_ENABLE_CODE_COVERAGE option to control whether code coverage should be enabled when building, as well as the target_code_coverage() function to ensure that the appropriate flags are added to a CMake target.gcovr to GekkoFS docker build image.coverage.sh script under {PROJECT_ROOT}/scripts/ci that provides both a capture and a merge work modes. This script abstracts away the direct usage of gcovr and allows the appropriate generation of coverage reports when running tests in parallel in the CI. The script relies on a .coverage-exclusions file (also under {PROJECT_ROOT}/scripts/ci) to control which paths should be excluded from coverage reporting (e.g. /usr/include/.*).report stage in the CI pipeline that upon completion generates artifacts both for a Cobertura XML and a HTML code coverage reports.