[PATCH 07/53] selftests/mm: hugetlb-shm: use kselftest framework

From: Mike Rapoport

Date: Mon Apr 06 2026 - 10:18:56 EST


From: "Mike Rapoport (Microsoft)" <rppt@xxxxxxxxxx>

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

Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>
---
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...");
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();
}
--
2.53.0