Hi Mike

On 4/6/26 7:46 PM, Mike Rapoport wrote:
From: "Mike Rapoport (Microsoft)" <[email protected]>

Convert hugetlb-shm test to use kselftest framework for reporting and
tracking successful and failing runs.

Signed-off-by: Mike Rapoport (Microsoft) <[email protected]>
---
  tools/testing/selftests/mm/hugetlb-shm.c | 46 ++++++++++++------------
  1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/tools/testing/selftests/mm/hugetlb-shm.c 
b/tools/testing/selftests/mm/hugetlb-shm.c
index de8f5d523084..10e4baa091f2 100644
--- a/tools/testing/selftests/mm/hugetlb-shm.c
+++ b/tools/testing/selftests/mm/hugetlb-shm.c
@@ -28,9 +28,9 @@
  #include <sys/shm.h>
  #include <sys/mman.h>
-#define LENGTH (256UL*1024*1024)
+#include "vm_util.h"
-#define dprintf(x) printf(x)
+#define LENGTH (256UL*1024*1024)
int main(void)
  {
@@ -38,44 +38,44 @@ int main(void)
        unsigned long i;
        char *shmaddr;
+ ksft_print_header();
+       ksft_set_plan(1);
+
        shmid = shmget(2, LENGTH, SHM_HUGETLB | IPC_CREAT | SHM_R | SHM_W);
-       if (shmid < 0) {
-               perror("shmget");
-               exit(1);
-       }
-       printf("shmid: 0x%x\n", shmid);
+       if (shmid < 0)
+               ksft_exit_fail_perror("shmget");
+
+       ksft_print_msg("shmid: 0x%x\n", shmid);
shmaddr = shmat(shmid, NULL, 0);
        if (shmaddr == (char *)-1) {
-               perror("Shared memory attach failure");
+               ksft_perror("Shared memory attach failure");
                shmctl(shmid, IPC_RMID, NULL);
-               exit(2);
+               ksft_exit_fail();
        }
-       printf("shmaddr: %p\n", shmaddr);
+       ksft_print_msg("shmaddr: %p\n", shmaddr);
- dprintf("Starting the writes:\n");
-       for (i = 0; i < LENGTH; i++) {
+       ksft_print_msg("Starting the writes:\n");
+       for (i = 0; i < LENGTH; i++)
                shmaddr[i] = (char)(i);
-               if (!(i % (1024 * 1024)))
-                       dprintf(".");
-       }
-       dprintf("\n");
- dprintf("Starting the Check...");
+       ksft_print_msg("Starting the Check...");


Do we need to add a newline (\n) here? The output is currently printed as:
# Starting the Check...# Done.
If this is intentional, please ignore this comment. Otherwise, it looks good to me.



./hugetlb-shm
TAP version 13
1..1
# shmid: 0x1
# shmaddr: 0x7ffface00000
# Starting the writes:
# Starting the Check...# Done.
ok 1 hugepage using SysV shmget/shmat
# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0

Reviewed by: Donet Tom <[email protected]>

-Donet

        for (i = 0; i < LENGTH; i++)
                if (shmaddr[i] != (char)i) {
-                       printf("\nIndex %lu mismatched\n", i);
-                       exit(3);
+                       ksft_print_msg("Index %lu mismatched\n", i);
+                       shmctl(shmid, IPC_RMID, NULL);
+                       ksft_exit_fail_msg("Data mismatch at index %lu\n", i);
                }
-       dprintf("Done.\n");
+       ksft_print_msg("Done.\n");
if (shmdt((const void *)shmaddr) != 0) {
-               perror("Detach failure");
+               ksft_perror("Detach failure");
                shmctl(shmid, IPC_RMID, NULL);
-               exit(4);
+               ksft_exit_fail();
        }
shmctl(shmid, IPC_RMID, NULL); - return 0;
+       ksft_test_result_pass("hugepage using SysV shmget/shmat\n");
+       ksft_finished();
  }

Reply via email to