Lines Matching refs:pidfd

19 #include "pidfd.h"
42 int pidfd = -1;
46 .pidfd = ptr_to_u64(&pidfd),
55 pidfd = open("/proc/self", O_DIRECTORY | O_RDONLY | O_CLOEXEC);
56 ASSERT_GE(pidfd, 0);
58 pid = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL);
60 EXPECT_EQ(close(pidfd), 0);
61 pidfd = -1;
63 pidfd = open("/dev/null", O_RDONLY | O_CLOEXEC);
64 ASSERT_GE(pidfd, 0);
66 pid = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL);
68 EXPECT_EQ(close(pidfd), 0);
69 pidfd = -1;
77 pid = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL);
81 EXPECT_EQ(close(pidfd), 0);
90 int pidfd = -1;
94 .pidfd = ptr_to_u64(&pidfd),
120 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WSTOPPED, NULL), 0);
125 ASSERT_EQ(sys_pidfd_send_signal(pidfd, SIGCONT, NULL, 0), 0);
127 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WCONTINUED, NULL), 0);
134 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WUNTRACED, NULL), 0);
139 ASSERT_EQ(sys_pidfd_send_signal(pidfd, SIGKILL, NULL, 0), 0);
141 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL), 0);
146 EXPECT_EQ(close(pidfd), 0);
151 int pidfd;
169 pidfd = sys_pidfd_open(getpid(), PIDFD_NONBLOCK);
170 EXPECT_GE(pidfd, 0) {
176 ret = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL);
179 EXPECT_EQ(close(pidfd), 0);
189 pidfd = sys_pidfd_open(pid, PIDFD_NONBLOCK);
190 EXPECT_GE(pidfd, 0) {
196 flags = fcntl(pidfd, F_GETFL, 0);
201 * Callers need to see EAGAIN/EWOULDBLOCK with non-blocking pidfd when
204 ret = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL);
209 * Callers need to continue seeing 0 with non-blocking pidfd and
213 ret = sys_waitid(P_PIDFD, pidfd, &info, WEXITED | WNOHANG, NULL);
216 ASSERT_EQ(fcntl(pidfd, F_SETFL, (flags & ~O_NONBLOCK)), 0);
218 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WSTOPPED, NULL), 0);
223 ASSERT_EQ(sys_pidfd_send_signal(pidfd, SIGCONT, NULL, 0), 0);
225 ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL), 0);
230 EXPECT_EQ(close(pidfd), 0);