1 /* 2 * Copyright (c) International Business Machines Corp., 2001 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 12 * the GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. 16 * 17 * History 18 * 07/2001 John George 19 * -Ported 20 * 04/2002 wjhuie sigset cleanups 21 */ 22 23 /* 24 * DESCRIPTION 25 * Tests to see if pids returned from fork and waitpid are same. 26 * 27 * ALGORITHM 28 * Check proper functioning of waitpid with pid = -1 and arg = 0 29 */ 30 31 #include "waitpid_common.h" 32 33 static void do_child_1(void) 34 { 35 pid_t pid; 36 int i; 37 38 for (i = 0; i < MAXKIDS; i++) { 39 if (i == (MAXKIDS / 2)) 40 SAFE_SETPGID(0, 0); 41 42 pid = SAFE_FORK(); 43 if (pid == 0) 44 do_exit(0); 45 46 fork_kid_pid[i] = pid; 47 } 48 49 TST_CHECKPOINT_WAKE2(0, MAXKIDS); 50 51 if (TST_TRACE(reap_children(-1, 0, fork_kid_pid, MAXKIDS))) 52 return; 53 54 tst_res(TPASS, "Test PASSED"); 55 } 56 57 static struct tst_test test = { 58 .tid = "waitpid06", 59 .forks_child = 1, 60 .needs_checkpoints = 1, 61 .setup = waitpid_setup, 62 .cleanup = waitpid_cleanup, 63 .test_all = waitpid_test, 64 }; 65