Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/pidfd: adapt to recent changes

Adapt to changes in commit 9133607de37a ("exit: fix the usage of
delay_group_leader->exit_code in do_notify_parent() and pidfs_exit()").

Even if the thread-group leader exited early and succesfully it's exit
status will only be reported once the whole thread-group has exited and
it will share the exit code of the thread-group. So if the thread-group
was SIGKILLed the thread-group leader will also be reported as having
been SIGKILLed.

Link: https://lore.kernel.org/r/20250403-work-pidfd-fixes-v1-1-a123b6ed6716@kernel.org
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>

+6 -6
+6 -6
tools/testing/selftests/pidfd/pidfd_info_test.c
··· 362 362 ASSERT_EQ(ioctl(pidfd_leader, PIDFD_GET_INFO, &info), 0); 363 363 ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS)); 364 364 ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT)); 365 - /* The thread-group leader exited successfully. Only the specific thread was SIGKILLed. */ 366 - ASSERT_TRUE(WIFEXITED(info.exit_code)); 367 - ASSERT_EQ(WEXITSTATUS(info.exit_code), 0); 365 + /* Even though the thread-group exited successfully it will still report the group exit code. */ 366 + ASSERT_TRUE(WIFSIGNALED(info.exit_code)); 367 + ASSERT_EQ(WTERMSIG(info.exit_code), SIGKILL); 368 368 369 369 /* 370 370 * Retrieve exit information for the thread-group leader via the ··· 375 375 ASSERT_FALSE(!!(info2.mask & PIDFD_INFO_CREDS)); 376 376 ASSERT_TRUE(!!(info2.mask & PIDFD_INFO_EXIT)); 377 377 378 - /* The thread-group leader exited successfully. Only the specific thread was SIGKILLed. */ 379 - ASSERT_TRUE(WIFEXITED(info2.exit_code)); 380 - ASSERT_EQ(WEXITSTATUS(info2.exit_code), 0); 378 + /* Even though the thread-group exited successfully it will still report the group exit code. */ 379 + ASSERT_TRUE(WIFSIGNALED(info2.exit_code)); 380 + ASSERT_EQ(WTERMSIG(info2.exit_code), SIGKILL); 381 381 382 382 /* Retrieve exit information for the thread. */ 383 383 info.mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT;