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 <ch...@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

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

Reply via email to