Unverified Commit 2e94e4c6 authored by Christian Brauner's avatar Christian Brauner
Browse files

selftests/pidfd: add fourth PIDFD_INFO_EXIT selftest

parent a79975f0
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -177,4 +177,22 @@ TEST_F(pidfd_info, success_exit)
	ASSERT_FALSE(!!(info.mask & PIDFD_INFO_EXIT));
}

TEST_F(pidfd_info, success_reaped)
{
	struct pidfd_info info = {
		.mask = PIDFD_INFO_CGROUPID,
	};

	/* Process has already been reaped and PIDFD_INFO_EXIT hasn't been set. */
	ASSERT_NE(ioctl(self->child_pidfd4, PIDFD_GET_INFO, &info), 0);
	ASSERT_EQ(errno, ESRCH);

	info.mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT;
	ASSERT_EQ(ioctl(self->child_pidfd4, PIDFD_GET_INFO, &info), 0);
	ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS));
	ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT));
	ASSERT_TRUE(WIFEXITED(info.exit_code));
	ASSERT_EQ(WEXITSTATUS(info.exit_code), 0);
}

TEST_HARNESS_MAIN