1/* This testcase is part of GDB, the GNU debugger.
2
3   Copyright 2022-2023 Free Software Foundation, Inc.
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 3 of the License, or
8   (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18#include <unistd.h>
19#include <sys/wait.h>
20#include <assert.h>
21
22static void
23should_break_here (void)
24{
25}
26
27int
28main (void)
29{
30  int i;
31
32  for (i = 0; i < NR_LOOPS; i++)
33    {
34      int pid = vfork ();
35
36      if (pid != 0)
37	{
38	  /* Parent */
39	  int stat;
40	  int ret = waitpid (pid, &stat, 0);
41	  assert (ret == pid);
42	  assert (WIFEXITED (stat));
43	  assert (WEXITSTATUS (stat) == 12);
44
45	  should_break_here ();
46	}
47      else
48	{
49	  /* Child */
50	  _exit (12);
51	}
52    }
53
54  return 0;
55}
56