mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 00:50:22 +00:00
LibTest: Do not cleanly exit when abort() is called
Instead, do the cleanup, remove the signal handler, and abort() again.
This commit is contained in:
parent
578bf6c45e
commit
13c1514889
Notes:
sideshowbarker
2024-07-18 17:19:23 +09:00
Author: https://github.com/alimpfard Commit: https://github.com/SerenityOS/serenity/commit/13c15148897 Pull-request: https://github.com/SerenityOS/serenity/pull/7482 Reviewed-by: https://github.com/ADKaster
2 changed files with 17 additions and 2 deletions
|
@ -181,11 +181,16 @@ inline void TestRunnerGlobalObject::initialize_global_object()
|
|||
}
|
||||
}
|
||||
|
||||
inline void cleanup_and_exit()
|
||||
inline void cleanup()
|
||||
{
|
||||
// Clear the taskbar progress.
|
||||
if (TestRunner::the() && TestRunner::the()->is_printing_progress())
|
||||
warn("\033]9;-1;\033\\");
|
||||
}
|
||||
|
||||
inline void cleanup_and_exit()
|
||||
{
|
||||
cleanup();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,17 @@ static StringView g_program_name { "test-js"sv };
|
|||
static void handle_sigabrt(int)
|
||||
{
|
||||
dbgln("{}: SIGABRT received, cleaning up.", g_program_name);
|
||||
cleanup_and_exit();
|
||||
cleanup();
|
||||
struct sigaction act;
|
||||
memset(&act, 0, sizeof(act));
|
||||
act.sa_flags = SA_NOCLDWAIT;
|
||||
act.sa_handler = SIG_DFL;
|
||||
int rc = sigaction(SIGABRT, &act, nullptr);
|
||||
if (rc < 0) {
|
||||
perror("sigaction");
|
||||
exit(1);
|
||||
}
|
||||
abort();
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
|
|
Loading…
Reference in a new issue