From: "Mike Rapoport (Microsoft)" <[email protected]>

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.

Reviewed by: Donet Tom <[email protected]>

Reviewed-by: Mark Brown <[email protected]>
Signed-off-by: Mike Rapoport (Microsoft) <[email protected]>
---
 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++;
-- 
2.53.0


Reply via email to