Re: [PATCH v5 linux-kselftest-test 3/6] kunit: allow kunit tests to be loaded as a module

From: Theodore Y. Ts'o
Date: Tue Dec 03 2019 - 19:39:26 EST


On Tue, Dec 03, 2019 at 09:54:25AM -0800, Brendan Higgins wrote:
> On Tue, Dec 3, 2019 at 4:08 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote:
> >
> > As tests are added to kunit, it will become less feasible to execute
> > all built tests together. By supporting modular tests we provide
> > a simple way to do selective execution on a running system; specifying
> >
> > CONFIG_KUNIT=y
> > CONFIG_KUNIT_EXAMPLE_TEST=m
> >
> > ...means we can simply "insmod example-test.ko" to run the tests.
> >
> > To achieve this we need to do the following:
> >
> > o export the required symbols in kunit
> > o string-stream tests utilize non-exported symbols so for now we skip
> > building them when CONFIG_KUNIT_TEST=m.
> > o support a new way of declaring test suites. Because a module cannot
> > do multiple late_initcall()s, we provide a kunit_test_suites() macro
> > to declare multiple suites within the same module at once.
> > o some test module names would have been too general ("test-test"
> > and "example-test" for kunit tests, "inode-test" for ext4 tests);
> > rename these as appropriate ("kunit-test", "kunit-example-test"
> > and "ext4-inode-test" respectively).
> >
> > Co-developed-by: Knut Omang <knut.omang@xxxxxxxxxx>
> > Signed-off-by: Knut Omang <knut.omang@xxxxxxxxxx>
> > Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx>
>
> Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>

Acked-by: Theodore Ts'o <tytso@xxxxxxx> # for ext4 bits


I do have one question, out of curiosity --- for people who aren't
using UML to run Kunit tests, and are either running the kunit tests
during boot, or when the module is loaded, is there the test framework
to automatically extract the test reports out of dmesg?

I can boot a kernel with kunit tests enabled using kvm, and I see it
splatted intermixed with the rest of the kernel boot messages. This
is how I tested the 32-bit ext4 inode test fix. But I had to manually
find the test output. Is that the expected way people are supposed to
be using Kunit tests w/o using UML and the python runner?

Thanks,

- Ted