ci: Exclude copylibs and fuzz tests from code coverage

The fuzz tests are run on a separate CI system, and we don’t care what
their code coverage is. The only reason they’re run on our CI systems at
all is as a smokecheck. They are not unit tests that we want to check
are running every line.

Similarly, exclude copylibs/subprojects as GLib is not responsible for
testing them. They have (or should have) their own unit tests and code
coverage metrics in their upstreams.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
Philip Withnall 2022-11-10 14:56:34 +00:00
parent 7077e7d819
commit e960529532

View File

@ -10,6 +10,12 @@ for path in _coverage/*.lcov; do
lcov --config-file .lcovrc -r "${path}" '*/_build/*' -o "$(pwd)/${path}"
# Remove any coverage from system files
lcov --config-file .lcovrc -e "${path}" "$(pwd)/*" -o "$(pwd)/${path}"
# Remove coverage from the fuzz tests, since they are run on a separate CI system
lcov --config-file .lcovrc -r "${path}" "*/fuzzing/*" -o "$(pwd)/${path}"
# Remove coverage from copylibs and subprojects
for lib in xdgmime libcharset gnulib; do
lcov --config-file .lcovrc -r "${path}" "*/${lib}/*" -o "$(pwd)/${path}"
done
# Convert to cobertura format for gitlab integration
cobertura_base="${path/.lcov}-cobertura"