zram.sh, the kselftest target, prints raw banners and runs zram01.sh and zram02.sh ignoring their exit status: both scripts always exit 0 and report the result with a plain "[PASS]"/"[FAIL]" echo, so the harness always sees success no matter what the tests did.
Emit the TAP header and plan up front, report each sub-test from its exit code and fold its output into "#" diagnostics, and skip both sub-tests through the ktap helpers when not run as root. zram01.sh and zram02.sh now exit non-zero on failure, and check_prereqs() prints a "1..0 # SKIP" line for standalone runs. No test logic changes. Tested on x86_64: both sub-tests pass as root, and are reported as SKIP with the plan and totals lines when not run as root. Signed-off-by: Song Hu <[email protected]> --- tools/testing/selftests/zram/zram.sh | 43 +++++++++++++++++++++------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/tools/testing/selftests/zram/zram.sh b/tools/testing/selftests/zram/zram.sh index b0b91d9b0dc2..e39a84420d18 100755 --- a/tools/testing/selftests/zram/zram.sh +++ b/tools/testing/selftests/zram/zram.sh @@ -1,18 +1,39 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 -TCID="zram.sh" -. ./zram_lib.sh +# KTAP output helpers (ktap_test_pass, ktap_test_fail, ...). +DIR="$(dirname "$(readlink -f "$0")")" +# shellcheck source=../kselftest/ktap_helpers.sh +source "${DIR}"/../kselftest/ktap_helpers.sh -run_zram () { -echo "--------------------" -echo "running zram tests" -echo "--------------------" -./zram01.sh -echo "" -./zram02.sh +ktap_print_header +ktap_set_plan 2 + +if [ "$(id -u)" -ne 0 ]; then + ktap_test_skip "zram01.sh: must be run as root" + ktap_test_skip "zram02.sh: must be run as root" + ktap_finished +fi + +# Run a sub-test, fold its output into "# " diagnostic lines and report its +# exit code as the KTAP result. +run_one() +{ + local script=$1 + + "${DIR}/$script" 2>&1 | sed 's/^/# /' + local rc=${PIPESTATUS[0]} + + if [ "$rc" -eq 0 ]; then + ktap_test_pass "$script" + elif [ "$rc" -eq "$KSFT_SKIP" ]; then + ktap_test_skip "$script" + else + ktap_test_fail "$script" + fi } -check_prereqs +run_one zram01.sh +run_one zram02.sh -run_zram +ktap_finished -- 2.43.0

