mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00: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.
|
// Clear the taskbar progress.
|
||||||
if (TestRunner::the() && TestRunner::the()->is_printing_progress())
|
if (TestRunner::the() && TestRunner::the()->is_printing_progress())
|
||||||
warn("\033]9;-1;\033\\");
|
warn("\033]9;-1;\033\\");
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void cleanup_and_exit()
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,17 @@ static StringView g_program_name { "test-js"sv };
|
||||||
static void handle_sigabrt(int)
|
static void handle_sigabrt(int)
|
||||||
{
|
{
|
||||||
dbgln("{}: SIGABRT received, cleaning up.", g_program_name);
|
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)
|
int main(int argc, char** argv)
|
||||||
|
|
Loading…
Reference in a new issue