LibTest: Change Crash forked process communication

Now it returns `Failure` value via `exit`, and the caller is
responsible of reporting errors to the user.
This commit is contained in:
Michel Hermier 2021-12-15 16:03:26 +01:00 committed by Brian Gianforcaro
parent c8cabd433a
commit 2f8fac3528
Notes: sideshowbarker 2024-07-17 22:41:14 +09:00

View file

@ -40,17 +40,19 @@ bool Crash::run(RunType run_type)
if (prctl(PR_SET_DUMPABLE, 0, 0) < 0)
perror("prctl(PR_SET_DUMPABLE)");
#endif
return do_report(m_crash_function());
exit(0);
exit((int)m_crash_function());
}
int status;
waitpid(pid, &status, 0);
if (WIFEXITED(status)) {
return do_report(Failure(WEXITSTATUS(status)));
}
if (WIFSIGNALED(status)) {
outln("\x1B[32mPASS\x1B[0m: Terminated with signal {}", WTERMSIG(status));
return true;
}
return false;
VERIFY_NOT_REACHED();
}
}