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

From: Brendan Higgins
Date: Tue Dec 03 2019 - 12:54:46 EST


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>

> ---
> fs/ext4/Kconfig | 2 +-
> fs/ext4/Makefile | 5 ++++
> fs/ext4/inode-test.c | 4 ++-
> include/kunit/test.h | 35 +++++++++++++++-------
> kernel/sysctl-test.c | 4 ++-
> lib/Kconfig.debug | 4 +--
> lib/kunit/Kconfig | 4 +--
> lib/kunit/Makefile | 10 +++++--
> lib/kunit/assert.c | 8 +++++
> lib/kunit/{example-test.c => kunit-example-test.c} | 4 ++-
> lib/kunit/{test-test.c => kunit-test.c} | 5 ++--
> lib/kunit/string-stream-test.c | 2 +-
> lib/kunit/test.c | 8 +++++
> lib/kunit/try-catch.c | 2 ++
> lib/list-test.c | 4 ++-
> 15 files changed, 76 insertions(+), 25 deletions(-)
> rename lib/kunit/{example-test.c => kunit-example-test.c} (97%)
> rename lib/kunit/{test-test.c => kunit-test.c} (98%)

Ted, David, and Iurii, can you each review/ack for the bits that each
of you own?

Thanks for all your hard work on this Alan!