diff options
Diffstat (limited to 'lib/igt_core.c')
-rw-r--r-- | lib/igt_core.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/igt_core.c b/lib/igt_core.c index b197932a..5c205819 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -204,6 +204,7 @@ static unsigned int exit_handler_count; /* subtests helpers */ static bool list_subtests = false; static char *run_single_subtest = NULL; +static bool run_single_subtest_found = false; static const char *in_subtest = NULL; static bool in_fixture = false; static bool test_with_subtests = false; @@ -484,9 +485,14 @@ bool __igt_run_subtest(const char *subtest_name) return false; } - if (run_single_subtest && - strcmp(subtest_name, run_single_subtest) != 0) - return false; + if (run_single_subtest) { + if (strcmp(subtest_name, run_single_subtest) != 0) + return false; + else + run_single_subtest_found = true; + } + + if (skip_subtests_henceforth) { printf("Subtest %s: %s\n", subtest_name, @@ -722,6 +728,12 @@ void igt_exit(void) { igt_exit_called = true; + if (run_single_subtest && !run_single_subtest_found) { + igt_warn("Unknown subtest: %s\n", run_single_subtest); + exit(-1); + } + + if (igt_only_list_subtests()) exit(IGT_EXIT_SUCCESS); |