From b35bfa32fe672d67ced8555557e3e707ace211ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?=
 <zbigniew.kempczynski@intel.com>
Date: Wed, 8 Mar 2023 08:53:34 +0100
Subject: [PATCH] runner/job_list: return error on crashes while running
 --list-subtests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Changes on tests may break --list-subtests, if they, for instance,
someone adds a code outside igt_subtests that depends on igt_fixture
to run, causing:

        Received signal SIGABRT.
        Stack trace:
         #0 [fatal_sig_handler+0x17b]
         #1 [__sigaction+0x50]
         #2 [__pthread_kill_implementation+0x10c]
         #3 [gsignal+0x16]
         #4 [abort+0xd7]
         #5 [__assert_fail_base.cold+0xf]
         #6 [__assert_fail+0x46]
         #7 [internal_assert+0xe5]
         #8 [igt_fail+0xea]
         #9 [__igt_fail_assert+0x10e]
         #10 [xe_number_hw_engines+0x6b]
         #11 [__igt_unique____real_main1528+0x1ac0]
         #12 [main+0x23]
         #13 [__libc_start_call_main+0x80]
         #14 [__libc_start_main+0x89]
         #15 [_start+0x25]
        Aborted (core dumped)

IGT runner currently prints the message, but don't ignore the
error. That prevents scripts to rely on the IGT testlist
output, as the list will miss subtests.

So, instead, return an error.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 runner/job_list.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/runner/job_list.c b/runner/job_list.c
index a259b9531..e6ea83631 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -130,6 +130,7 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
 		}
 	} else {
 		fprintf(stderr, "Test binary %s died unexpectedly\n", binary);
+		exit(1);
 	}
 }
 
-- 
GitLab