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: Alan Maguire alan.maguire@oracle.com Signed-off-by: Knut Omang knut.omang@oracle.com --- lib/kunit/Kconfig | 2 +- lib/kunit/Makefile | 4 +++- lib/kunit/test.c | 2 ++ lib/kunit/try-catch.c | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/lib/kunit/Kconfig b/lib/kunit/Kconfig index 9ebd5e6..065aa16 100644 --- a/lib/kunit/Kconfig +++ b/lib/kunit/Kconfig @@ -3,7 +3,7 @@ #
menuconfig KUNIT - bool "KUnit - Enable support for unit tests" + tristate "KUnit - Enable support for unit tests" 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/lib/kunit/Makefile b/lib/kunit/Makefile index 769d940..8e2635a 100644 --- a/lib/kunit/Makefile +++ b/lib/kunit/Makefile @@ -1,4 +1,6 @@ -obj-$(CONFIG_KUNIT) += test.o \ +obj-$(CONFIG_KUNIT) += kunit.o + +kunit-objs += test.o \ string-stream.o \ assert.o \ try-catch.o diff --git a/lib/kunit/test.c b/lib/kunit/test.c index e8b2443..c0ace36 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -523,3 +523,5 @@ void *kunit_find_symbol(const char *sym) return ERR_PTR(-ENOENT); } EXPORT_SYMBOL(kunit_find_symbol); + +MODULE_LICENSE("GPL"); diff --git a/lib/kunit/try-catch.c b/lib/kunit/try-catch.c index 1c1e9af..72fc8ed 100644 --- a/lib/kunit/try-catch.c +++ b/lib/kunit/try-catch.c @@ -31,6 +31,8 @@ static int kunit_generic_run_threadfn_adapter(void *data) complete_and_exit(try_catch->try_completion, 0); }
+KUNIT_VAR_SYMBOL(sysctl_hung_task_timeout_secs, unsigned long); + static unsigned long kunit_test_timeout(void) { unsigned long timeout_msecs; @@ -52,6 +54,7 @@ static unsigned long kunit_test_timeout(void) * For more background on this topic, see: * https://mike-bland.com/2011/11/01/small-medium-large.html */ + KUNIT_INIT_VAR_SYMBOL(NULL, sysctl_hung_task_timeout_secs); if (sysctl_hung_task_timeout_secs) { /* * If sysctl_hung_task is active, just set the timeout to some