On Mon 2025-02-03 06:48:05, Tamir Duberstein wrote: > Convert the scanf() self-test to a KUnit test. > > In the interest of keeping the patch reasonably-sized this doesn't > refactor the tests into proper parameterized tests - it's all one big > test case. > > Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxx> > Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> # m68k > --- > This is one of just 3 remaining "Test Module" kselftests (the others > being bitmap and printf), the rest having been converted to KUnit. In > addition to the enclosed patch, please consider this an RFC on the > removal of the "Test Module" kselftest machinery. > > I tested this using: > > $ tools/testing/kunit/kunit.py run --arch arm64 --make_options LLVM=1 scanf Fortunately, the following still works ;-) $ modprobe scanf_kunit Just the messages in dmesg are in the ktap format. Anyway, I do not have strong opinion. I am fine with this change when similar tests are being tranformed to kunit tests. Acked-by: Petr Mladek <pmladek@xxxxxxxx> Should this go via the printk tree, please? Or is David going to take it via the kunit tree? Also see a nit below. > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -2427,6 +2427,23 @@ config ASYNC_RAID6_TEST > config TEST_HEXDUMP > tristate "Test functions located in the hexdump module at runtime" > > +config SCANF_KUNIT_TEST > + tristate "KUnit test scanf() family of functions at runtime" if !KUNIT_ALL_TESTS > + depends on KUNIT > + default KUNIT_ALL_TESTS > + help > + Enable this option to test the scanf functions at boot. > + > + KUnit tests run during boot and output the results to the debug log > + in TAP format (http://testanything.org/). Only useful for kernel devs > + running the KUnit test harness, and not intended for inclusion into a > + production build. > + > + For more information on KUnit and unit tests in general please refer > + to the KUnit documentation in Documentation/dev-tools/kunit/. > + > + If unsure, say N. > + > config STRING_KUNIT_TEST > tristate "KUnit test string functions at runtime" if !KUNIT_ALL_TESTS > depends on KUNIT > @@ -2443,9 +2460,6 @@ config TEST_KSTRTOX > config TEST_PRINTF > tristate "Test printf() family of functions at runtime" > > -config TEST_SCANF > - tristate "Test scanf() family of functions at runtime" > - > config TEST_BITMAP > tristate "Test bitmap_*() family of functions at runtime" > help > diff --git a/lib/Makefile b/lib/Makefile > index d5cfc7afbbb8..a53cf6dd1505 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -85,7 +85,6 @@ obj-$(CONFIG_TEST_STATIC_KEYS) += test_static_keys.o > obj-$(CONFIG_TEST_STATIC_KEYS) += test_static_key_base.o > obj-$(CONFIG_TEST_DYNAMIC_DEBUG) += test_dynamic_debug.o > obj-$(CONFIG_TEST_PRINTF) += test_printf.o > -obj-$(CONFIG_TEST_SCANF) += test_scanf.o > > obj-$(CONFIG_TEST_BITMAP) += test_bitmap.o > ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_KASAN),yy) > @@ -373,8 +372,9 @@ CFLAGS_bitfield_kunit.o := $(DISABLE_STRUCTLEAK_PLUGIN) > obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o > obj-$(CONFIG_CHECKSUM_KUNIT) += checksum_kunit.o > obj-$(CONFIG_UTIL_MACROS_KUNIT) += util_macros_kunit.o > -obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o > obj-$(CONFIG_HASHTABLE_KUNIT_TEST) += hashtable_test.o > +obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o This looks like an unrelated change. > +obj-$(CONFIG_SCANF_KUNIT_TEST) += scanf_kunit.o > obj-$(CONFIG_LINEAR_RANGES_TEST) += test_linear_ranges.o > obj-$(CONFIG_BITS_TEST) += test_bits.o > obj-$(CONFIG_CMDLINE_KUNIT_TEST) += cmdline_kunit.o Best Regards, Petr