mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 00:16:18 +00:00
lib: exit immediately if igt_fail is called in an exit handler
Exit immediately if the test is already exiting and igt_fail is called. This can happen if an igt_assert fails in an exit handler. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91349 Signed-off-by: Thomas Wood <thomas.wood@intel.com>
This commit is contained in:
parent
51576b7ad6
commit
e65c69b995
@ -221,6 +221,7 @@ static const char *in_subtest = NULL;
|
|||||||
static struct timespec subtest_time;
|
static struct timespec subtest_time;
|
||||||
static bool in_fixture = false;
|
static bool in_fixture = false;
|
||||||
static bool test_with_subtests = false;
|
static bool test_with_subtests = false;
|
||||||
|
static bool in_atexit_handler = false;
|
||||||
static enum {
|
static enum {
|
||||||
CONT = 0, SKIP, FAIL
|
CONT = 0, SKIP, FAIL
|
||||||
} skip_subtests_henceforth = CONT;
|
} skip_subtests_henceforth = CONT;
|
||||||
@ -945,6 +946,11 @@ void igt_fail(int exitcode)
|
|||||||
|
|
||||||
igt_debug_wait_for_keypress("failure");
|
igt_debug_wait_for_keypress("failure");
|
||||||
|
|
||||||
|
/* Exit immediately if the test is already exiting and igt_fail is
|
||||||
|
* called. This can happen if an igt_assert fails in an exit handler */
|
||||||
|
if (in_atexit_handler)
|
||||||
|
_exit(IGT_EXIT_FAILURE);
|
||||||
|
|
||||||
if (!failed_one)
|
if (!failed_one)
|
||||||
igt_exitcode = exitcode;
|
igt_exitcode = exitcode;
|
||||||
|
|
||||||
@ -1410,6 +1416,8 @@ static void call_exit_handlers(int sig)
|
|||||||
|
|
||||||
static void igt_atexit_handler(void)
|
static void igt_atexit_handler(void)
|
||||||
{
|
{
|
||||||
|
in_atexit_handler = true;
|
||||||
|
|
||||||
restore_all_sig_handler();
|
restore_all_sig_handler();
|
||||||
|
|
||||||
if (!exit_handler_disabled)
|
if (!exit_handler_disabled)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user