xref: /openbsd/regress/sys/kern/wait/wait.c (revision 73471bf0)
1 /*	$OpenBSD: wait.c,v 1.2 2017/03/08 19:25:00 deraadt Exp $	*/
2 /*
3  *	Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain.
4  */
5 #include <sys/types.h>
6 #include <sys/syscall.h>
7 #include <sys/wait.h>
8 #include <unistd.h>
9 #include <stdlib.h>
10 #include <err.h>
11 
12 int
13 main()
14 {
15 	int status;
16 
17 	switch (fork()) {
18 	case -1:
19 		err(1, "fork");
20 	case 0:
21 		_exit(17);
22 		abort();
23 	}
24 
25 	if (wait(&status) < 0)
26 		err(1, "wait");
27 
28 	if (!WIFEXITED(status))
29 		errx(1, "child didn't exit gracefully");
30 
31 	if (WEXITSTATUS(status) != 17)
32 		errx(1, "wrong exit status");
33 
34 	return 0;
35 }
36