[PATCH 3/5] kunit: string-stream-test: Make it a separate module

From: Ivan Orlov
Date: Tue Jun 04 2024 - 08:34:23 EST


Currently, the only way to build string-stream-test is by setting
CONFIG_KUNIT_TEST=y. However, CONFIG_KUNIT_TEST is a config option for
a different test (`kunit-test.c`).

Introduce a new Kconfig entry in order to be able to build the
string-stream-test test as a separate module. Import the KUnit namespace
in the test so we could have string-stream functions accessible.

Signed-off-by: Ivan Orlov <ivan.orlov0322@xxxxxxxxx>
---
lib/kunit/Kconfig | 8 ++++++++
lib/kunit/Makefile | 2 +-
lib/kunit/string-stream-test.c | 2 ++
3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/kunit/Kconfig b/lib/kunit/Kconfig
index 34d7242d526d..b0713c0f9265 100644
--- a/lib/kunit/Kconfig
+++ b/lib/kunit/Kconfig
@@ -45,6 +45,14 @@ config KUNIT_TEST
purposes by developers interested in testing that KUnit works as
expected.

+config KUNIT_STRING_STREAM_TEST
+ tristate "KUnit test for string-stream" if !KUNIT_ALL_TESTS
+ default KUNIT_ALL_TESTS
+ help
+ Enables the KUnit test for the string-stream (C++ stream style string
+ builder used in KUnit for building messages). For the string-stream
+ implementation, see lib/kunit/string-stream.c.
+
config KUNIT_EXAMPLE_TEST
tristate "Example test for KUnit" if !KUNIT_ALL_TESTS
default KUNIT_ALL_TESTS
diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
index 900e6447c8e8..4793a3960f07 100644
--- a/lib/kunit/Makefile
+++ b/lib/kunit/Makefile
@@ -18,10 +18,10 @@ endif
obj-y += hooks.o

obj-$(CONFIG_KUNIT_TEST) += kunit-test.o
+obj-$(CONFIG_KUNIT_STRING_STREAM_TEST) += string-stream-test.o

# string-stream-test compiles built-in only.
ifeq ($(CONFIG_KUNIT_TEST),y)
-obj-$(CONFIG_KUNIT_TEST) += string-stream-test.o
obj-$(CONFIG_KUNIT_TEST) += assert_test.o
endif

diff --git a/lib/kunit/string-stream-test.c b/lib/kunit/string-stream-test.c
index 7511442ea98f..d03cac934e04 100644
--- a/lib/kunit/string-stream-test.c
+++ b/lib/kunit/string-stream-test.c
@@ -534,3 +534,5 @@ static struct kunit_suite string_stream_test_suite = {
.init = string_stream_test_init,
};
kunit_test_suites(&string_stream_test_suite);
+MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING);
+MODULE_LICENSE("GPL");
--
2.34.1