Skip to content

Commit 86c1dfd

Browse files
committed
selftests/pidfd: add second 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-11-c8c3d8361705@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 853ab1f commit 86c1dfd

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
@@ -143,4 +143,22 @@ TEST_F(pidfd_info, sigkill_exit)
143143
ASSERT_FALSE(!!(info.mask & PIDFD_INFO_EXIT));
144144
}
145145

146+
TEST_F(pidfd_info, sigkill_reaped)
147+
{
148+
struct pidfd_info info = {
149+
.mask = PIDFD_INFO_CGROUPID,
150+
};
151+
152+
/* Process has already been reaped and PIDFD_INFO_EXIT hasn't been set. */
153+
ASSERT_NE(ioctl(self->child_pidfd2, PIDFD_GET_INFO, &info), 0);
154+
ASSERT_EQ(errno, ESRCH);
155+
156+
info.mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT;
157+
ASSERT_EQ(ioctl(self->child_pidfd2, PIDFD_GET_INFO, &info), 0);
158+
ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS));
159+
ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT));
160+
ASSERT_TRUE(WIFSIGNALED(info.exit_code));
161+
ASSERT_EQ(WTERMSIG(info.exit_code), SIGKILL);
162+
}
163+
146164
TEST_HARNESS_MAIN

0 commit comments

Comments
 (0)