summaryrefslogtreecommitdiff
path: root/runner
diff options
context:
space:
mode:
Diffstat (limited to 'runner')
-rw-r--r--runner/job_list.c6
-rw-r--r--runner/runner_tests.c20
2 files changed, 26 insertions, 0 deletions
diff --git a/runner/job_list.c b/runner/job_list.c
index 9cf19c45..97bbb0be 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -211,6 +211,12 @@ static bool job_list_from_test_list(struct job_list *job_list,
if ((delim = strchr(line, '#')) != NULL)
*delim = '\0';
+ if (settings->exclude_regexes.size && matches_any(line, &settings->exclude_regexes))
+ continue;
+
+ if (settings->include_regexes.size && !matches_any(line, &settings->include_regexes))
+ continue;
+
if (sscanf(line, "igt@%ms", &binary) == 1) {
if ((delim = strchr(binary, '@')) != NULL)
*delim++ = '\0';
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 1a95a75a..b03f2acf 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -562,6 +562,26 @@ igt_main
igt_assert_eqstr(list.entries[0].subtests[0], "first-subtest");
igt_assert_eqstr(list.entries[multiple ? 0 : 1].subtests[multiple ? 1 : 0], "second-subtest");
}
+
+ igt_subtest_f("job-list-testlist-filtered-%s", multiple ? "multiple" : "normal") {
+ char *argv[] = { "runner",
+ "--test-list", filename,
+ multiple ? "--multiple-mode" : "--sync",
+ "-t", "successtest",
+ "-x", "first",
+ testdatadir,
+ "path-to-results",
+ };
+
+ igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(create_job_list(&list, &settings));
+
+ igt_assert_eq(list.size, 1);
+ igt_assert_eqstr(list.entries[0].binary, "successtest");
+
+ igt_assert_eq(list.entries[0].subtest_count, 1);
+ igt_assert_eqstr(list.entries[0].subtests[0], "second-subtest");
+ }
}
igt_fixture {