The current kunit execution model is to provide base kunit functionality and tests built-in to the kernel. The aim of this series is to allow building kunit itself and tests as modules. This in turn allows a simple form of selective execution; load the module you wish to test. In doing so, kunit itself (if also built as a module) will be loaded as an implicit dependency.
Because this requires a core API modification - if a module delivers multiple suites, they must be declared with the kunit_test_suites() macro - we're proposing this patch as a candidate to be applied to the test tree before too many kunit consumers appear. We attempt to deal with existing consumers in patch 1.
Changes since v1:
- sent correct patch set; apologies, previous patch set was built prior to kunit move to lib/ and should be ignored.
Patch 1 consists changes needed to support loading tests as modules. Patch 2 allows kunit itself to be loaded as a module. Patch 3 documents module support.
Alan Maguire (3): kunit: allow kunit tests to be loaded as a module kunit: allow kunit to be loaded as a module kunit: update documentation to describe module-based build
Documentation/dev-tools/kunit/faq.rst | 3 ++- Documentation/dev-tools/kunit/index.rst | 3 +++ Documentation/dev-tools/kunit/usage.rst | 16 ++++++++++++++++ include/kunit/test.h | 30 +++++++++++++++++++++++------- kernel/sysctl-test.c | 6 +++++- lib/Kconfig.debug | 4 ++-- lib/kunit/Kconfig | 6 +++--- lib/kunit/Makefile | 4 +++- lib/kunit/assert.c | 8 ++++++++ lib/kunit/example-test.c | 6 +++++- lib/kunit/string-stream-test.c | 9 +++++++-- lib/kunit/string-stream.c | 7 +++++++ lib/kunit/test-test.c | 8 ++++++-- lib/kunit/test.c | 12 ++++++++++++ lib/kunit/try-catch.c | 8 ++++++-- 15 files changed, 108 insertions(+), 22 deletions(-)