On Thu, Oct 17, 2019 at 11:09 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> > Signed-off-by: Knut Omang <knut.omang@xxxxxxxxxx> > --- > 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); Can you just export sysctl_hung_task_timeout_secs? I don't mean to make you redo all this work for one symbol twice, but I thought we agreed on just exposing this symbol, but in a namespace. It seemed like a good use case for that namespaced exporting thing that Luis was talking about. As I understood it, you would have to export it in the module that defines it, and then use the new MODULE_IMPORT_NS() macro here. > + > 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 > -- > 1.8.3.1 >