summaryrefslogtreecommitdiff
path: root/posix/test-vfork.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-01-19 15:41:14 +0000
committerUlrich Drepper <drepper@redhat.com>1999-01-19 15:41:14 +0000
commitd48f4d530eb492bd008318facff31bb725b066f5 (patch)
treea2e67e8d15d722537f88330b923c47c15cc7393e /posix/test-vfork.c
parentd53afacb5553ca5c62a11c8185391afe0e745d9a (diff)
downloadglibc-d48f4d530eb492bd008318facff31bb725b066f5.tar.gz
Update.
* posix/test-vfork.c (main): Improve test to check for correct exit code.
Diffstat (limited to 'posix/test-vfork.c')
-rw-r--r--posix/test-vfork.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/posix/test-vfork.c b/posix/test-vfork.c
index 9c352897ed..959dcb3b01 100644
--- a/posix/test-vfork.c
+++ b/posix/test-vfork.c
@@ -6,10 +6,13 @@
void noop (void);
+#define NR 2 /* Exit code of the child. */
+
int
main (void)
{
- int pid;
+ pid_t pid;
+ int status;
printf ("Before vfork\n");
fflush (stdout);
@@ -20,12 +23,14 @@ main (void)
machines where it is stored on the stack, if vfork wasn't
implemented correctly, */
noop ();
- _exit (2);
+ _exit (NR);
}
else if (pid < 0)
error (1, errno, "vfork");
printf ("After vfork (parent)\n");
- wait (0);
+ if (waitpid (0, &status, 0) != pid
+ || !WIFEXITED (status) || WEXITSTATUS (NR))
+ exit (1);
exit (0);
}