Making kunit itself buildable as a module allows for "always-on" kunit configuration; specifying CONFIG_KUNIT=m means the module is built but only used when loaded. Kunit test modules will load kunit.ko as an implicit dependency, so simply running "modprobe my-kunit-tests" will load the tests along with the kunit module and run them.
Signed-off-by: Knut Omang knut.omang@oracle.com Signed-off-by: Alan Maguire alan.maguire@oracle.com --- kunit/Kconfig | 2 +- kunit/Makefile | 9 +++++++++ kunit/test.c | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/kunit/Kconfig b/kunit/Kconfig index f28bf086..d84f480 100644 --- a/kunit/Kconfig +++ b/kunit/Kconfig @@ -5,7 +5,7 @@ menu "KUnit support"
config KUNIT - bool "Enable support for unit tests (KUnit)" + tristate "Enable support for unit tests (KUnit)" help Enables support for kernel unit tests (KUnit), a lightweight unit testing and mocking framework for the Linux kernel. These tests are diff --git a/kunit/Makefile b/kunit/Makefile index 769d940..932a3f2 100644 --- a/kunit/Makefile +++ b/kunit/Makefile @@ -1,7 +1,16 @@ +ifeq ($(CONFIG_KUNIT),m) +obj-$(CONFIG_KUNIT) += kunit.o + +kunit-objs += test.o \ + string-stream.o \ + assert.o \ + try-catch.o +else obj-$(CONFIG_KUNIT) += test.o \ string-stream.o \ assert.o \ try-catch.o +endif
obj-$(CONFIG_KUNIT_TEST) += test-test.o \ string-stream-test.o diff --git a/kunit/test.c b/kunit/test.c index e7896f1..6024627 100644 --- a/kunit/test.c +++ b/kunit/test.c @@ -484,3 +484,7 @@ void kunit_cleanup(struct kunit *test) } } EXPORT_SYMBOL_GPL(kunit_cleanup); + +#ifdef MODULE +MODULE_LICENSE("GPL"); +#endif /* MODULE */