The plan was raised from 1 to 3, but the HugeTLB setup check that may
call ksft_exit_skip() still runs after ksft_set_plan(), so a setup
failure reports one result against a plan of 3. Move ksft_set_plan()
below the setup check.

Also, when the underflow check fails, or munmap() fails,
test_underflow() jumps to err_cleanup and exits without reporting the
remaining results. Report the munmap() failure as a test result and
skip the final HugePages_Rsvd check in err_cleanup, so these failure
paths report all 3 planned results.

Fixes: 827149aad495 ("selftests/mm: hugetlb_madv_vs_map: add underflow test")
Assisted-by: LLM
Signed-off-by: Jaeyeon Lee <[email protected]>
---
Changes in v2:
- Drop the duplicate ksft_perror() and report errno in
  ksft_test_result_fail() (Sarthak Sharma).

 tools/testing/selftests/mm/hugetlb_madv_vs_map.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mm/hugetlb_madv_vs_map.c 
b/tools/testing/selftests/mm/hugetlb_madv_vs_map.c
index 1d111f42dd59..0f6afb834dbf 100644
--- a/tools/testing/selftests/mm/hugetlb_madv_vs_map.c
+++ b/tools/testing/selftests/mm/hugetlb_madv_vs_map.c
@@ -168,7 +168,7 @@ void test_underflow(void)
 
        /* First unmap, this will close the vma */
        if (munmap(huge_ptr, mmap_size) != 0) {
-               ksft_perror("munmap failed");
+               ksft_test_result_fail("munmap failed: %s (%d)\n", 
strerror(errno), errno);
                goto err_cleanup;
        }
 
@@ -203,18 +203,20 @@ void test_underflow(void)
        if (waitpid(pid, NULL, 0) <= 0)
                ksft_exit_fail_perror("waitpid failed");
 
+       ksft_test_result_skip("HugePages_Rsvd check after child exit\n");
        ksft_exit_fail();
 }
 
 int main(void)
 {
        ksft_print_header();
-       ksft_set_plan(3);
 
        if (!hugetlb_setup_default_exact(1))
                ksft_exit_skip("This test needs one and only one page to 
execute. Got %lu\n",
                               hugetlb_free_default_pages());
 
+       ksft_set_plan(3);
+
        test_madv_vs_map();
        test_underflow();
 
-- 
2.43.0


Reply via email to