Re: [PATCH v3 1/7] selftests/mm: hugepage-shm: conform test to TAP format output

From: Muhammad Usama Anjum
Date: Tue Jan 23 2024 - 02:52:17 EST


Hi Andrew,

There hasn't been any comment on these. I guess, they can be picked up now?

Thanks,

On 1/15/24 12:32 PM, Muhammad Usama Anjum wrote:
> Conform the layout, informational and status messages to TAP. No
> functional change is intended other than the layout of output messages.
>
> The "." was being printed inside for loop to indicate the writes
> progress. This was extraneous and hence removed in the patch.
>
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
> ---
> tools/testing/selftests/mm/hugepage-shm.c | 47 +++++++++++------------
> 1 file changed, 22 insertions(+), 25 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/hugepage-shm.c b/tools/testing/selftests/mm/hugepage-shm.c
> index 478bb1e989e9..f949dbbc3454 100644
> --- a/tools/testing/selftests/mm/hugepage-shm.c
> +++ b/tools/testing/selftests/mm/hugepage-shm.c
> @@ -34,11 +34,10 @@
> #include <sys/ipc.h>
> #include <sys/shm.h>
> #include <sys/mman.h>
> +#include "../kselftest.h"
>
> #define LENGTH (256UL*1024*1024)
>
> -#define dprintf(x) printf(x)
> -
> /* Only ia64 requires this */
> #ifdef __ia64__
> #define ADDR (void *)(0x8000000000000000UL)
> @@ -54,44 +53,42 @@ 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_msg("shmget: %s\n", strerror(errno));
> +
> + ksft_print_msg("shmid: 0x%x\n", shmid);
>
> shmaddr = shmat(shmid, ADDR, SHMAT_FLAGS);
> if (shmaddr == (char *)-1) {
> - perror("Shared memory attach failure");
> shmctl(shmid, IPC_RMID, NULL);
> - exit(2);
> + ksft_exit_fail_msg("Shared memory attach failure: %s\n", strerror(errno));
> }
> - printf("shmaddr: %p\n", shmaddr);
>
> - dprintf("Starting the writes:\n");
> - for (i = 0; i < LENGTH; i++) {
> + ksft_print_msg("shmaddr: %p\n", shmaddr);
> +
> + ksft_print_msg("Starting the writes:");
> + for (i = 0; i < LENGTH; i++)
> shmaddr[i] = (char)(i);
> - if (!(i % (1024 * 1024)))
> - dprintf(".");
> - }
> - dprintf("\n");
> + ksft_print_msg("Done.\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);
> - }
> - dprintf("Done.\n");
> + if (shmaddr[i] != (char)i)
> + ksft_exit_fail_msg("\nIndex %lu mismatched\n", i);
> + ksft_print_msg("Done.\n");
>
> if (shmdt((const void *)shmaddr) != 0) {
> - perror("Detach failure");
> shmctl(shmid, IPC_RMID, NULL);
> - exit(4);
> + ksft_exit_fail_msg("Detach failure: %s\n", strerror(errno));
> }
>
> shmctl(shmid, IPC_RMID, NULL);
>
> - return 0;
> + ksft_test_result_pass("Completed test\n");
> +
> + ksft_finished();
> }

--
BR,
Muhammad Usama Anjum