diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-02-20 14:52:06 +0200 |
---|---|---|
committer | Petri Latvala <petri.latvala@intel.com> | 2020-02-27 13:45:22 +0200 |
commit | bd3d1bc3c3f860b8ba5797ad4d363765194a6cb3 (patch) | |
tree | 4acc2ff954e8a62ce4a01214cea07299c24d177c | |
parent | 211151a39a5d5e204fff3d18a4b704aa478b7c07 (diff) |
lib: Update selftests to use dynamic subtests
Use the new igt_subtest_with_dynamic to nicely group the dynamic
subtests together.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Tomi Sarvela <tomi.p.sarvela@intel.com>
Acked-by: Martin Peres <martin.peres@linux.intel.com>
-rw-r--r-- | lib/igt_kmod.c | 23 | ||||
-rwxr-xr-x | tests/igt_command_line.sh | 9 |
2 files changed, 21 insertions, 11 deletions
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c index 05019c24c..e701545d3 100644 --- a/lib/igt_kmod.c +++ b/lib/igt_kmod.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include <ctype.h> #include <signal.h> #include <errno.h> @@ -602,6 +603,18 @@ void igt_kselftest_fini(struct igt_kselftest *tst) kmod_module_unref(tst->kmod); } +static const char *unfilter(const char *filter, const char *name) +{ + if (!filter) + return name; + + name += strlen(filter); + if (!isalpha(*name)) + name++; + + return name; +} + void igt_kselftests(const char *module_name, const char *options, const char *result, @@ -618,10 +631,12 @@ void igt_kselftests(const char *module_name, igt_require(igt_kselftest_begin(&tst) == 0); igt_kselftest_get_tests(tst.kmod, filter, &tests); - igt_list_for_each_entry_safe(tl, tn, &tests, link) { - igt_subtest_f("%s", tl->name) - igt_kselftest_execute(&tst, tl, options, result); - free(tl); + igt_subtest_with_dynamic(filter ?: "all") { + igt_list_for_each_entry_safe(tl, tn, &tests, link) { + igt_dynamic_f("%s", unfilter(filter, tl->name)) + igt_kselftest_execute(&tst, tl, options, result); + free(tl); + } } igt_fixture { diff --git a/tests/igt_command_line.sh b/tests/igt_command_line.sh index 291b65268..5356877c7 100755 --- a/tests/igt_command_line.sh +++ b/tests/igt_command_line.sh @@ -89,13 +89,8 @@ check_test () fi if [ $RET -eq 0 -a -z "$LIST" ]; then - # Subtest enumeration of kernel selftest launchers depends - # on the running kernel. If selftests are not enabled, - # they will output nothing and exit with 0. - if [ "$testname" != "i915_selftest" -a "$testname" != "drm_mm" -a "$testname" != "kms_selftest" -a "$testname" != "dmabuf" ]; then - echo " test does seem to be using igt_main() (should have subtests) and yet --list-subtests is empty!" - fail $test - fi + echo " test does seem to be using igt_main() (should have subtests) and yet --list-subtests is empty!" + fail $test fi } |