[igt-dev] [PATCH i-g-t 6/8] lib/igt_kmod: place KUnit tests on a subtest
Mauro Carvalho Chehab
mauro.chehab at linux.intel.com
Tue Jun 6 13:57:27 UTC 2023
On Tue, 06 Jun 2023 12:03:04 +0200
Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com> wrote:
> > > > > > + igt_subtest_with_dynamic("all-tests")
> > > > >
> > > > > Why can't we use module_name as subtest name?
> > > >
> > > > We can, but this preserves the old behavior. So, the existing
> documentation
> > > > won't break.
> > >
> > > Where is this old behavior documented? In the current code I can't find
> any
> > > occurrence of "test-all" other than inside igt_kmod.c:igt_ksleftest(), not
> > > documented in any way.
> > >
> > > Wasn't the old behavior a result of a limitation rather than a feature?
> >
> > Take a look at igt_kselftests():
> >
> > igt_subtest_with_dynamic(filter ?: "all-tests") {
> > igt_list_for_each_entry_safe(tl, tn, &tests, link) {
> > unsigned long taints;
> >
> > igt_dynamic_f("%s", unfilter(filter, tl->name))
> > igt_kselftest_execute(&tst, tl, options,
> result);
> > free(tl);
> >
> > The default when "filter" is not used is "all-tests".
>
> Yes, I did look into igt_kselftest() and did notice the use of "all-tests",
> but for me that's not a documentation of an expected behavior, only a not
> quite fortunate implementation detail, forced by a mix of IGT contraints on
> one hand and implementation specifics of kernel side of i915 selftests on the
> other.
No, it is not just that. The tests actually announce that at runtime.
So, if you run the test with --list, you'll see:
$ ./build/tests/drm_mm --list-subtests
all-tests
And this is what it is used to check for testplan documentation.
> When you call an IGT test with a subtest name specified then only that subtest
> is executed, no matter if that's a selftest or a userspace test.
>
> When you call a userspace IGT test with no subtest name (pattern) specified
> then all subtests are executed and their names displayed. But when you do the
> same for an IGT selftest then all selftests are executed as one subtest named
> "all-tests". Do you think that's intentional, not a result of some
> constraints which no longer apply for kunit tests? Why do you prefer to keep
> the old inconsistent behavior instead of implementing IGT kunit tests to
> behave consistently with userspace IGT tests?
We can use whatever other name, provided that the output of
--list-subtests will be identical to the dynamic subtest. If not,
build will fail when checking for documentation inconsistencies.
Regards,
Mauro
More information about the igt-dev
mailing list