mirror of
https://github.com/systemd/systemd.git
synced 2024-11-27 04:03:36 +08:00
test: dump a simple summary at the end of TEST-02-UNITTEST
Let's dump a list of skipped tests and logs from failed tests at the end
of TEST-02-UNITTEST to make debugging fails in CI slightly less painful.
(cherry picked from commit 2ac0e52f29
)
This commit is contained in:
parent
70f5fb2f7a
commit
4a468387ac
@ -37,12 +37,4 @@ test_append_files() {
|
||||
fi
|
||||
}
|
||||
|
||||
check_result_nspawn() {
|
||||
check_result_nspawn_unittests "${1}"
|
||||
}
|
||||
|
||||
check_result_qemu() {
|
||||
check_result_qemu_unittests
|
||||
}
|
||||
|
||||
do_test "$@"
|
||||
|
@ -1860,74 +1860,6 @@ check_result_qemu() {
|
||||
return $ret
|
||||
}
|
||||
|
||||
check_result_nspawn_unittests() {
|
||||
local workspace="${1:?}"
|
||||
local ret=1
|
||||
|
||||
[[ -e "$workspace/testok" ]] && ret=0
|
||||
|
||||
if [[ -s "$workspace/failed" ]]; then
|
||||
ret=$((ret + 1))
|
||||
echo "=== Failed test log ==="
|
||||
cat "$workspace/failed"
|
||||
else
|
||||
if [[ -s "$workspace/skipped" ]]; then
|
||||
echo "=== Skipped test log =="
|
||||
cat "$workspace/skipped"
|
||||
# We might have only skipped tests - that should not fail the job
|
||||
ret=0
|
||||
fi
|
||||
if [[ -s "$workspace/testok" ]]; then
|
||||
echo "=== Passed tests ==="
|
||||
cat "$workspace/testok"
|
||||
fi
|
||||
fi
|
||||
|
||||
get_bool "${TIMED_OUT:=}" && ret=1
|
||||
check_coverage_reports "$workspace" || ret=5
|
||||
|
||||
save_journal "$workspace/var/log/journal" $ret
|
||||
echo "${JOURNAL_LIST:-"No journals were saved"}"
|
||||
|
||||
_umount_dir "${initdir:?}"
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
check_result_qemu_unittests() {
|
||||
local ret=1
|
||||
|
||||
mount_initdir
|
||||
[[ -e "${initdir:?}/testok" ]] && ret=0
|
||||
|
||||
if [[ -s "$initdir/failed" ]]; then
|
||||
ret=$((ret + 1))
|
||||
echo "=== Failed test log ==="
|
||||
cat "$initdir/failed"
|
||||
else
|
||||
if [[ -s "$initdir/skipped" ]]; then
|
||||
echo "=== Skipped test log =="
|
||||
cat "$initdir/skipped"
|
||||
# We might have only skipped tests - that should not fail the job
|
||||
ret=0
|
||||
fi
|
||||
if [[ -s "$initdir/testok" ]]; then
|
||||
echo "=== Passed tests ==="
|
||||
cat "$initdir/testok"
|
||||
fi
|
||||
fi
|
||||
|
||||
get_bool "${TIMED_OUT:=}" && ret=1
|
||||
check_coverage_reports "$initdir" || ret=5
|
||||
|
||||
save_journal "$initdir/var/log/journal" $ret
|
||||
echo "${JOURNAL_LIST:-"No journals were saved"}"
|
||||
|
||||
_umount_dir "$initdir"
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
create_rc_local() {
|
||||
dinfo "Create rc.local"
|
||||
mkdir -p "${initdir:?}/etc/rc.d"
|
||||
|
@ -95,6 +95,20 @@ export -f run_test
|
||||
find /usr/lib/systemd/tests/unit-tests/ -maxdepth 1 -type f -name "${TESTS_GLOB}" -print0 |
|
||||
xargs -0 -I {} --max-procs="$MAX_QUEUE_SIZE" bash -ec "run_test {}"
|
||||
|
||||
# Write all pending messages, so they don't get mixed with the summaries below
|
||||
journalctl --sync
|
||||
|
||||
# No need for full test logs in this case
|
||||
if [[ -s /skipped-tests ]]; then
|
||||
: "=== SKIPPED TESTS ==="
|
||||
cat /skipped-tests
|
||||
fi
|
||||
|
||||
if [[ -s /failed ]]; then
|
||||
: "=== FAILED TESTS ==="
|
||||
cat /failed
|
||||
fi
|
||||
|
||||
# Test logs are sometimes lost, as the system shuts down immediately after
|
||||
journalctl --sync
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user