Lines Matching +full:parent +full:- +full:child
1 /*-
32 #include <atf-c.h>
45 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
50 pid = waitpid(-1, NULL, WNOHANG); in ATF_TC_BODY()
51 ATF_REQUIRE(pid == -1 && errno == ECHILD); in ATF_TC_BODY()
53 parent = getpid(); in ATF_TC_BODY()
54 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
60 child = fork(); in ATF_TC_BODY()
61 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
62 if (child == 0) { in ATF_TC_BODY()
66 if (grandchild == -1) in ATF_TC_BODY()
71 if (getppid() != parent) in ATF_TC_BODY()
78 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
79 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
80 r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; in ATF_TC_BODY()
86 pid = waitpid(-1, &status, 0); in ATF_TC_BODY()
87 ATF_REQUIRE(pid > 0 && pid != child); in ATF_TC_BODY()
88 r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; in ATF_TC_BODY()
98 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
102 pid = waitpid(-1, NULL, WNOHANG); in ATF_TC_BODY()
103 ATF_REQUIRE(pid == -1 && errno == ECHILD); in ATF_TC_BODY()
105 parent = getpid(); in ATF_TC_BODY()
106 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
109 child = fork(); in ATF_TC_BODY()
110 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
111 if (child == 0) { in ATF_TC_BODY()
113 if (grandchild == -1) in ATF_TC_BODY()
125 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
126 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
127 r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; in ATF_TC_BODY()
130 pid = waitpid(-1, &status, 0); in ATF_TC_BODY()
131 ATF_REQUIRE(pid > 0 && pid != child); in ATF_TC_BODY()
132 r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; in ATF_TC_BODY()
146 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
151 pid = waitpid(-1, NULL, WNOHANG); in ATF_TC_BODY()
152 ATF_REQUIRE(pid == -1 && errno == ECHILD); in ATF_TC_BODY()
168 parent = getpid(); in ATF_TC_BODY()
169 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
175 child = fork(); in ATF_TC_BODY()
176 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
177 if (child == 0) { in ATF_TC_BODY()
181 if (grandchild == -1) in ATF_TC_BODY()
186 if (getppid() != parent) in ATF_TC_BODY()
198 ATF_CHECK_EQ(child, info.si_pid); in ATF_TC_BODY()
200 pid = waitpid(child, NULL, 0); in ATF_TC_BODY()
201 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
213 ATF_REQUIRE(grandchild != parent); in ATF_TC_BODY()
214 ATF_REQUIRE(grandchild != child); in ATF_TC_BODY()
216 pid = waitpid(-1, NULL, 0); in ATF_TC_BODY()
233 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
237 pid = waitpid(-1, NULL, WNOHANG); in ATF_TC_BODY()
238 ATF_REQUIRE(pid == -1 && errno == ECHILD); in ATF_TC_BODY()
254 parent = getpid(); in ATF_TC_BODY()
255 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
258 child = fork(); in ATF_TC_BODY()
259 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
260 if (child == 0) { in ATF_TC_BODY()
262 if (grandchild == -1) in ATF_TC_BODY()
274 pid = waitpid(child, NULL, 0); in ATF_TC_BODY()
275 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
284 ATF_REQUIRE(grandchild != parent); in ATF_TC_BODY()
285 ATF_REQUIRE(grandchild != child); in ATF_TC_BODY()
287 pid = waitpid(-1, NULL, 0); in ATF_TC_BODY()
296 pid_t parent, child, pid; in ATF_TC_BODY() local
300 parent = getpid(); in ATF_TC_BODY()
301 r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); in ATF_TC_BODY()
307 ATF_CHECK(st.rs_reaper != parent); in ATF_TC_BODY()
310 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
313 r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); in ATF_TC_BODY()
319 ATF_CHECK(st.rs_reaper == parent); in ATF_TC_BODY()
320 ATF_CHECK_EQ(-1, st.rs_pid); in ATF_TC_BODY()
324 child = fork(); in ATF_TC_BODY()
325 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
326 if (child == 0) { in ATF_TC_BODY()
329 if (procctl(P_PID, parent, PROC_REAP_STATUS, &st) != 0) in ATF_TC_BODY()
348 ATF_CHECK(st.rs_reaper == parent); in ATF_TC_BODY()
349 ATF_CHECK_EQ(child, st.rs_pid); in ATF_TC_BODY()
356 ATF_CHECK(st.rs_reaper == parent); in ATF_TC_BODY()
357 ATF_CHECK_EQ(child, st.rs_pid); in ATF_TC_BODY()
361 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
362 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
365 r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); in ATF_TC_BODY()
371 ATF_CHECK(st.rs_reaper == parent); in ATF_TC_BODY()
372 ATF_CHECK_EQ(-1, st.rs_pid); in ATF_TC_BODY()
380 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
384 parent = getpid(); in ATF_TC_BODY()
385 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
389 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
401 child = fork(); in ATF_TC_BODY()
402 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
403 if (child == 0) { in ATF_TC_BODY()
411 if (grandchild == -1) in ATF_TC_BODY()
429 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
437 ATF_CHECK_EQ(child, info[0].pi_pid); in ATF_TC_BODY()
438 ATF_CHECK_EQ(child, info[0].pi_subtree); in ATF_TC_BODY()
447 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
458 ATF_CHECK_EQ(child, info[0].pi_subtree); in ATF_TC_BODY()
459 ATF_CHECK_EQ(child, info[1].pi_subtree); in ATF_TC_BODY()
460 childidx = info[1].pi_pid == child ? 1 : 0; in ATF_TC_BODY()
464 ATF_CHECK(info[childidx].pi_pid == child); in ATF_TC_BODY()
467 ATF_CHECK(grandchild != child); in ATF_TC_BODY()
468 ATF_CHECK(grandchild != parent); in ATF_TC_BODY()
470 r = kill(child, SIGTERM); in ATF_TC_BODY()
473 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
474 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
478 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
487 ATF_CHECK_EQ(child, info[0].pi_subtree); in ATF_TC_BODY()
496 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
505 ATF_CHECK_EQ(child, info[0].pi_subtree); in ATF_TC_BODY()
515 r = procctl(P_PID, parent, PROC_REAP_GETPIDS, in ATF_TC_BODY()
533 pid_t parent; in ATF_TC_BODY() local
536 parent = getpid(); in ATF_TC_BODY()
537 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
540 params.rk_sig = -1; in ATF_TC_BODY()
542 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
543 ATF_CHECK(r == -1 && errno == EINVAL); in ATF_TC_BODY()
550 pid_t parent; in ATF_TC_BODY() local
553 parent = getpid(); in ATF_TC_BODY()
554 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
559 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
560 ATF_CHECK(r == -1 && errno == EINVAL); in ATF_TC_BODY()
567 pid_t parent; in ATF_TC_BODY() local
570 parent = getpid(); in ATF_TC_BODY()
571 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
577 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
578 ATF_CHECK(r == -1 && errno == ESRCH); in ATF_TC_BODY()
587 pid_t parent, child, grandchild, pid; in ATF_TC_BODY() local
591 parent = getpid(); in ATF_TC_BODY()
592 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
597 child = fork(); in ATF_TC_BODY()
598 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
599 if (child == 0) { in ATF_TC_BODY()
603 if (grandchild == -1) in ATF_TC_BODY()
623 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
627 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
628 ATF_REQUIRE_EQ(child, pid); in ATF_TC_BODY()
631 pid = waitpid(-1, &status, 0); in ATF_TC_BODY()
633 ATF_CHECK(pid != parent); in ATF_TC_BODY()
634 ATF_CHECK(pid != child); in ATF_TC_BODY()
646 pid_t parent, child1, child2, grandchild1, grandchild2, pid; in ATF_TC_BODY() local
650 parent = getpid(); in ATF_TC_BODY()
651 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
657 ATF_REQUIRE(child1 != -1); in ATF_TC_BODY()
662 if (grandchild1 == -1) in ATF_TC_BODY()
674 ATF_REQUIRE(child2 != -1); in ATF_TC_BODY()
679 if (grandchild2 == -1) in ATF_TC_BODY()
702 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
705 ATF_CHECK_EQ(-1, params.rk_fpid); in ATF_TC_BODY()
711 pid = waitpid(-1, &status, 0); in ATF_TC_BODY()
713 ATF_CHECK(pid != parent); in ATF_TC_BODY()
722 r = procctl(P_PID, parent, PROC_REAP_KILL, ¶ms); in ATF_TC_BODY()
725 ATF_CHECK_EQ(-1, params.rk_fpid); in ATF_TC_BODY()
731 pid = waitpid(-1, &status, 0); in ATF_TC_BODY()
733 ATF_CHECK(pid != parent); in ATF_TC_BODY()
746 pid_t child, grandchild, parent, pid; in ATF_TC_BODY() local
749 parent = getpid(); in ATF_TC_BODY()
750 r = procctl(P_PID, parent, PROC_REAP_ACQUIRE, NULL); in ATF_TC_BODY()
753 child = pdfork(&pd, 0); in ATF_TC_BODY()
754 ATF_REQUIRE(child != -1); in ATF_TC_BODY()
755 if (child == 0) { in ATF_TC_BODY()
757 if (grandchild == -1) in ATF_TC_BODY()
763 pid = waitpid(child, &status, 0); in ATF_TC_BODY()
764 ATF_REQUIRE_EQ(pid, child); in ATF_TC_BODY()
765 r = WIFEXITED(status) ? WEXITSTATUS(status) : -1; in ATF_TC_BODY()
768 r = procctl(P_PID, parent, PROC_REAP_STATUS, &st); in ATF_TC_BODY()
771 ATF_CHECK(st.rs_reaper == parent); in ATF_TC_BODY()