/none/tests/freebsd/fexecve
/none/tests/freebsd/hello_world
/none/tests/freebsd/452275
+/none/tests/freebsd/proc_pid_file
/none/tests/freebsd/sanity_level_thread
/none/tests/freebsd/usrstack
-/none/tests/freebsd/proc_pid_file
+/none/tests/freebsd/umtx_shm_creat
# /none/tests/x86/
/none/tests/x86/*.dSYM
}
break;
case VKI_UMTX_OP_SHM:
+ if (SUCCESS && ARG3 == VKI_UMTX_SHM_CREAT) {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+ break;
case VKI_UMTX_OP_ROBUST_LISTS:
break;
#if (FREEBSD_VERS >= FREEBSD_13_3)
#define VKI_UMTX_OP_SEM2_WAKE 24
#define VKI_UMTX_OP_SHM 25
#define VKI_UMTX_OP_ROBUST_LISTS 26
+
+#define VKI_UMTX_SHM_CREAT 0x0001
+
#if (FREEBSD_VERS >= FREEBSD_13_3)
#define VKI_UMTX_OP_GET_MIN_TIMEOUT 27
#define VKI_UMTX_OP_SET_MIN_TIMEOUT 28
swapcontext.stdout.exp \
umtx_op_timeout.vgtest \
umtx_op_timeout.stderr.exp \
+ umtx_shm_creat1.vgtest \
+ umtx_shm_creat1.stderr.exp \
+ umtx_shm_creat2.vgtest \
+ umtx_shm_creat2.stderr.exp \
usrstack.vgtest \
usrstack.stderr.exp \
usrstack.stdout.exp
check_PROGRAMS = \
auxv osrel swapcontext hello_world fexecve 452275 usrstack \
- proc_pid_file sanity_level_thread
+ proc_pid_file sanity_level_thread umtx_shm_creat
AM_CFLAGS += $(AM_FLAG_M3264_PRI)
AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
sanity_level_thread_SOURCES = sanity_level_thread.cpp
sanity_level_thread_LDFLAGS = ${AM_LDFLAGS} -pthread
+
+umtx_shm_creat_SOURCES = umtx_shm_creat.cpp
--- /dev/null
+../filter_fdleak
\ No newline at end of file
--- /dev/null
+#include <sys/types.h>
+#include <sys/umtx.h>
+#include <unistd.h>
+
+int main(int argc, char** argv)
+{
+ char key[64];
+ int fd = _umtx_op(nullptr, UMTX_OP_SHM, UMTX_SHM_CREAT, key, nullptr);
+ if (1 == argc)
+ {
+ close(fd);
+ }
+}
--- /dev/null
+FILE DESCRIPTORS: 3 open (3 std) at exit.
+Open file descriptor ...: ...
+ <inherited from parent>
+
+Open file descriptor ...: ...
+ <inherited from parent>
+
+Open file descriptor ...: ...
+ <inherited from parent>
+
+
--- /dev/null
+prog: umtx_shm_creat
+vgopts: -q --track-fds=all
+stderr_filter: filter_fdleak
+
--- /dev/null
+FILE DESCRIPTORS: 4 open (3 std) at exit.
+Open file descriptor ...:
+ ...
+
+Open file descriptor ...: ...
+ <inherited from parent>
+
+Open file descriptor ...: ...
+ <inherited from parent>
+
+Open file descriptor ...: ...
+ <inherited from parent>
+
+
--- /dev/null
+prog: umtx_shm_creat
+vgopts: -q --track-fds=all
+args: 1
+stderr_filter: filter_fdleak