From: Frantisek Sumsal Date: Mon, 25 Oct 2021 09:35:47 +0000 (+0200) Subject: test: merge coverage reports from previous test runs X-Git-Tag: v250-rc1~434^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F21117%2Fhead;p=thirdparty%2Fsystemd.git test: merge coverage reports from previous test runs Relevant mainly for tests which utilize both QEMU and nspawn. --- diff --git a/test/test-functions b/test/test-functions index cd9d01f3454..79a7f5a71c5 100644 --- a/test/test-functions +++ b/test/test-functions @@ -1316,8 +1316,19 @@ check_coverage_reports() { # Create a coverage report that will later be uploaded. Remove info about # system libraries/headers, as we don't really care about them. - lcov --directory "${root}/${BUILD_DIR:?}" --capture --output-file "${dest}" - lcov --remove "${dest}" -o "${dest}" '/usr/include/*' '/usr/lib/*' + if [[ -f "$dest" ]]; then + # If the destination report file already exists, don't overwrite it, but + # dump the new report in a temporary file and then merge it with the already + # present one - this usually happens when running both "parts" of a test + # in one run (the qemu and the nspawn part). + lcov --directory "${root}/${BUILD_DIR:?}" --capture --output-file "${dest}.new" + lcov --remove "${dest}.new" -o "${dest}.new" '/usr/include/*' '/usr/lib/*' + lcov --add-tracefile "${dest}" --add-tracefile "${dest}.new" -o "${dest}" + rm -f "${dest}.new" + else + lcov --directory "${root}/${BUILD_DIR:?}" --capture --output-file "${dest}" + lcov --remove "${dest}" -o "${dest}" '/usr/include/*' '/usr/lib/*' + fi return 0 }