summaryrefslogtreecommitdiff
path: root/.gitlab-ci/coverage-docker.sh
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci/coverage-docker.sh')
-rwxr-xr-x.gitlab-ci/coverage-docker.sh16
1 files changed, 15 insertions, 1 deletions
diff --git a/.gitlab-ci/coverage-docker.sh b/.gitlab-ci/coverage-docker.sh
index df3273fa0..6367f5e14 100755
--- a/.gitlab-ci/coverage-docker.sh
+++ b/.gitlab-ci/coverage-docker.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-set -e
+set -ex
# Fixup Windows paths
python3 ./.gitlab-ci/fixup-cov-paths.py _coverage/*.lcov
@@ -10,6 +10,20 @@ 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"
+ cobertura_xml="${cobertura_base}.xml"
+ lcov_cobertura "${path}" --output "${cobertura_xml}"
+ mkdir -p "${cobertura_base}"
+ cobertura-split-by-package.py "${cobertura_xml}" "${cobertura_base}"
+ rm -f "${cobertura_xml}"
done
genhtml \