summaryrefslogtreecommitdiff
path: root/lib/igt_kmod.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-02-20 14:52:06 +0200
committerPetri Latvala <petri.latvala@intel.com>2020-02-27 13:45:22 +0200
commitbd3d1bc3c3f860b8ba5797ad4d363765194a6cb3 (patch)
tree4acc2ff954e8a62ce4a01214cea07299c24d177c /lib/igt_kmod.c
parent211151a39a5d5e204fff3d18a4b704aa478b7c07 (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>
Diffstat (limited to 'lib/igt_kmod.c')
-rw-r--r--lib/igt_kmod.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 05019c24..e701545d 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 {