mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
Merge pull request #22505 from mrc0mmand/more-coverage-tweaks
A couple of coverage-related tweaks
This commit is contained in:
commit
fdf9de694f
@ -1070,6 +1070,9 @@ install_compiled_systemd() {
|
|||||||
if get_bool "$IS_BUILT_WITH_COVERAGE"; then
|
if get_bool "$IS_BUILT_WITH_COVERAGE"; then
|
||||||
mkdir -p "${initdir}/${BUILD_DIR:?}/"
|
mkdir -p "${initdir}/${BUILD_DIR:?}/"
|
||||||
rsync -am --include='*/' --include='*.gcno' --exclude='*' "${BUILD_DIR:?}/" "${initdir}/${BUILD_DIR:?}/"
|
rsync -am --include='*/' --include='*.gcno' --exclude='*' "${BUILD_DIR:?}/" "${initdir}/${BUILD_DIR:?}/"
|
||||||
|
# Set effective & default ACLs for the build dir so unprivileged
|
||||||
|
# processes can write gcda files with coverage stats
|
||||||
|
setfacl -R -m 'd:o:rwX' -m 'o:rwX' "${initdir}/${BUILD_DIR:?}/"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1384,6 +1387,20 @@ check_coverage_reports() {
|
|||||||
lcov --remove "${dest}" -o "${dest}" '/usr/include/*' '/usr/lib/*'
|
lcov --remove "${dest}" -o "${dest}" '/usr/include/*' '/usr/lib/*'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If the test logs contain lines like:
|
||||||
|
#
|
||||||
|
# ...systemd-resolved[735885]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-250.a.p/base-filesystem.c.gcda:Cannot open
|
||||||
|
#
|
||||||
|
# it means we're possibly missing some coverage since gcov can't write the stats,
|
||||||
|
# usually due to the sandbox being too restrictive (e.g. ProtectSystem=yes,
|
||||||
|
# ProtectHome=yes) or the $BUILD_DIR being inaccessible to non-root users - see
|
||||||
|
# `setfacl` stuff in install_compiled_systemd().
|
||||||
|
|
||||||
|
if "${JOURNALCTL:?}" -q --no-pager -D "${root:?}/var/log/journal" --grep "profiling:.+?gcda:[Cc]annot open"; then
|
||||||
|
derror "Detected possibly missing coverage, check the journal"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user