Re: [PATCH 15/53] selftests/mm: protection_keys: use descriptive test names in TAP output

Donet Tom
2026-04-14T10:23:17Z

Hi Mike

On 4/6/26 7:46 PM, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
>
> Replace the numeric test index in TAP output with the actual test
> function name.
>
> Use a structure containing function pointer and its name rather than
> only the function pointer in the pkey_tests array.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> ---
> tools/testing/selftests/mm/protection_keys.c | 55 +++++++++++---------
> 1 file changed, 31 insertions(+), 24 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/protection_keys.c b/tools/testing/selftests/mm/protection_keys.c
> index 2085982dba69..80c6124e8378 100644
> --- a/tools/testing/selftests/mm/protection_keys.c
> +++ b/tools/testing/selftests/mm/protection_keys.c
> @@ -1692,29 +1692,36 @@ static void test_mprotect_pkey_on_unsupported_cpu(int *ptr, u16 pkey)
> pkey_assert(sret < 0);
> }
>
> -static void (*pkey_tests[])(int *ptr, u16 pkey) = {
> - test_read_of_write_disabled_region,
> - test_read_of_access_disabled_region,
> - test_read_of_access_disabled_region_with_page_already_mapped,
> - test_write_of_write_disabled_region,
> - test_write_of_write_disabled_region_with_page_already_mapped,
> - test_write_of_access_disabled_region,
> - test_write_of_access_disabled_region_with_page_already_mapped,
> - test_kernel_write_of_access_disabled_region,
> - test_kernel_write_of_write_disabled_region,
> - test_kernel_gup_of_access_disabled_region,
> - test_kernel_gup_write_to_write_disabled_region,
> - test_executing_on_unreadable_memory,
> - test_implicit_mprotect_exec_only_memory,
> - test_mprotect_with_pkey_0,
> - test_ptrace_of_child,
> - test_pkey_init_state,
> - test_pkey_syscalls_on_non_allocated_pkey,
> - test_pkey_syscalls_bad_args,
> - test_pkey_alloc_exhaust,
> - test_pkey_alloc_free_attach_pkey0,
> +struct pkey_test {
> + void (*func)(int *ptr, u16 pkey);
> + const char *name;
> +};
> +
> +#define PKEY_TEST(fn) { fn, #fn }
> +
> +static struct pkey_test pkey_tests[] = {
> + PKEY_TEST(test_read_of_write_disabled_region),
> + PKEY_TEST(test_read_of_access_disabled_region),
> + PKEY_TEST(test_read_of_access_disabled_region_with_page_already_mapped),
> + PKEY_TEST(test_write_of_write_disabled_region),
> + PKEY_TEST(test_write_of_write_disabled_region_with_page_already_mapped),
> + PKEY_TEST(test_write_of_access_disabled_region),
> + PKEY_TEST(test_write_of_access_disabled_region_with_page_already_mapped),
> + PKEY_TEST(test_kernel_write_of_access_disabled_region),
> + PKEY_TEST(test_kernel_write_of_write_disabled_region),
> + PKEY_TEST(test_kernel_gup_of_access_disabled_region),
> + PKEY_TEST(test_kernel_gup_write_to_write_disabled_region),
> + PKEY_TEST(test_executing_on_unreadable_memory),
> + PKEY_TEST(test_implicit_mprotect_exec_only_memory),
> + PKEY_TEST(test_mprotect_with_pkey_0),
> + PKEY_TEST(test_ptrace_of_child),
> + PKEY_TEST(test_pkey_init_state),
> + PKEY_TEST(test_pkey_syscalls_on_non_allocated_pkey),
> + PKEY_TEST(test_pkey_syscalls_bad_args),
> + PKEY_TEST(test_pkey_alloc_exhaust),
> + PKEY_TEST(test_pkey_alloc_free_attach_pkey0),
> #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
> - test_ptrace_modifies_pkru,
> + PKEY_TEST(test_ptrace_modifies_pkru),
> #endif
> };
>
> @@ -1735,7 +1742,7 @@ static void run_tests_once(void)
> dprintf1("test %d starting with pkey: %d\n", test_nr, pkey);
> ptr = malloc_pkey(PAGE_SIZE, prot, pkey);
> dprintf1("test %d starting...\n", test_nr);
> - pkey_tests[test_nr](ptr, pkey);
> + pkey_tests[test_nr].func(ptr, pkey);
> dprintf1("freeing test memory: %p\n", ptr);
> free_pkey_malloc(ptr);
> sys_pkey_free(pkey);
> @@ -1746,7 +1753,7 @@ static void run_tests_once(void)
> tracing_off();
> close_test_fds();
>
> - printf("test %2d PASSED (iteration %d)\n", test_nr, iteration_nr);
> + printf("test %s PASSED (iteration %d)\n", pkey_tests[test_nr].name, iteration_nr);
> dprintf1("======================\n\n");
> }
> iteration_nr++;

LGTM

Reviewed by: Donet Tom <donettom@linux.ibm.com>

-Donet