diff --git a/tests/funcs/exec.sh b/tests/funcs/exec.sh index 0aa595eb..a53e72e8 100644 --- a/tests/funcs/exec.sh +++ b/tests/funcs/exec.sh @@ -7,8 +7,9 @@ t_status_msg() export T_PASS_STATUS=100 export T_SKIP_STATUS=101 export T_FAIL_STATUS=102 +export T_SKIP_PERMITTED_STATUS=103 export T_FIRST_STATUS="$T_PASS_STATUS" -export T_LAST_STATUS="$T_FAIL_STATUS" +export T_LAST_STATUS="$T_SKIP_PERMITTED_STATUS" t_pass() { @@ -21,6 +22,17 @@ t_skip() exit $T_SKIP_STATUS } +# +# This exit code is *reserved* for tests that are up-front never going to work +# in certain cases. This should be expressly documented per-case and made +# abundantly clear before merging. The test itself should document its case. +# +t_skip_permitted() +{ + t_status_msg "$@" + exit $T_SKIP_PERMITTED_STATUS +} + t_fail() { t_status_msg "$@" diff --git a/tests/run-tests.sh b/tests/run-tests.sh index fe28a8a6..891f7dfb 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -515,6 +515,7 @@ msg "running tests" passed=0 skipped=0 failed=0 +skipped_permitted=0 for t in $tests; do # tests has basenames from sequence, get path and name t="tests/$t" @@ -621,6 +622,10 @@ for t in $tests; do grep -s -v "^$test_name " "$last" > "$last.tmp" echo "$test_name $stats" >> "$last.tmp" mv -f "$last.tmp" "$last" + elif [ "$sts" == "$T_SKIP_PERMITTED_STATUS" ]; then + echo " [ skipped (permitted): $message ]" + echo "$test_name skipped (permitted) $message " >> "$T_RESULTS/skip.log" + ((skipped_permitted++)) elif [ "$sts" == "$T_SKIP_STATUS" ]; then echo " [ skipped: $message ]" echo "$test_name $message" >> "$T_RESULTS/skip.log" @@ -634,7 +639,7 @@ for t in $tests; do fi done -msg "all tests run: $passed passed, $skipped skipped, $failed failed" +msg "all tests run: $passed passed, $skipped skipped, $skipped_permitted skipped (permitted), $failed failed" if [ -n "$T_TRACE_GLOB" -o -n "$T_TRACE_PRINTK" ]; then diff --git a/tests/tests/format-version-forward-back.sh b/tests/tests/format-version-forward-back.sh index 404660b5..a5dde26b 100644 --- a/tests/tests/format-version-forward-back.sh +++ b/tests/tests/format-version-forward-back.sh @@ -13,7 +13,7 @@ # not supported on el9! if [ $(source /etc/os-release ; echo ${VERSION_ID:0:1}) -gt 8 ]; then - t_skip "Unsupported OS version" + t_skip_permitted "Unsupported OS version" fi mount_has_format_version()