[igt-dev] [PATCH i-g-t v2] i915/selftest: Allow filtering of individual subtests

Chris Wilson chris at chris-wilson.co.uk
Tue Jan 29 23:44:58 UTC 2019


Take an environment variable, SELFTESTS=foo,bar, and pass that along to
the kernel (as i915.st_filter=foo,bar) to provide fine grained test
selection. This can be either as an exact match to select only that
test, or to exclude only test. For example,

SELFTESTS=igt_vma_create,igt_vma_pin1 i915_selftest --run mock_vma
SELFTESTS=!igt_vma_create i915_selftest --run mock_vma

v2: Replace NULL with the empty string.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/i915/selftest.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tests/i915/selftest.c b/tests/i915/selftest.c
index 80e515c61..6d597e682 100644
--- a/tests/i915/selftest.c
+++ b/tests/i915/selftest.c
@@ -28,10 +28,16 @@ IGT_TEST_DESCRIPTION("Basic unit tests for i915.ko");
 
 igt_main
 {
-	igt_kselftests("i915",
-		       "mock_selftests=-1 disable_display=1",
-		       NULL, "mock");
-	igt_kselftests("i915",
-		       "live_selftests=-1 disable_display=1",
-		       "live_selftests", "live");
+	const char *env = getenv("SELFTESTS") ?: "";
+	char opts[1024];
+
+	igt_assert(snprintf(opts, sizeof(opts),
+			    "mock_selftests=-1 disable_display=1 st_filter=%s",
+			    env) < sizeof(opts));
+	igt_kselftests("i915", opts, NULL, "mock");
+
+	igt_assert(snprintf(opts, sizeof(opts),
+			    "live_selftests=-1 disable_display=1 st_filter=%s",
+			    env) < sizeof(opts));
+	igt_kselftests("i915", opts, "live_selftests", "live");
 }
-- 
2.20.1



More information about the igt-dev mailing list