Skip to content
Commit 8487c78f authored by Ramon Nou's avatar Ramon Nou
Browse files

Enable coverage information generation and tracking

This MR enables the generation of code coverage reports for the source code. More specifically, it introduces the following changes:

- Adds the `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.
- Adds `gcovr` to GekkoFS docker build image.
- Adds a `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/.*`).
- Adds a new `report` stage in the CI pipeline that upon completion generates artifacts both for a Cobertura XML and a HTML code coverage reports.

See merge request hpc/gekkofs!77
parents 460cabe0 2c750281
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment