]> git.ipfire.org Git - thirdparty/dracut.git/blobdiff - test/test-functions
10i18n: Fix keymaps not getting included sometimes
[thirdparty/dracut.git] / test / test-functions
index f27be9121a325d880030bf43aefd02cc1decd5bb..51b3df801158abe93bc1cd05f5dfe7c6bacacc11 100644 (file)
@@ -2,11 +2,11 @@
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 export PATH
 
-[[ -e .testdir ]] && . .testdir
+[[ -e .testdir${TEST_RUN_ID:+-$TEST_RUN_ID} ]] && . .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
 if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then
     TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
 fi
-echo "TESTDIR=\"$TESTDIR\"" > .testdir
+echo "TESTDIR=\"$TESTDIR\"" > .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
 export TESTDIR
 
 command -v test_check &>/dev/null || test_check() {
@@ -38,66 +38,79 @@ while (($# > 0)); do
     case $1 in
         --run)
             check_root
-           echo "TEST RUN: $TEST_DESCRIPTION"
-           test_check && test_run
-           exit $?;;
+            echo "TEST RUN: $TEST_DESCRIPTION"
+            test_check && test_run
+            exit $?;;
         --setup)
             check_root
-           echo "TEST SETUP: $TEST_DESCRIPTION"
-           test_check && test_setup
-           exit $?;;
+            echo "TEST SETUP: $TEST_DESCRIPTION"
+            test_check && test_setup
+            exit $?;;
         --clean)
-           echo "TEST CLEANUP: $TEST_DESCRIPTION"
-           test_cleanup
-           rm -fr -- "$TESTDIR"
-           rm -f -- .testdir
-           exit $?;;
+            echo "TEST CLEANUP: $TEST_DESCRIPTION"
+            test_cleanup
+            rm -fr -- "$TESTDIR"
+            rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+            exit $?;;
         --all)
             check_root
-            if ! test_check 2&>test.log ; then
-               echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
-               exit 0;
+            if ! test_check 2&>test${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
+                echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
+                exit 0;
             else
-               echo "TEST: $TEST_DESCRIPTION [STARTED]";
+                echo "TEST: $TEST_DESCRIPTION [STARTED]";
             fi
-            if [ "$V" != "1" ]; then
-               (
-                   test_setup && test_run
-                   ret=$?
-                   test_cleanup
-                   rm -fr -- "$TESTDIR"
-                   rm -f -- .testdir
-                   exit $ret
-               ) </dev/null >test.log 2>&1
-            else
+            if [[ "$V" == "1" ]]; then
+                set -o pipefail
+                (
+                    test_setup && test_run
+                    ret=$?
+                    test_cleanup
+                    if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
+                        mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+                    fi
+                    rm -fr -- "$TESTDIR"
+                    rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+                    exit $ret
+                ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+            elif [[ "$V" == "2" ]]; then
                 set -o pipefail
                 (
-                   test_setup && test_run
-                   ret=$?
-                   test_cleanup
+                    test_setup && test_run
+                    ret=$?
+                    test_cleanup
                     if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
-                        mv [[ -f "$TESTDIR"/server.log ]] ./
+                        mv "$TESTDIR"/server.log ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
                     fi
-                   rm -fr -- "$TESTDIR"
-                   rm -f -- .testdir
-                   exit $ret
-               ) </dev/null 2>&1 | tee test.log
+                    rm -fr -- "$TESTDIR"
+                    rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+                    exit $ret
+                ) </dev/null 2>&1 | $basedir/logtee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+            else
+                (
+                    test_setup && test_run
+                    ret=$?
+                    test_cleanup
+                    rm -fr -- "$TESTDIR"
+                    rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+                    exit $ret
+                ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
             fi
-           ret=$?
+            ret=$?
             set +o pipefail
-           if [ $ret -eq 0 ]; then
-                rm -- test.log
-               echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
-           else
-               echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
+            if [ $ret -eq 0 ]; then
+                rm -- test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+                echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
+            else
+                echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
                 if [ "$V" == "2" ]; then
-                   cat $(pwd)/server.log $(pwd)/test.log
-                   echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
+                    tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+                    echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
                 else
-                   echo "see $(pwd)/test.log"
+                    echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
                 fi
-           fi
-           exit $ret;;
+            fi
+            exit $ret;;
         *) break ;;
     esac
     shift