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

Stephen Boyd
2019-11-19T21:05:55Z

Quoting Alan Maguire (2019-11-15 02:16:09)
> 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).
>
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> Signed-off-by: Knut Omang <knut.omang@oracle.com>
> ---
> 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 | 88 -----------
> lib/kunit/kunit-example-test.c | 90 +++++++++++
> lib/kunit/kunit-test.c | 334 +++++++++++++++++++++++++++++++++++++++++
> lib/kunit/string-stream-test.c | 2 +-
> lib/kunit/test-test.c | 333 ----------------------------------------
> lib/kunit/test.c | 8 +
> lib/kunit/try-catch.c | 2 +
> lib/list-test.c | 4 +-

Can you generate your patches with -M or -C? Hopefully that will find
copies and only show us the diff between the two files.

> 17 files changed, 494 insertions(+), 443 deletions(-)
> delete mode 100644 lib/kunit/example-test.c
> create mode 100644 lib/kunit/kunit-example-test.c
> create mode 100644 lib/kunit/kunit-test.c
> delete mode 100644 lib/kunit/test-test.c