int main(int ac, char **av) { char *msg; pid_t pid; int status; if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); #ifdef UCLINUX maybe_run_child(&do_child, ""); #endif setup(); /* global setup */ pid = FORK_OR_VFORK(); if (pid == -1) tst_brkm(TBROK, cleanup, "Fork failed"); else if (pid == 0) do_master_child(av); if (waitpid(pid, &status, 0) == -1) tst_resm(TBROK | TERRNO, "waitpid failed"); else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) tst_resm(TFAIL, "child exited abnormally"); else tst_resm(TPASS, "received expected errno(EPERM)"); cleanup(); tst_exit(); }
int main(int ac, char **av) { pid_t pid; char *msg; int status; if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); setup(); pid = FORK_OR_VFORK(); if (pid < 0) tst_brkm(TBROK, cleanup, "Fork failed"); if (pid == 0) do_master_child(); if (waitpid(pid, &status, 0) == -1) tst_resm(TBROK | TERRNO, "waitpid failed"); if (!WIFEXITED(status) || (WEXITSTATUS(status) != 0)) tst_resm(TFAIL, "child process terminated abnormally"); cleanup(); tst_exit(); }
int main(int ac, char **av) { pid_t pid; int status; tst_parse_opts(ac, av, NULL, NULL); setup(); pid = FORK_OR_VFORK(); if (pid < 0) tst_brkm(TBROK, cleanup, "Fork failed"); if (pid == 0) { do_master_child(); } else { waitpid(pid, &status, 0); if (!WIFEXITED(status) || (WEXITSTATUS(status) != 0)) tst_resm(WEXITSTATUS(status), "son process exits with error"); } cleanup(); tst_exit(); }
int main(int ac, char **av) { pid_t pid; char *msg; int status; if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL) tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); setup(); TEST_EXP_ENOS(exp_enos); pid = FORK_OR_VFORK(); if (pid < 0) tst_brkm(TBROK, cleanup, "Fork failed"); if (pid == 0) { do_master_child(); } else { waitpid(pid, &status, 0); if (!WIFEXITED(status) || (WEXITSTATUS(status) != 0)) tst_resm(WEXITSTATUS(status), "son process exits with error"); } cleanup(); tst_exit(); }
int main(int ac, char **av) { pid_t pid; tst_parse_opts(ac, av, NULL, NULL); setup(); pid = FORK_OR_VFORK(); if (pid < 0) tst_brkm(TBROK, cleanup, "Fork failed"); if (pid == 0) do_master_child(); tst_record_childstatus(cleanup, pid); cleanup(); tst_exit(); }