diff options
Diffstat (limited to '.gitlab-ci/coverage-docker.sh')
-rwxr-xr-x | .gitlab-ci/coverage-docker.sh | 16 |
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 \ |