Skip to content

Commit 2e94e4c

Browse files
committed
selftests/pidfd: add fourth PIDFD_INFO_EXIT selftest
Add a selftest for PIDFD_INFO_EXIT behavior. Link: https://lore.kernel.org/r/20250305-work-pidfs-kill_on_last_close-v3-13-c8c3d8361705@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent a79975f commit 2e94e4c

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

tools/testing/selftests/pidfd/pidfd_info_test.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,22 @@ TEST_F(pidfd_info, success_exit)
177177
ASSERT_FALSE(!!(info.mask & PIDFD_INFO_EXIT));
178178
}
179179

180+
TEST_F(pidfd_info, success_reaped)
181+
{
182+
struct pidfd_info info = {
183+
.mask = PIDFD_INFO_CGROUPID,
184+
};
185+
186+
/* Process has already been reaped and PIDFD_INFO_EXIT hasn't been set. */
187+
ASSERT_NE(ioctl(self->child_pidfd4, PIDFD_GET_INFO, &info), 0);
188+
ASSERT_EQ(errno, ESRCH);
189+
190+
info.mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT;
191+
ASSERT_EQ(ioctl(self->child_pidfd4, PIDFD_GET_INFO, &info), 0);
192+
ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS));
193+
ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT));
194+
ASSERT_TRUE(WIFEXITED(info.exit_code));
195+
ASSERT_EQ(WEXITSTATUS(info.exit_code), 0);
196+
}
197+
180198
TEST_HARNESS_MAIN

0 commit comments

Comments
 (0)