[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 4/7] tests/tcg: Test shmat(NULL)
From: |
Richard Henderson |
Subject: |
[PULL 4/7] tests/tcg: Test shmat(NULL) |
Date: |
Fri, 29 Mar 2024 12:20:34 -1000 |
From: Ilya Leoshkevich <iii@linux.ibm.com>
Add a small test to prevent regressions.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20240325192436.561154-5-iii@linux.ibm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tests/tcg/multiarch/linux/linux-shmat-null.c | 38 ++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 tests/tcg/multiarch/linux/linux-shmat-null.c
diff --git a/tests/tcg/multiarch/linux/linux-shmat-null.c
b/tests/tcg/multiarch/linux/linux-shmat-null.c
new file mode 100644
index 0000000000..94eaaec371
--- /dev/null
+++ b/tests/tcg/multiarch/linux/linux-shmat-null.c
@@ -0,0 +1,38 @@
+/*
+ * Test shmat(NULL).
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#include <assert.h>
+#include <stdlib.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+
+int main(void)
+{
+ int shmid;
+ char *p;
+ int err;
+
+ /* Create, attach and intialize shared memory. */
+ shmid = shmget(IPC_PRIVATE, 1, IPC_CREAT | 0600);
+ assert(shmid != -1);
+ p = shmat(shmid, NULL, 0);
+ assert(p != (void *)-1);
+ *p = 42;
+
+ /* Reattach, check that the value is still there. */
+ err = shmdt(p);
+ assert(err == 0);
+ p = shmat(shmid, NULL, 0);
+ assert(p != (void *)-1);
+ assert(*p == 42);
+
+ /* Detach. */
+ err = shmdt(p);
+ assert(err == 0);
+ err = shmctl(shmid, IPC_RMID, NULL);
+ assert(err == 0);
+
+ return EXIT_SUCCESS;
+}
--
2.34.1
- [PULL 0/7] tcg + linux-user patch queue, Richard Henderson, 2024/03/29
- [PULL 2/7] linux-user: Fix shmat() strace, Richard Henderson, 2024/03/29
- [PULL 3/7] linux-user: Fix shmat(NULL) for h != g, Richard Henderson, 2024/03/29
- [PULL 1/7] linux-user: Fix semctl() strace, Richard Henderson, 2024/03/29
- [PULL 4/7] tests/tcg: Test shmat(NULL),
Richard Henderson <=
- [PULL 5/7] tcg/optimize: Fix sign_mask for logical right-shift, Richard Henderson, 2024/03/29
- [PULL 7/7] accel/tcg: Use CPUState.get_pc in cpu_io_recompile, Richard Henderson, 2024/03/29
- [PULL 6/7] disas: Show opcodes for target_disas and monitor_disas, Richard Henderson, 2024/03/29
- Re: [PULL 0/7] tcg + linux-user patch queue, Peter Maydell, 2024/03/31