[LTP] [PATCH] shmget03: fix test when some shm segments already exist
From: Alexey Kodanev <hidden>
Date: 2021-07-06 10:57:58
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Alexey Kodanev <hidden>
Date: 2021-07-06 10:57:58
Subsystem:
the rest · Maintainer:
Linus Torvalds
It's unlikely, but still possible that some of them could be created during the test as well, so the patch only checks errno. Signed-off-by: Alexey Kodanev <redacted> --- testcases/kernel/syscalls/ipc/shmget/shmget03.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/testcases/kernel/syscalls/ipc/shmget/shmget03.c b/testcases/kernel/syscalls/ipc/shmget/shmget03.c
index efbc465e1..6796efc91 100644
--- a/testcases/kernel/syscalls/ipc/shmget/shmget03.c
+++ b/testcases/kernel/syscalls/ipc/shmget/shmget03.c@@ -42,13 +42,17 @@ static void setup(void) queues = SAFE_MALLOC(maxshms * sizeof(int)); for (num = 0; num < maxshms; num++) { res = shmget(shmkey + num, SHM_SIZE, IPC_CREAT | IPC_EXCL | SHM_RW); - if (res == -1) - tst_brk(TBROK | TERRNO, "shmget failed unexpectedly"); + if (res == -1) { + if (errno == ENOSPC) + break; + tst_brk(TBROK | TERRNO, + "shmget failed unexpectedly, num %d", num); + } queues[queue_cnt++] = res; } - tst_res(TINFO, "The maximum number of memory segments (%d) has been reached", - maxshms); + tst_res(TINFO, "The max number of memory segments (%d) has been reached, used by test %d", + maxshms, queue_cnt); } static void cleanup(void)
--
2.25.1