path: root/lib/kunit/try-catch.c
diff options
authorAlan Maguire <>2020-01-06 22:28:20 +0000
committerShuah Khan <>2020-01-09 16:42:29 -0700
commitc475c77d5b56398303e726969e81208196b3aab3 (patch)
tree13b19c7eaaf702c0eb60dfcb59f4922e2e81b005 /lib/kunit/try-catch.c
parent9bbb11c6be4623e38fdef8af0178c174acded9a6 (diff)
kunit: allow kunit tests to be loaded as a module
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 drivers/base/power/qos-test.c contains a few unexported interface references, namely freq_qos_read_value() and freq_constraints_init(). Both of these could be potentially defined as static inline functions in include/linux/pm_qos.h, but for now we simply avoid supporting module build for that test suite. 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). Also define kunit_test_suite() via kunit_test_suites() as callers in other trees may need the old definition. Co-developed-by: Knut Omang <> Signed-off-by: Knut Omang <> Signed-off-by: Alan Maguire <> Reviewed-by: Brendan Higgins <> Acked-by: Theodore Ts'o <> # for ext4 bits Acked-by: David Gow <> # For list-test Reported-by: kbuild test robot <> Signed-off-by: Shuah Khan <>
Diffstat (limited to 'lib/kunit/try-catch.c')
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/kunit/try-catch.c b/lib/kunit/try-catch.c
index 4a66d1684b46..0247a281431a 100644
--- a/lib/kunit/try-catch.c
+++ b/lib/kunit/try-catch.c
@@ -20,6 +20,7 @@ void __noreturn kunit_try_catch_throw(struct kunit_try_catch *try_catch)
try_catch->try_result = -EFAULT;
complete_and_exit(try_catch->try_completion, -EFAULT);
static int kunit_generic_run_threadfn_adapter(void *data)
@@ -107,3 +108,4 @@ void kunit_try_catch_run(struct kunit_try_catch *try_catch, void *context)