When bisecting a test failure (one of many possibile subtests), we want
to exit as early as possible after the first subtest fails.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 lib/igt_core.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index ad79498..a7d6766 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -231,6 +231,7 @@ const char *igt_interactive_debug;
 
 /* subtests helpers */
 static bool list_subtests = false;
+static bool kill_on_fail = false;
 static char *run_single_subtest = NULL;
 static bool run_single_subtest_found = false;
 static const char *in_subtest = NULL;
@@ -258,6 +259,7 @@ enum {
  OPT_DESCRIPTION,
  OPT_DEBUG,
  OPT_INTERACTIVE_DEBUG,
+ OPT_KILL = 'k',
  OPT_HELP = 'h'
 };
 
@@ -585,11 +587,12 @@ static int common_init(int *argc, char **argv,
                {"help-description", 0, 0, OPT_DESCRIPTION},
                {"debug", optional_argument, 0, OPT_DEBUG},
                {"interactive-debug", optional_argument, 0, 
OPT_INTERACTIVE_DEBUG},
+               {"kill", 0, 0, OPT_KILL},
                {"help", 0, 0, OPT_HELP},
                {0, 0, 0, 0}
        };
        char *short_opts;
-       const char *std_short_opts = "h";
+       const char *std_short_opts = "kh";
        struct option *combined_opts;
        int extra_opt_count;
        int all_opt_count;
@@ -700,6 +703,9 @@ static int common_init(int *argc, char **argv,
                        print_test_description();
                        ret = -1;
                        goto out;
+               case OPT_KILL:
+                       kill_on_fail = true;
+                       break;
                case OPT_HELP:
                        print_usage(help_str, false);
                        ret = -1;
@@ -1148,6 +1154,8 @@ void igt_fail(int exitcode)
                        exit_subtest("TIMEOUT");
                else
                        exit_subtest("FAIL");
+               if (kill_on_fail)
+                       igt_exit();
        } else {
                assert(!test_with_subtests || in_fixture);
 
-- 
2.8.0.rc3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to