From 4a468387acbc8a2bd51bffaeca242e415e55b614 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Wed, 12 Jun 2024 12:09:25 +0200 Subject: [PATCH] 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 2ac0e52f29eb5f0040882fc46bcfa369893577f3) --- test/TEST-02-UNITTESTS/test.sh | 8 ---- test/test-functions | 68 --------------------------------- test/units/TEST-02-UNITTESTS.sh | 14 +++++++ 3 files changed, 14 insertions(+), 76 deletions(-) diff --git a/test/TEST-02-UNITTESTS/test.sh b/test/TEST-02-UNITTESTS/test.sh index f165c99368..2cf9c31096 100755 --- a/test/TEST-02-UNITTESTS/test.sh +++ b/test/TEST-02-UNITTESTS/test.sh @@ -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 "$@" diff --git a/test/test-functions b/test/test-functions index be6eb1d9b2..8b497b2e27 100644 --- a/test/test-functions +++ b/test/test-functions @@ -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" diff --git a/test/units/TEST-02-UNITTESTS.sh b/test/units/TEST-02-UNITTESTS.sh index 6392425130..4448643f9a 100755 --- a/test/units/TEST-02-UNITTESTS.sh +++ b/test/units/TEST-02-UNITTESTS.sh @@ -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