Hi Mike! On 4/18/26 4:24 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. > > Reviewed-by: Mark Brown <[email protected]> > Reviewed by: Donet Tom <[email protected]> > 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..."); > 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);
ksft_print_msg() and ksft_exit_fail_msg() are printing the same thing here. Should we remove the ksft_print_msg() to avoid redundancy? I've run the test before and after applying the patch. The output has been correctly formatted into KTAP format with no change in results. Tested-by: Sarthak Sharma <[email protected]> > } > - 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(); > }

