init: don't generate tombstones for expected test failures
The firmware_handler.HandleAbort and subcontext.RecoverAfterAbort tests intentionally abort in the child process to ensure that ueventd/init can recover if their child processes die. This generates a tombstone which causes confusion. This change resets SIGABRT to SIG_DFL right before the abort(), so that the child processes will exit normally without generating a tombstone or writing a crash to logcat. Bug: 169771958 Bug: 175383788 Test: run the above tests and verify no stack traces are printed to logcat and no tombstones are generated. Change-Id: Ica09548d1c7a766bf5d9ff2e26c9fd558e85c7c1
This commit is contained in:
parent
5a611cb834
commit
94b1c57d93
2 changed files with 4 additions and 0 deletions
|
@ -79,6 +79,8 @@ TEST(firmware_handler, HandleAbort) {
|
|||
}
|
||||
|
||||
int HandleAbort(int argc, char** argv) {
|
||||
// Since this is an expected failure, disable debuggerd to not generate a tombstone.
|
||||
signal(SIGABRT, SIG_DFL);
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -202,6 +202,8 @@ BuiltinFunctionMap BuildTestFunctionMap() {
|
|||
|
||||
// For RecoverAfterAbort
|
||||
auto do_cause_log_fatal = [](const BuiltinArguments& args) -> Result<void> {
|
||||
// Since this is an expected failure, disable debuggerd to not generate a tombstone.
|
||||
signal(SIGABRT, SIG_DFL);
|
||||
return Error() << std::string(4097, 'f');
|
||||
};
|
||||
auto do_generate_sane_error = [](const BuiltinArguments& args) -> Result<void> {
|
||||
|
|
Loading…
Reference in a new issue