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();
>  }


Reply via email to