On Wed Feb 25, 2026 at 1:08 AM UTC, Hangbin Liu wrote:
> Instead of manually writing ktap messages, we should use the formal
> ktap helpers in runner.sh. Brendan did some work in d9e6269e3303
> ("selftests/run_kselftest.sh: exit with error if tests fail") to make
> run_kselftest.sh exit with the correct return value. However, the output
> does not include the total results, such as how many tests passed or failed.
>
> Let’s convert all manually printed messages in runner.sh to use the
> formal ktap helpers. Here are what I changed:
>
> 1. Move TAP header from runner.sh to run_kselftest.sh, since
> run_kselftest.sh
> is the only caller of run_many().
> 2. In run_kselftest.sh, call run_many() in main process to count the
> pass/fail numbers.
> 3. In run_kselftest.sh, do not generate kselftest_failures_file. Just
> use ktap_print_totals to report the result.
> 4. In runner.sh run_one(), get the return value and use ktap helpers for
> all pass/fail reporting. This allows counting pass/fail numbers in the
> main process.
> 5. In runner.sh run_in_netns(), also return the correct rc, so we can
> count results during wait.
>
> After the change, the printed result looks like:
>
> not ok 4 4 selftests: clone3: clone3_cap_checkpoint_restore # exit=1
> # Totals: pass:3 fail:1 xfail:0 xpass:0 skip:0 error:0
>
> ]# echo $?
> 1
>
> Tested-by: Brendan Jackman <[email protected]>
Thanks,
Reviewed-by: Brendan Jackman <[email protected]>