brintos

brintos / linux-shallow public Read only

0
0
Text · 794 B · 7d84097 Raw
45 lines · c
1#define _GNU_SOURCE2#include <assert.h>3#include <errno.h>4#include <fcntl.h>5#include <linux/types.h>6#include <sched.h>7#include <signal.h>8#include <stdio.h>9#include <stdlib.h>10#include <string.h>11#include <syscall.h>12#include <sys/wait.h>13 14#include "../kselftest_harness.h"15#include "../pidfd/pidfd.h"16 17/*18 * Regression test for:19 * 35f71bc0a09a ("fork: report pid reservation failure properly")20 * b26ebfe12f34 ("pid: Fix error return value in some cases")21 */22TEST(regression_enomem)23{24	pid_t pid;25 26	if (geteuid())27		EXPECT_EQ(0, unshare(CLONE_NEWUSER));28 29	EXPECT_EQ(0, unshare(CLONE_NEWPID));30 31	pid = fork();32	ASSERT_GE(pid, 0);33 34	if (pid == 0)35		exit(EXIT_SUCCESS);36 37	EXPECT_EQ(0, wait_for_pid(pid));38 39	pid = fork();40	ASSERT_LT(pid, 0);41	ASSERT_EQ(errno, ENOMEM);42}43 44TEST_HARNESS_MAIN45