]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/mm: va_high_addr_switch: use kselftest framework
authorMike Rapoport (Microsoft) <rppt@kernel.org>
Mon, 11 May 2026 16:28:05 +0000 (19:28 +0300)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 21 Jun 2026 18:37:22 +0000 (11:37 -0700)
Convert va_high_addr_switch test to use kselftest framework for reporting
and tracking successful and failing runs.

Link: https://lore.kernel.org/20260511162840.375890-22-rppt@kernel.org
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
Tested-by: Luiz Capitulino <luizcap@redhat.com>
Tested-by: Sarthak Sharma <sarthak.sharma@arm.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Donet Tom <donettom@linux.ibm.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Liam Howlett <liam@infradead.org>
Cc: Li Wang <li.wang@linux.dev>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Nico Pache <npache@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/va_high_addr_switch.c

index 51401e081b209a80cd866019f098e897aec8fa2c..5d38735ea60e22d317a96211493ede2c37b12df8 100644 (file)
@@ -257,40 +257,35 @@ void testcases_init(void)
        switch_hint = addr_switch_hint;
 }
 
-static int run_test(struct testcase *test, int count)
+static void run_test(struct testcase *test, int count)
 {
        void *p;
-       int i, ret = KSFT_PASS;
+       int i;
 
        for (i = 0; i < count; i++) {
                struct testcase *t = test + i;
 
                p = mmap(t->addr, t->size, PROT_READ | PROT_WRITE, t->flags, -1, 0);
-
-               printf("%s: %p - ", t->msg, p);
-
                if (p == MAP_FAILED) {
-                       printf("FAILED\n");
-                       ret = KSFT_FAIL;
+                       ksft_perror("MAP_FAILED");
+                       ksft_test_result_fail("%s\n", t->msg);
                        continue;
                }
 
                if (t->low_addr_required && p >= (void *)(switch_hint)) {
-                       printf("FAILED\n");
-                       ret = KSFT_FAIL;
+                       ksft_print_msg("%p not below switch hint\n", p);
+                       ksft_test_result_fail("%s\n", t->msg);
                } else {
                        /*
                         * Do a dereference of the address returned so that we catch
                         * bugs in page fault handling
                         */
                        memset(p, 0, t->size);
-                       printf("OK\n");
+                       ksft_test_result_pass("%s\n", t->msg);
                }
                if (!t->keep_mapped)
                        munmap(p, t->size);
        }
-
-       return ret;
 }
 
 #ifdef __aarch64__
@@ -322,19 +317,23 @@ static int supported_arch(void)
 
 int main(int argc, char **argv)
 {
-       int ret, hugetlb_ret = KSFT_PASS;
+       bool run_hugetlb = false;
+
+       ksft_print_header();
 
        if (!supported_arch())
-               return KSFT_SKIP;
+               ksft_exit_skip("Architecture not supported\n");
+
+       if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
+               run_hugetlb = true;
 
        testcases_init();
 
-       ret = run_test(testcases, sz_testcases);
-       if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
-               hugetlb_ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
+       ksft_set_plan(sz_testcases + (run_hugetlb ? sz_hugetlb_testcases : 0));
+
+       run_test(testcases, sz_testcases);
+       if (run_hugetlb)
+               run_test(hugetlb_testcases, sz_hugetlb_testcases);
 
-       if (ret == KSFT_PASS && hugetlb_ret == KSFT_PASS)
-               return KSFT_PASS;
-       else
-               return KSFT_FAIL;
+       ksft_finished();
 }