From: Dan Streetman Date: Fri, 12 Jul 2019 18:09:48 +0000 (-0400) Subject: test: ignore errors during test cleanup, so cleanup can finish X-Git-Tag: v243-rc1~104^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f85bc044e5c2d862d86b9dd0fcef5e8aa2928f06;p=thirdparty%2Fsystemd.git test: ignore errors during test cleanup, so cleanup can finish Also move TESTDIR and STATEFILE removal into test_cleanup --- diff --git a/test/TEST-02-CRYPTSETUP/test.sh b/test/TEST-02-CRYPTSETUP/test.sh index e28cec0340b..2dd2cce6e5c 100755 --- a/test/TEST-02-CRYPTSETUP/test.sh +++ b/test/TEST-02-CRYPTSETUP/test.sh @@ -83,7 +83,8 @@ cleanup_root_var() { } test_cleanup() { - cleanup_root_var + # ignore errors, so cleanup can continue + cleanup_root_var || true _test_cleanup } diff --git a/test/test-functions b/test/test-functions index f652e82dd07..17cb22be762 100644 --- a/test/test-functions +++ b/test/test-functions @@ -1706,14 +1706,20 @@ test_setup_cleanup() { } _test_cleanup() { - if mountpoint $TESTDIR/root; then - ddebug "umount $TESTDIR/root" - umount $TESTDIR/root - fi - if [[ $LOOPDEV && -b $LOOPDEV ]]; then - ddebug "losetup -d $LOOPDEV" - losetup -d $LOOPDEV - fi + # (post-test) cleanup should always ignore failure and cleanup as much as possible + ( + set +e + if mountpoint $TESTDIR/root; then + ddebug "umount $TESTDIR/root" + umount $TESTDIR/root + fi + if [[ $LOOPDEV && -b $LOOPDEV ]]; then + ddebug "losetup -d $LOOPDEV" + losetup -d $LOOPDEV + fi + rm -fr "$TESTDIR" + rm -f "$STATEFILE" + ) || true } # can be overridden in specific test @@ -1787,22 +1793,16 @@ do_test() { --clean) echo "TEST CLEANUP: $TEST_DESCRIPTION" test_cleanup - rm -fr "$TESTDIR" - rm -f "$STATEFILE" ;; --all) ret=0 - echo -n "TEST: $TEST_DESCRIPTION "; + echo -n "TEST: $TEST_DESCRIPTION " ( test_setup test_setup_cleanup test_run - ret=$? - test_cleanup - rm -fr "$TESTDIR" - rm -f "$STATEFILE" - exit $ret ) "$TESTLOG" 2>&1 || ret=$? + test_cleanup if [ $ret -eq 0 ]; then rm "$TESTLOG" echo "[OK]"