On 8/25/26 14:30, Zenghui Yu wrote:
> From: "Zenghui Yu (Huawei)" <[email protected]>
> 
> When pkeys is not supported, ksft_exit_skip() runs with ksft_plan already
> set, which takes the "ok N # SKIP" branch intended for skipping a single
> test case.  The result is a TAP plan of 5 but only one result line.
> 
>  $ ./pkey_sighandler_tests
>  TAP version 13
>  1..5
>  ok 1 # SKIP pkeys not supported
>  # 1 skipped test(s) detected. Consider enabling relevant config options to 
> improve coverage.
>  # Planned tests != run tests (5 != 1)
>  # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0
> 
> Move ksft_set_plan() after the skip check so ksft_exit_skip() takes
> the "1..0 # SKIP" branch, the correct TAP representation for
> skipping an entire test file.
> 
>  $ ./pkey_sighandler_tests
>  TAP version 13
>  1..0 # SKIP pkeys not supported
> 
> Signed-off-by: Zenghui Yu (Huawei) <[email protected]>
> ---
>  tools/testing/selftests/mm/pkey_sighandler_tests.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/mm/pkey_sighandler_tests.c 
> b/tools/testing/selftests/mm/pkey_sighandler_tests.c
> index c218d0510a2a..74bf79a5399d 100644
> --- a/tools/testing/selftests/mm/pkey_sighandler_tests.c
> +++ b/tools/testing/selftests/mm/pkey_sighandler_tests.c
> @@ -543,11 +543,12 @@ static void (*pkey_tests[])(void) = {
>  int main(int argc, char *argv[])
>  {
>       ksft_print_header();
> -     ksft_set_plan(ARRAY_SIZE(pkey_tests));
>  
>       if (!is_pkeys_supported())
>               ksft_exit_skip("pkeys not supported\n");
>  
> +     ksft_set_plan(ARRAY_SIZE(pkey_tests));
> +
>       for (test_nr = 0; test_nr < ARRAY_SIZE(pkey_tests); test_nr++) {
>               tracing_on();
>               (*pkey_tests[test_nr])();

We also handle it like that in soft-dirty.c, so why not

Acked-by: David Hildenbrand (Arm) <[email protected]>


-- 
Cheers,

David

Reply via email to