linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] KUnit test moves / renames
@ 2024-10-11  7:25 David Gow
  2024-10-11  7:25 ` [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir David Gow
                   ` (6 more replies)
  0 siblings, 7 replies; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	David Gow

As discussed in [1], the KUnit test naming scheme has changed to avoid
name conflicts (and tab-completion woes) with the files being tested.
These renames and moves have caused a nasty set of merge conflicts, so
this series collates and rebases them all to be applied via
mm-nonmm-unstable alongside any lib/ changes[2].

Thanks to everyone whose patches appear here, and everyone who reviewed
on the original series. I hope I didn't break them too much during the
rebase!

Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
Link: https://lore.kernel.org/lkml/CABVgOSmbSzcGUi=E4piSojh3A4_0GjE0fAYbqKjtYGbE9beYRQ@mail.gmail.com/ [2]
---

Bruno Sobreira França (1):
  lib/math: Add int_log test suite

Diego Vieira (1):
  lib/tests/kfifo_kunit.c: add tests for the kfifo structure

Gabriela Bittencourt (2):
  unicode: kunit: refactor selftest to kunit tests
  unicode: kunit: change tests filename and path

Kees Cook (1):
  lib: Move KUnit tests into tests/ subdirectory

Luis Felipe Hernandez (1):
  lib: math: Move kunit tests into tests/ subdir

 MAINTAINERS                                   |  19 +-
 arch/m68k/configs/amiga_defconfig             |   2 +-
 arch/m68k/configs/apollo_defconfig            |   2 +-
 arch/m68k/configs/atari_defconfig             |   2 +-
 arch/m68k/configs/bvme6000_defconfig          |   2 +-
 arch/m68k/configs/hp300_defconfig             |   2 +-
 arch/m68k/configs/mac_defconfig               |   2 +-
 arch/m68k/configs/multi_defconfig             |   2 +-
 arch/m68k/configs/mvme147_defconfig           |   2 +-
 arch/m68k/configs/mvme16x_defconfig           |   2 +-
 arch/m68k/configs/q40_defconfig               |   2 +-
 arch/m68k/configs/sun3_defconfig              |   2 +-
 arch/m68k/configs/sun3x_defconfig             |   2 +-
 arch/powerpc/configs/ppc64_defconfig          |   2 +-
 fs/unicode/Kconfig                            |   5 +-
 fs/unicode/Makefile                           |   2 +-
 fs/unicode/tests/.kunitconfig                 |   3 +
 .../{utf8-selftest.c => tests/utf8_kunit.c}   | 149 ++++++------
 fs/unicode/utf8-norm.c                        |   2 +-
 lib/Kconfig.debug                             |  31 ++-
 lib/Makefile                                  |  36 +--
 lib/math/Makefile                             |   5 +-
 lib/math/tests/Makefile                       |   6 +-
 .../{test_div64.c => tests/div64_kunit.c}     |   0
 lib/math/tests/int_log_kunit.c                |  75 ++++++
 .../mul_u64_u64_div_u64_kunit.c}              |   2 +-
 .../rational_kunit.c}                         |   0
 lib/tests/Makefile                            |  39 +++
 lib/{ => tests}/bitfield_kunit.c              |   0
 lib/{ => tests}/checksum_kunit.c              |   0
 lib/{ => tests}/cmdline_kunit.c               |   0
 lib/{ => tests}/cpumask_kunit.c               |   0
 lib/{ => tests}/fortify_kunit.c               |   0
 lib/{ => tests}/hashtable_test.c              |   0
 lib/{ => tests}/is_signed_type_kunit.c        |   0
 lib/tests/kfifo_kunit.c                       | 224 ++++++++++++++++++
 lib/{ => tests}/kunit_iov_iter.c              |   0
 lib/{ => tests}/list-test.c                   |   0
 lib/{ => tests}/memcpy_kunit.c                |   0
 lib/{ => tests}/overflow_kunit.c              |   0
 lib/{ => tests}/siphash_kunit.c               |   0
 lib/{ => tests}/slub_kunit.c                  |   0
 lib/{ => tests}/stackinit_kunit.c             |   0
 lib/{ => tests}/string_helpers_kunit.c        |   0
 lib/{ => tests}/string_kunit.c                |   0
 lib/{ => tests}/test_bits.c                   |   0
 lib/{ => tests}/test_fprobe.c                 |   0
 lib/{ => tests}/test_hash.c                   |   0
 lib/{ => tests}/test_kprobes.c                |   0
 lib/{ => tests}/test_linear_ranges.c          |   0
 lib/{ => tests}/test_list_sort.c              |   0
 lib/{ => tests}/test_sort.c                   |   0
 lib/{ => tests}/usercopy_kunit.c              |   0
 53 files changed, 474 insertions(+), 150 deletions(-)
 create mode 100644 fs/unicode/tests/.kunitconfig
 rename fs/unicode/{utf8-selftest.c => tests/utf8_kunit.c} (64%)
 rename lib/math/{test_div64.c => tests/div64_kunit.c} (100%)
 create mode 100644 lib/math/tests/int_log_kunit.c
 rename lib/math/{test_mul_u64_u64_div_u64.c => tests/mul_u64_u64_div_u64_kunit.c} (98%)
 rename lib/math/{rational-test.c => tests/rational_kunit.c} (100%)
 create mode 100644 lib/tests/Makefile
 rename lib/{ => tests}/bitfield_kunit.c (100%)
 rename lib/{ => tests}/checksum_kunit.c (100%)
 rename lib/{ => tests}/cmdline_kunit.c (100%)
 rename lib/{ => tests}/cpumask_kunit.c (100%)
 rename lib/{ => tests}/fortify_kunit.c (100%)
 rename lib/{ => tests}/hashtable_test.c (100%)
 rename lib/{ => tests}/is_signed_type_kunit.c (100%)
 create mode 100644 lib/tests/kfifo_kunit.c
 rename lib/{ => tests}/kunit_iov_iter.c (100%)
 rename lib/{ => tests}/list-test.c (100%)
 rename lib/{ => tests}/memcpy_kunit.c (100%)
 rename lib/{ => tests}/overflow_kunit.c (100%)
 rename lib/{ => tests}/siphash_kunit.c (100%)
 rename lib/{ => tests}/slub_kunit.c (100%)
 rename lib/{ => tests}/stackinit_kunit.c (100%)
 rename lib/{ => tests}/string_helpers_kunit.c (100%)
 rename lib/{ => tests}/string_kunit.c (100%)
 rename lib/{ => tests}/test_bits.c (100%)
 rename lib/{ => tests}/test_fprobe.c (100%)
 rename lib/{ => tests}/test_hash.c (100%)
 rename lib/{ => tests}/test_kprobes.c (100%)
 rename lib/{ => tests}/test_linear_ranges.c (100%)
 rename lib/{ => tests}/test_list_sort.c (100%)
 rename lib/{ => tests}/test_sort.c (100%)
 rename lib/{ => tests}/usercopy_kunit.c (100%)

-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-11  8:59   ` Geert Uytterhoeven
  2024-10-11  7:25 ` [PATCH 2/6] lib/math: Add int_log test suite David Gow
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Luis Felipe Hernandez, quic_jjohnson, macro, tpiepho, ricardo,
	linux-kernel-mentees, Nicolas Pitre, David Gow

From: Luis Felipe Hernandez <luis.hernandez093@gmail.com>

This patch is a follow-up task from a discussion stemming from point 3
in a recent patch introducing the int_pow kunit test [1] and
documentation regarding kunit test style and nomenclature [2].

Colocate all kunit test suites in lib/math/tests/ and
follow recommended naming convention for files <suite>_kunit.c
and kconfig entries CONFIG_<name>_KUNIT_TEST.

Link: https://lore.kernel.org/all/CABVgOS=-vh5TqHFCq_jo=ffq8v_nGgr6JsPnOZag3e6+19ysxQ@mail.gmail.com/ [1]
Link: https://docs.kernel.org/dev-tools/kunit/style.html [2]

Signed-off-by: Luis Felipe Hernandez <luis.hernandez093@gmail.com>
Acked-by: Nicolas Pitre <npitre@baylibre.com>
[Rebased on top of mm-nonmm-unstable.]
Signed-off-by: David Gow <davidgow@google.com>
---
 arch/m68k/configs/amiga_defconfig                           | 2 +-
 arch/m68k/configs/apollo_defconfig                          | 2 +-
 arch/m68k/configs/atari_defconfig                           | 2 +-
 arch/m68k/configs/bvme6000_defconfig                        | 2 +-
 arch/m68k/configs/hp300_defconfig                           | 2 +-
 arch/m68k/configs/mac_defconfig                             | 2 +-
 arch/m68k/configs/multi_defconfig                           | 2 +-
 arch/m68k/configs/mvme147_defconfig                         | 2 +-
 arch/m68k/configs/mvme16x_defconfig                         | 2 +-
 arch/m68k/configs/q40_defconfig                             | 2 +-
 arch/m68k/configs/sun3_defconfig                            | 2 +-
 arch/m68k/configs/sun3x_defconfig                           | 2 +-
 arch/powerpc/configs/ppc64_defconfig                        | 2 +-
 lib/Kconfig.debug                                           | 6 +++---
 lib/math/Makefile                                           | 5 +----
 lib/math/tests/Makefile                                     | 5 ++++-
 lib/math/{test_div64.c => tests/div64_kunit.c}              | 0
 .../mul_u64_u64_div_u64_kunit.c}                            | 2 +-
 lib/math/{rational-test.c => tests/rational_kunit.c}        | 0
 19 files changed, 22 insertions(+), 22 deletions(-)
 rename lib/math/{test_div64.c => tests/div64_kunit.c} (100%)
 rename lib/math/{test_mul_u64_u64_div_u64.c => tests/mul_u64_u64_div_u64_kunit.c} (98%)
 rename lib/math/{rational-test.c => tests/rational_kunit.c} (100%)

diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index d01dc47d52ea..7ba9311c084c 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_defconfig
@@ -619,7 +619,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index 46808e581d7b..273fe4032b85 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_defconfig
@@ -576,7 +576,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 4469a7839c9d..9976cda99fc1 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_defconfig
@@ -596,7 +596,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index c0719322c028..f59082c8fe06 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_defconfig
@@ -568,7 +568,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 8d429e63f8f2..6db3556da9ac 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_defconfig
@@ -578,7 +578,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index bafd33da27c1..25c06b5c83ee 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_defconfig
@@ -595,7 +595,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 6f5ca3f85ea1..35e57e0ee139 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_defconfig
@@ -681,7 +681,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index d16b328c7136..d253b686119a 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_defconfig
@@ -567,7 +567,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index 80f6c15a5ed5..62bc6ad63783 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_defconfig
@@ -568,7 +568,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index 0e81589f0ee2..caba39c61bac 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_defconfig
@@ -585,7 +585,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index 8cd785290339..a348f645ed55 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_defconfig
@@ -565,7 +565,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 78035369f60f..f8b3cfc3275b 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_defconfig
@@ -566,7 +566,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_TEST_DHRY=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_REED_SOLOMON_TEST=m
 CONFIG_ATOMIC64_SELFTEST=m
 CONFIG_ASYNC_RAID6_TEST=m
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index a5e3e7f97f4d..f1f21765c0c1 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -435,7 +435,7 @@ CONFIG_KUNIT=m
 CONFIG_KUNIT_ALL_TESTS=m
 CONFIG_LKDTM=m
 CONFIG_TEST_MIN_HEAP=m
-CONFIG_TEST_DIV64=m
+CONFIG_DIV64_KUNIT_TEST=m
 CONFIG_BACKTRACE_SELF_TEST=m
 CONFIG_TEST_REF_TRACKER=m
 CONFIG_RBTREE_TEST=m
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 856bc9f9c069..3ed6cf950f04 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2296,7 +2296,7 @@ config TEST_SORT
 
 	  If unsure, say N.
 
-config TEST_DIV64
+config DIV64_KUNIT_TEST
 	tristate "64bit/32bit division and modulo test"
 	depends on DEBUG_KERNEL || m
 	help
@@ -2306,7 +2306,7 @@ config TEST_DIV64
 
 	  If unsure, say N.
 
-config TEST_MULDIV64
+config MULDIV64_KUNIT_TEST
 	tristate "mul_u64_u64_div_u64() test"
 	depends on DEBUG_KERNEL || m
 	help
@@ -2993,7 +2993,7 @@ config TEST_OBJPOOL
 
 	  If unsure, say N.
 
-config INT_POW_TEST
+config INT_POW_KUNIT_TEST
 	tristate "Integer exponentiation (int_pow) test" if !KUNIT_ALL_TESTS
 	depends on KUNIT
 	default KUNIT_ALL_TESTS
diff --git a/lib/math/Makefile b/lib/math/Makefile
index 3ef11305f8d2..1c489501ff57 100644
--- a/lib/math/Makefile
+++ b/lib/math/Makefile
@@ -5,7 +5,4 @@ obj-$(CONFIG_CORDIC)		+= cordic.o
 obj-$(CONFIG_PRIME_NUMBERS)	+= prime_numbers.o
 obj-$(CONFIG_RATIONAL)		+= rational.o
 
-obj-$(CONFIG_INT_POW_TEST)  += tests/int_pow_kunit.o
-obj-$(CONFIG_TEST_DIV64)	+= test_div64.o
-obj-$(CONFIG_TEST_MULDIV64)	+= test_mul_u64_u64_div_u64.o
-obj-$(CONFIG_RATIONAL_KUNIT_TEST) += rational-test.o
+obj-y  += tests/
diff --git a/lib/math/tests/Makefile b/lib/math/tests/Makefile
index 6a169123320a..f9a0a0e6b73a 100644
--- a/lib/math/tests/Makefile
+++ b/lib/math/tests/Makefile
@@ -1,3 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
-obj-$(CONFIG_INT_POW_TEST) += int_pow_kunit.o
+obj-$(CONFIG_DIV64_KUNIT_TEST)    += div64_kunit.o
+obj-$(CONFIG_INT_POW_KUNIT_TEST)  += int_pow_kunit.o
+obj-$(CONFIG_MULDIV64_KUNIT_TEST) += mul_u64_u64_div_u64_kunit.o
+obj-$(CONFIG_RATIONAL_KUNIT_TEST) += rational_kunit.o
diff --git a/lib/math/test_div64.c b/lib/math/tests/div64_kunit.c
similarity index 100%
rename from lib/math/test_div64.c
rename to lib/math/tests/div64_kunit.c
diff --git a/lib/math/test_mul_u64_u64_div_u64.c b/lib/math/tests/mul_u64_u64_div_u64_kunit.c
similarity index 98%
rename from lib/math/test_mul_u64_u64_div_u64.c
rename to lib/math/tests/mul_u64_u64_div_u64_kunit.c
index 58d058de4e73..f61f571a0a2e 100644
--- a/lib/math/test_mul_u64_u64_div_u64.c
+++ b/lib/math/tests/mul_u64_u64_div_u64_kunit.c
@@ -49,7 +49,7 @@ static test_params test_values[] = {
  *
  * #!/bin/sh
  * sed -ne 's/^{ \+\(.*\), \+\(.*\), \+\(.*\), \+\(.*\) },$/\1 \2 \3 \4/p' \
- *     lib/math/test_mul_u64_u64_div_u64.c |
+ *     lib/math/tests/mul_u64_u64_div_u64_kunit.c |
  * while read a b c r; do
  *   expected=$( printf "obase=16; ibase=16; %X * %X / %X\n" $a $b $c | bc )
  *   given=$( printf "%X\n" $r )
diff --git a/lib/math/rational-test.c b/lib/math/tests/rational_kunit.c
similarity index 100%
rename from lib/math/rational-test.c
rename to lib/math/tests/rational_kunit.c
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 2/6] lib/math: Add int_log test suite
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
  2024-10-11  7:25 ` [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Bruno Sobreira França, linux-kernel-mentees, David Gow

From: Bruno Sobreira França <brunofrancadevsec@gmail.com>

This commit introduces KUnit tests for the intlog2 and intlog10
functions, which compute logarithms in base 2 and base 10, respectively.
The tests cover a range of inputs to ensure the correctness of these
functions across common and edge cases.

Signed-off-by: Bruno Sobreira França <brunofrancadevsec@gmail.com>
Reviewed-by: David Gow <davidgow@google.com>
[Rebased on top of mm-nonmm-unstable]
Signed-off-by: David Gow <davidgow@google.com>
---
 lib/Kconfig.debug              | 11 +++++
 lib/math/tests/Makefile        |  1 +
 lib/math/tests/int_log_kunit.c | 75 ++++++++++++++++++++++++++++++++++
 3 files changed, 87 insertions(+)
 create mode 100644 lib/math/tests/int_log_kunit.c

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 3ed6cf950f04..6571243ac232 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -3009,6 +3009,17 @@ config INT_POW_KUNIT_TEST
 
 	  If unsure, say N
 
+config INT_LOG_KUNIT_TEST
+        tristate "Integer log (int_log) test" if !KUNIT_ALL_TESTS
+        depends on KUNIT
+        default KUNIT_ALL_TESTS
+        help
+          This option enables the KUnit test suite for the int_log library, which
+          provides two functions to compute the integer logarithm in base 2 and
+          base 10, called respectively as intlog2 and intlog10.
+
+          If unsure, say N
+
 endif # RUNTIME_TESTING_MENU
 
 config ARCH_USE_MEMTEST
diff --git a/lib/math/tests/Makefile b/lib/math/tests/Makefile
index f9a0a0e6b73a..89a266241e98 100644
--- a/lib/math/tests/Makefile
+++ b/lib/math/tests/Makefile
@@ -2,5 +2,6 @@
 
 obj-$(CONFIG_DIV64_KUNIT_TEST)    += div64_kunit.o
 obj-$(CONFIG_INT_POW_KUNIT_TEST)  += int_pow_kunit.o
+obj-$(CONFIG_INT_LOG_KUNIT_TEST)  += int_log_kunit.o
 obj-$(CONFIG_MULDIV64_KUNIT_TEST) += mul_u64_u64_div_u64_kunit.o
 obj-$(CONFIG_RATIONAL_KUNIT_TEST) += rational_kunit.o
diff --git a/lib/math/tests/int_log_kunit.c b/lib/math/tests/int_log_kunit.c
new file mode 100644
index 000000000000..d750a1df37c1
--- /dev/null
+++ b/lib/math/tests/int_log_kunit.c
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <kunit/test.h>
+#include <linux/int_log.h>
+
+struct test_case_params {
+	u32 value;
+	unsigned int expected_result;
+	const char *name;
+};
+
+
+/* The expected result takes into account the log error */
+static const struct test_case_params intlog2_params[] = {
+	{0, 0, "Log base 2 of 0"},
+	{1, 0, "Log base 2 of 1"},
+	{2, 16777216, "Log base 2 of 2"},
+	{3, 26591232, "Log base 2 of 3"},
+	{4, 33554432, "Log base 2 of 4"},
+	{8, 50331648, "Log base 2 of 8"},
+	{16, 67108864, "Log base 2 of 16"},
+	{32, 83886080, "Log base 2 of 32"},
+	{U32_MAX, 536870911, "Log base 2 of MAX"},
+};
+
+static const struct test_case_params intlog10_params[] = {
+	{0, 0, "Log base 10 of 0"},
+	{1, 0, "Log base 10 of 1"},
+	{6, 13055203, "Log base 10 of 6"},
+	{10, 16777225, "Log base 10 of 10"},
+	{100, 33554450, "Log base 10 of 100"},
+	{1000, 50331675, "Log base 10 of 1000"},
+	{10000, 67108862, "Log base 10 of 10000"},
+	{U32_MAX, 161614247, "Log base 10 of MAX"}
+};
+
+static void get_desc(const struct test_case_params *tc, char *desc)
+{
+	strscpy(desc, tc->name, KUNIT_PARAM_DESC_SIZE);
+}
+
+
+KUNIT_ARRAY_PARAM(intlog2, intlog2_params, get_desc);
+
+static void intlog2_test(struct kunit *test)
+{
+	const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
+
+	KUNIT_EXPECT_EQ(test, tc->expected_result, intlog2(tc->value));
+}
+
+KUNIT_ARRAY_PARAM(intlog10, intlog10_params, get_desc);
+
+static void intlog10_test(struct kunit *test)
+{
+	const struct test_case_params *tc = (const struct test_case_params *)test->param_value;
+
+	KUNIT_EXPECT_EQ(test, tc->expected_result, intlog10(tc->value));
+}
+
+static struct kunit_case math_int_log_test_cases[] = {
+	KUNIT_CASE_PARAM(intlog2_test, intlog2_gen_params),
+	KUNIT_CASE_PARAM(intlog10_test, intlog10_gen_params),
+	{}
+};
+
+static struct kunit_suite int_log_test_suite = {
+	.name = "math-int_log",
+	.test_cases =  math_int_log_test_cases,
+};
+
+kunit_test_suites(&int_log_test_suite);
+
+MODULE_DESCRIPTION("math.int_log KUnit test suite");
+MODULE_LICENSE("GPL");
+
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
  2024-10-11  7:25 ` [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir David Gow
  2024-10-11  7:25 ` [PATCH 2/6] lib/math: Add int_log test suite David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-11  9:17   ` Vlastimil Babka
                     ` (2 more replies)
  2024-10-11  7:25 ` [PATCH 4/6] lib/tests/kfifo_kunit.c: add tests for the kfifo structure David Gow
                   ` (3 subsequent siblings)
  6 siblings, 3 replies; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Yury Norov, Rasmus Villemoes, Jason A . Donenfeld,
	Andy Shevchenko, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Geert Uytterhoeven,
	Nathan Chancellor, Fangrui Song, Steven Rostedt (Google),
	David Gow

From: Kees Cook <kees@kernel.org>

Following from the recent KUnit file naming discussion[1], move all
KUnit tests in lib/ into lib/tests/.

Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
Reviewed-by: David Gow <davidgow@google.com>
[Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
Signed-off-by: David Gow <davidgow@google.com>
---
 MAINTAINERS                            | 19 +++++++------
 lib/Makefile                           | 36 +-----------------------
 lib/tests/Makefile                     | 38 ++++++++++++++++++++++++++
 lib/{ => tests}/bitfield_kunit.c       |  0
 lib/{ => tests}/checksum_kunit.c       |  0
 lib/{ => tests}/cmdline_kunit.c        |  0
 lib/{ => tests}/cpumask_kunit.c        |  0
 lib/{ => tests}/fortify_kunit.c        |  0
 lib/{ => tests}/hashtable_test.c       |  0
 lib/{ => tests}/is_signed_type_kunit.c |  0
 lib/{ => tests}/kunit_iov_iter.c       |  0
 lib/{ => tests}/list-test.c            |  0
 lib/{ => tests}/memcpy_kunit.c         |  0
 lib/{ => tests}/overflow_kunit.c       |  0
 lib/{ => tests}/siphash_kunit.c        |  0
 lib/{ => tests}/slub_kunit.c           |  0
 lib/{ => tests}/stackinit_kunit.c      |  0
 lib/{ => tests}/string_helpers_kunit.c |  0
 lib/{ => tests}/string_kunit.c         |  0
 lib/{ => tests}/test_bits.c            |  0
 lib/{ => tests}/test_fprobe.c          |  0
 lib/{ => tests}/test_hash.c            |  0
 lib/{ => tests}/test_kprobes.c         |  0
 lib/{ => tests}/test_linear_ranges.c   |  0
 lib/{ => tests}/test_list_sort.c       |  0
 lib/{ => tests}/test_sort.c            |  0
 lib/{ => tests}/usercopy_kunit.c       |  0
 27 files changed, 49 insertions(+), 44 deletions(-)
 create mode 100644 lib/tests/Makefile
 rename lib/{ => tests}/bitfield_kunit.c (100%)
 rename lib/{ => tests}/checksum_kunit.c (100%)
 rename lib/{ => tests}/cmdline_kunit.c (100%)
 rename lib/{ => tests}/cpumask_kunit.c (100%)
 rename lib/{ => tests}/fortify_kunit.c (100%)
 rename lib/{ => tests}/hashtable_test.c (100%)
 rename lib/{ => tests}/is_signed_type_kunit.c (100%)
 rename lib/{ => tests}/kunit_iov_iter.c (100%)
 rename lib/{ => tests}/list-test.c (100%)
 rename lib/{ => tests}/memcpy_kunit.c (100%)
 rename lib/{ => tests}/overflow_kunit.c (100%)
 rename lib/{ => tests}/siphash_kunit.c (100%)
 rename lib/{ => tests}/slub_kunit.c (100%)
 rename lib/{ => tests}/stackinit_kunit.c (100%)
 rename lib/{ => tests}/string_helpers_kunit.c (100%)
 rename lib/{ => tests}/string_kunit.c (100%)
 rename lib/{ => tests}/test_bits.c (100%)
 rename lib/{ => tests}/test_fprobe.c (100%)
 rename lib/{ => tests}/test_hash.c (100%)
 rename lib/{ => tests}/test_kprobes.c (100%)
 rename lib/{ => tests}/test_linear_ranges.c (100%)
 rename lib/{ => tests}/test_list_sort.c (100%)
 rename lib/{ => tests}/test_sort.c (100%)
 rename lib/{ => tests}/usercopy_kunit.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index f1e1cd652699..bbba5c760533 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3929,10 +3929,10 @@ F:	include/vdso/bits.h
 F:	lib/bitmap-str.c
 F:	lib/bitmap.c
 F:	lib/cpumask.c
-F:	lib/cpumask_kunit.c
 F:	lib/find_bit.c
 F:	lib/find_bit_benchmark.c
 F:	lib/test_bitmap.c
+F:	lib/tests/cpumask_kunit.c
 F:	tools/include/linux/bitfield.h
 F:	tools/include/linux/bitmap.h
 F:	tools/include/linux/bits.h
@@ -8911,9 +8911,10 @@ L:	linux-hardening@vger.kernel.org
 S:	Supported
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
 F:	include/linux/fortify-string.h
-F:	lib/fortify_kunit.c
-F:	lib/memcpy_kunit.c
 F:	lib/test_fortify/*
+F:	lib/tests/fortify_kunit.c
+F:	lib/tests/memcpy_kunit.c
+F:	scripts/test_fortify.sh
 K:	\bunsafe_memcpy\b
 K:	\b__NO_FORTIFY\b
 
@@ -9578,9 +9579,9 @@ F:	include/linux/string.h
 F:	include/linux/string_choices.h
 F:	include/linux/string_helpers.h
 F:	lib/string.c
-F:	lib/string_kunit.c
 F:	lib/string_helpers.c
-F:	lib/string_helpers_kunit.c
+F:	lib/tests/string_helpers_kunit.c
+F:	lib/tests/string_kunit.c
 F:	scripts/coccinelle/api/string_choices.cocci
 
 GENERIC UIO DRIVER FOR PCI DEVICES
@@ -12741,7 +12742,7 @@ F:	Documentation/trace/kprobes.rst
 F:	include/asm-generic/kprobes.h
 F:	include/linux/kprobes.h
 F:	kernel/kprobes.c
-F:	lib/test_kprobes.c
+F:	lib/tests/test_kprobes.c
 F:	samples/kprobes
 
 KS0108 LCD CONTROLLER DRIVER
@@ -13091,7 +13092,7 @@ M:	Mark Brown <broonie@kernel.org>
 R:	Matti Vaittinen <mazziesaccount@gmail.com>
 F:	include/linux/linear_range.h
 F:	lib/linear_ranges.c
-F:	lib/test_linear_ranges.c
+F:	lib/tests/test_linear_ranges.c
 
 LINUX FOR POWER MACINTOSH
 L:	linuxppc-dev@lists.ozlabs.org
@@ -13219,7 +13220,7 @@ M:	David Gow <davidgow@google.com>
 L:	linux-kselftest@vger.kernel.org
 L:	kunit-dev@googlegroups.com
 S:	Maintained
-F:	lib/list-test.c
+F:	lib/tests/list-test.c
 
 LITEX PLATFORM
 M:	Karol Gugala <kgugala@antmicro.com>
@@ -21199,7 +21200,7 @@ M:	Jason A. Donenfeld <Jason@zx2c4.com>
 S:	Maintained
 F:	include/linux/siphash.h
 F:	lib/siphash.c
-F:	lib/siphash_kunit.c
+F:	lib/tests/siphash_kunit.c
 
 SIS 190 ETHERNET DRIVER
 M:	Francois Romieu <romieu@fr.zoreil.com>
diff --git a/lib/Makefile b/lib/Makefile
index 53f82de7cbe2..7f2ddbf03fe9 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -51,9 +51,7 @@ obj-y += bcd.o sort.o parser.o debug_locks.o random32.o \
 	 percpu-refcount.o rhashtable.o base64.o \
 	 once.o refcount.o rcuref.o usercopy.o errseq.o bucket_locks.o \
 	 generic-radix-tree.o bitmap-str.o
-obj-$(CONFIG_STRING_KUNIT_TEST) += string_kunit.o
 obj-y += string_helpers.o
-obj-$(CONFIG_STRING_HELPERS_KUNIT_TEST) += string_helpers_kunit.o
 obj-y += hexdump.o
 obj-$(CONFIG_TEST_HEXDUMP) += test_hexdump.o
 obj-y += kstrtox.o
@@ -64,22 +62,17 @@ obj-$(CONFIG_TEST_DHRY) += test_dhry.o
 obj-$(CONFIG_TEST_FIRMWARE) += test_firmware.o
 obj-$(CONFIG_TEST_BITOPS) += test_bitops.o
 CFLAGS_test_bitops.o += -Werror
-obj-$(CONFIG_CPUMASK_KUNIT_TEST) += cpumask_kunit.o
 obj-$(CONFIG_TEST_SYSCTL) += test_sysctl.o
-obj-$(CONFIG_TEST_IOV_ITER) += kunit_iov_iter.o
-obj-$(CONFIG_HASH_KUNIT_TEST) += test_hash.o
 obj-$(CONFIG_TEST_IDA) += test_ida.o
 obj-$(CONFIG_TEST_UBSAN) += test_ubsan.o
 CFLAGS_test_ubsan.o += $(call cc-disable-warning, vla)
 CFLAGS_test_ubsan.o += $(call cc-disable-warning, unused-but-set-variable)
 UBSAN_SANITIZE_test_ubsan.o := y
 obj-$(CONFIG_TEST_KSTRTOX) += test-kstrtox.o
-obj-$(CONFIG_TEST_LIST_SORT) += test_list_sort.o
 obj-$(CONFIG_TEST_MIN_HEAP) += test_min_heap.o
 obj-$(CONFIG_TEST_LKM) += test_module.o
 obj-$(CONFIG_TEST_VMALLOC) += test_vmalloc.o
 obj-$(CONFIG_TEST_RHASHTABLE) += test_rhashtable.o
-obj-$(CONFIG_TEST_SORT) += test_sort.o
 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
@@ -105,10 +98,7 @@ obj-$(CONFIG_TEST_MEMINIT) += test_meminit.o
 obj-$(CONFIG_TEST_LOCKUP) += test_lockup.o
 obj-$(CONFIG_TEST_HMM) += test_hmm.o
 obj-$(CONFIG_TEST_FREE_PAGES) += test_free_pages.o
-obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
 obj-$(CONFIG_TEST_REF_TRACKER) += test_ref_tracker.o
-CFLAGS_test_fprobe.o += $(CC_FLAGS_FTRACE)
-obj-$(CONFIG_FPROBE_SANITY_TEST) += test_fprobe.o
 obj-$(CONFIG_TEST_OBJPOOL) += test_objpool.o
 
 obj-$(CONFIG_TEST_FPU) += test_fpu.o
@@ -130,7 +120,7 @@ endif
 obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
 CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any)
 
-obj-y += math/ crypto/
+obj-y += math/ crypto/ tests/
 
 obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
 obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
@@ -367,30 +357,6 @@ obj-$(CONFIG_OBJAGG) += objagg.o
 # pldmfw library
 obj-$(CONFIG_PLDMFW) += pldmfw/
 
-# KUnit tests
-CFLAGS_bitfield_kunit.o := $(DISABLE_STRUCTLEAK_PLUGIN)
-obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
-obj-$(CONFIG_CHECKSUM_KUNIT) += checksum_kunit.o
-obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o
-obj-$(CONFIG_HASHTABLE_KUNIT_TEST) += hashtable_test.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
-obj-$(CONFIG_SLUB_KUNIT_TEST) += slub_kunit.o
-obj-$(CONFIG_MEMCPY_KUNIT_TEST) += memcpy_kunit.o
-obj-$(CONFIG_IS_SIGNED_TYPE_KUNIT_TEST) += is_signed_type_kunit.o
-CFLAGS_overflow_kunit.o = $(call cc-disable-warning, tautological-constant-out-of-range-compare)
-obj-$(CONFIG_OVERFLOW_KUNIT_TEST) += overflow_kunit.o
-CFLAGS_stackinit_kunit.o += $(call cc-disable-warning, switch-unreachable)
-obj-$(CONFIG_STACKINIT_KUNIT_TEST) += stackinit_kunit.o
-CFLAGS_fortify_kunit.o += $(call cc-disable-warning, unsequenced)
-CFLAGS_fortify_kunit.o += $(call cc-disable-warning, stringop-overread)
-CFLAGS_fortify_kunit.o += $(call cc-disable-warning, stringop-truncation)
-CFLAGS_fortify_kunit.o += $(DISABLE_STRUCTLEAK_PLUGIN)
-obj-$(CONFIG_FORTIFY_KUNIT_TEST) += fortify_kunit.o
-obj-$(CONFIG_SIPHASH_KUNIT_TEST) += siphash_kunit.o
-obj-$(CONFIG_USERCOPY_KUNIT_TEST) += usercopy_kunit.o
-
 obj-$(CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED) += devmem_is_allowed.o
 
 obj-$(CONFIG_FIRMWARE_TABLE) += fw_table.o
diff --git a/lib/tests/Makefile b/lib/tests/Makefile
new file mode 100644
index 000000000000..41689f0b7c97
--- /dev/null
+++ b/lib/tests/Makefile
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for tests of kernel library functions.
+
+# KUnit tests
+CFLAGS_bitfield_kunit.o := $(DISABLE_STRUCTLEAK_PLUGIN)
+obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
+obj-$(CONFIG_BITS_TEST) += test_bits.o
+obj-$(CONFIG_CHECKSUM_KUNIT) += checksum_kunit.o
+obj-$(CONFIG_CMDLINE_KUNIT_TEST) += cmdline_kunit.o
+obj-$(CONFIG_CPUMASK_KUNIT_TEST) += cpumask_kunit.o
+CFLAGS_fortify_kunit.o += $(call cc-disable-warning, unsequenced)
+CFLAGS_fortify_kunit.o += $(call cc-disable-warning, stringop-overread)
+CFLAGS_fortify_kunit.o += $(call cc-disable-warning, stringop-truncation)
+CFLAGS_fortify_kunit.o += $(DISABLE_STRUCTLEAK_PLUGIN)
+obj-$(CONFIG_FORTIFY_KUNIT_TEST) += fortify_kunit.o
+CFLAGS_test_fprobe.o += $(CC_FLAGS_FTRACE)
+obj-$(CONFIG_FPROBE_SANITY_TEST) += test_fprobe.o
+obj-$(CONFIG_HASHTABLE_KUNIT_TEST) += hashtable_test.o
+obj-$(CONFIG_HASH_KUNIT_TEST) += test_hash.o
+obj-$(CONFIG_TEST_IOV_ITER) += kunit_iov_iter.o
+obj-$(CONFIG_IS_SIGNED_TYPE_KUNIT_TEST) += is_signed_type_kunit.o
+obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
+obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o
+obj-$(CONFIG_TEST_LIST_SORT) += test_list_sort.o
+obj-$(CONFIG_LINEAR_RANGES_TEST) += test_linear_ranges.o
+obj-$(CONFIG_MEMCPY_KUNIT_TEST) += memcpy_kunit.o
+CFLAGS_overflow_kunit.o = $(call cc-disable-warning, tautological-constant-out-of-range-compare)
+obj-$(CONFIG_OVERFLOW_KUNIT_TEST) += overflow_kunit.o
+obj-$(CONFIG_SIPHASH_KUNIT_TEST) += siphash_kunit.o
+obj-$(CONFIG_SLUB_KUNIT_TEST) += slub_kunit.o
+obj-$(CONFIG_TEST_SORT) += test_sort.o
+CFLAGS_stackinit_kunit.o += $(call cc-disable-warning, switch-unreachable)
+obj-$(CONFIG_STACKINIT_KUNIT_TEST) += stackinit_kunit.o
+obj-$(CONFIG_STRING_KUNIT_TEST) += string_kunit.o
+obj-$(CONFIG_STRING_HELPERS_KUNIT_TEST) += string_helpers_kunit.o
+obj-$(CONFIG_USERCOPY_KUNIT_TEST) += usercopy_kunit.o
+
diff --git a/lib/bitfield_kunit.c b/lib/tests/bitfield_kunit.c
similarity index 100%
rename from lib/bitfield_kunit.c
rename to lib/tests/bitfield_kunit.c
diff --git a/lib/checksum_kunit.c b/lib/tests/checksum_kunit.c
similarity index 100%
rename from lib/checksum_kunit.c
rename to lib/tests/checksum_kunit.c
diff --git a/lib/cmdline_kunit.c b/lib/tests/cmdline_kunit.c
similarity index 100%
rename from lib/cmdline_kunit.c
rename to lib/tests/cmdline_kunit.c
diff --git a/lib/cpumask_kunit.c b/lib/tests/cpumask_kunit.c
similarity index 100%
rename from lib/cpumask_kunit.c
rename to lib/tests/cpumask_kunit.c
diff --git a/lib/fortify_kunit.c b/lib/tests/fortify_kunit.c
similarity index 100%
rename from lib/fortify_kunit.c
rename to lib/tests/fortify_kunit.c
diff --git a/lib/hashtable_test.c b/lib/tests/hashtable_test.c
similarity index 100%
rename from lib/hashtable_test.c
rename to lib/tests/hashtable_test.c
diff --git a/lib/is_signed_type_kunit.c b/lib/tests/is_signed_type_kunit.c
similarity index 100%
rename from lib/is_signed_type_kunit.c
rename to lib/tests/is_signed_type_kunit.c
diff --git a/lib/kunit_iov_iter.c b/lib/tests/kunit_iov_iter.c
similarity index 100%
rename from lib/kunit_iov_iter.c
rename to lib/tests/kunit_iov_iter.c
diff --git a/lib/list-test.c b/lib/tests/list-test.c
similarity index 100%
rename from lib/list-test.c
rename to lib/tests/list-test.c
diff --git a/lib/memcpy_kunit.c b/lib/tests/memcpy_kunit.c
similarity index 100%
rename from lib/memcpy_kunit.c
rename to lib/tests/memcpy_kunit.c
diff --git a/lib/overflow_kunit.c b/lib/tests/overflow_kunit.c
similarity index 100%
rename from lib/overflow_kunit.c
rename to lib/tests/overflow_kunit.c
diff --git a/lib/siphash_kunit.c b/lib/tests/siphash_kunit.c
similarity index 100%
rename from lib/siphash_kunit.c
rename to lib/tests/siphash_kunit.c
diff --git a/lib/slub_kunit.c b/lib/tests/slub_kunit.c
similarity index 100%
rename from lib/slub_kunit.c
rename to lib/tests/slub_kunit.c
diff --git a/lib/stackinit_kunit.c b/lib/tests/stackinit_kunit.c
similarity index 100%
rename from lib/stackinit_kunit.c
rename to lib/tests/stackinit_kunit.c
diff --git a/lib/string_helpers_kunit.c b/lib/tests/string_helpers_kunit.c
similarity index 100%
rename from lib/string_helpers_kunit.c
rename to lib/tests/string_helpers_kunit.c
diff --git a/lib/string_kunit.c b/lib/tests/string_kunit.c
similarity index 100%
rename from lib/string_kunit.c
rename to lib/tests/string_kunit.c
diff --git a/lib/test_bits.c b/lib/tests/test_bits.c
similarity index 100%
rename from lib/test_bits.c
rename to lib/tests/test_bits.c
diff --git a/lib/test_fprobe.c b/lib/tests/test_fprobe.c
similarity index 100%
rename from lib/test_fprobe.c
rename to lib/tests/test_fprobe.c
diff --git a/lib/test_hash.c b/lib/tests/test_hash.c
similarity index 100%
rename from lib/test_hash.c
rename to lib/tests/test_hash.c
diff --git a/lib/test_kprobes.c b/lib/tests/test_kprobes.c
similarity index 100%
rename from lib/test_kprobes.c
rename to lib/tests/test_kprobes.c
diff --git a/lib/test_linear_ranges.c b/lib/tests/test_linear_ranges.c
similarity index 100%
rename from lib/test_linear_ranges.c
rename to lib/tests/test_linear_ranges.c
diff --git a/lib/test_list_sort.c b/lib/tests/test_list_sort.c
similarity index 100%
rename from lib/test_list_sort.c
rename to lib/tests/test_list_sort.c
diff --git a/lib/test_sort.c b/lib/tests/test_sort.c
similarity index 100%
rename from lib/test_sort.c
rename to lib/tests/test_sort.c
diff --git a/lib/usercopy_kunit.c b/lib/tests/usercopy_kunit.c
similarity index 100%
rename from lib/usercopy_kunit.c
rename to lib/tests/usercopy_kunit.c
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 4/6] lib/tests/kfifo_kunit.c: add tests for the kfifo structure
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
                   ` (2 preceding siblings ...)
  2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-11  7:25 ` [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests David Gow
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Diego Vieira, n, andrealmeid, vinicius, David Gow

From: Diego Vieira <diego.daniel.professional@gmail.com>

Add KUnit tests for the kfifo data structure.
They test the vast majority of macros defined in the kfifo
header (include/linux/kfifo.h).

These are inspired by the existing tests for the doubly
linked list in lib/tests/list-test.c (previously at lib/list-test.c) [1].

Note that this patch depends on the patch that moves the KUnit tests on
lib/ into lib/tests/ [2].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/list-test.c?h=v6.11-rc6
[2] https://lore.kernel.org/all/20240720181025.work.002-kees@kernel.org/

Signed-off-by: Diego Vieira <diego.daniel.professional@gmail.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: David Gow <davidgow@google.com>
---
 lib/Kconfig.debug       |  14 +++
 lib/tests/Makefile      |   1 +
 lib/tests/kfifo_kunit.c | 224 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 239 insertions(+)
 create mode 100644 lib/tests/kfifo_kunit.c

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 6571243ac232..134d077562a9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2673,6 +2673,20 @@ config SYSCTL_KUNIT_TEST
 
 	  If unsure, say N.
 
+config KFIFO_KUNIT_TEST
+	tristate "KUnit Test for the generic kernel FIFO implementation" if !KUNIT_ALL_TESTS
+	depends on KUNIT
+	default KUNIT_ALL_TESTS
+	help
+	  This builds the generic FIFO implementation KUnit test suite.
+	  It tests that the API and basic functionality of the kfifo type
+	  and associated macros.
+
+	  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 LIST_KUNIT_TEST
 	tristate "KUnit Test for Kernel Linked-list structures" if !KUNIT_ALL_TESTS
 	depends on KUNIT
diff --git a/lib/tests/Makefile b/lib/tests/Makefile
index 41689f0b7c97..380f95b003fc 100644
--- a/lib/tests/Makefile
+++ b/lib/tests/Makefile
@@ -22,6 +22,7 @@ obj-$(CONFIG_TEST_IOV_ITER) += kunit_iov_iter.o
 obj-$(CONFIG_IS_SIGNED_TYPE_KUNIT_TEST) += is_signed_type_kunit.o
 obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
 obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o
+obj-$(CONFIG_KFIFO_KUNIT_TEST) += kfifo_kunit.o
 obj-$(CONFIG_TEST_LIST_SORT) += test_list_sort.o
 obj-$(CONFIG_LINEAR_RANGES_TEST) += test_linear_ranges.o
 obj-$(CONFIG_MEMCPY_KUNIT_TEST) += memcpy_kunit.o
diff --git a/lib/tests/kfifo_kunit.c b/lib/tests/kfifo_kunit.c
new file mode 100644
index 000000000000..a85eedc3195a
--- /dev/null
+++ b/lib/tests/kfifo_kunit.c
@@ -0,0 +1,224 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * KUnit test for the generic kernel FIFO implementation.
+ *
+ * Copyright (C) 2024 Diego Vieira <diego.daniel.professional@gmail.com>
+ */
+#include <kunit/test.h>
+
+#include <linux/kfifo.h>
+
+#define KFIFO_SIZE 32
+#define N_ELEMENTS 5
+
+static void kfifo_test_reset_should_clear_the_fifo(struct kunit *test)
+{
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	kfifo_put(&my_fifo, 1);
+	kfifo_put(&my_fifo, 2);
+	kfifo_put(&my_fifo, 3);
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 3);
+
+	kfifo_reset(&my_fifo);
+
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 0);
+	KUNIT_EXPECT_TRUE(test, kfifo_is_empty(&my_fifo));
+}
+
+static void kfifo_test_define_should_define_an_empty_fifo(struct kunit *test)
+{
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	KUNIT_EXPECT_TRUE(test, kfifo_initialized(&my_fifo));
+	KUNIT_EXPECT_TRUE(test, kfifo_is_empty(&my_fifo));
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 0);
+}
+
+static void kfifo_test_len_should_ret_n_of_stored_elements(struct kunit *test)
+{
+	u8 buffer1[N_ELEMENTS];
+
+	for (int i = 0; i < N_ELEMENTS; i++)
+		buffer1[i] = i + 1;
+
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 0);
+
+	kfifo_in(&my_fifo, buffer1, N_ELEMENTS);
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), N_ELEMENTS);
+
+	kfifo_in(&my_fifo, buffer1, N_ELEMENTS);
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), N_ELEMENTS * 2);
+
+	kfifo_reset(&my_fifo);
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 0);
+}
+
+static void kfifo_test_put_should_insert_and_get_should_pop(struct kunit *test)
+{
+	u8 out_data = 0;
+	int processed_elements;
+	u8 elements[] = { 3, 5, 11 };
+
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	// If the fifo is empty, get returns 0
+	processed_elements = kfifo_get(&my_fifo, &out_data);
+	KUNIT_EXPECT_EQ(test, processed_elements, 0);
+	KUNIT_EXPECT_EQ(test, out_data, 0);
+
+	for (int i = 0; i < 3; i++)
+		kfifo_put(&my_fifo, elements[i]);
+
+	for (int i = 0; i < 3; i++) {
+		processed_elements = kfifo_get(&my_fifo, &out_data);
+		KUNIT_EXPECT_EQ(test, processed_elements, 1);
+		KUNIT_EXPECT_EQ(test, out_data, elements[i]);
+	}
+}
+
+static void kfifo_test_in_should_insert_multiple_elements(struct kunit *test)
+{
+	u8 in_buffer[] = { 11, 25, 65 };
+	u8 out_data;
+	int processed_elements;
+
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	kfifo_in(&my_fifo, in_buffer, 3);
+
+	for (int i = 0; i < 3; i++) {
+		processed_elements = kfifo_get(&my_fifo, &out_data);
+		KUNIT_EXPECT_EQ(test, processed_elements, 1);
+		KUNIT_EXPECT_EQ(test, out_data, in_buffer[i]);
+	}
+}
+
+static void kfifo_test_out_should_pop_multiple_elements(struct kunit *test)
+{
+	u8 in_buffer[] = { 11, 25, 65 };
+	u8 out_buffer[3];
+	int copied_elements;
+
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	for (int i = 0; i < 3; i++)
+		kfifo_put(&my_fifo, in_buffer[i]);
+
+	copied_elements = kfifo_out(&my_fifo, out_buffer, 3);
+	KUNIT_EXPECT_EQ(test, copied_elements, 3);
+
+	for (int i = 0; i < 3; i++)
+		KUNIT_EXPECT_EQ(test, out_buffer[i], in_buffer[i]);
+	KUNIT_EXPECT_TRUE(test, kfifo_is_empty(&my_fifo));
+}
+
+static void kfifo_test_dec_init_should_define_an_empty_fifo(struct kunit *test)
+{
+	DECLARE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	INIT_KFIFO(my_fifo);
+
+	// my_fifo is a struct with an inplace buffer
+	KUNIT_EXPECT_FALSE(test, __is_kfifo_ptr(&my_fifo));
+
+	KUNIT_EXPECT_TRUE(test, kfifo_initialized(&my_fifo));
+}
+
+static void kfifo_test_define_should_equal_declare_init(struct kunit *test)
+{
+	// declare a variable my_fifo of type struct kfifo of u8
+	DECLARE_KFIFO(my_fifo1, u8, KFIFO_SIZE);
+	// initialize the my_fifo variable
+	INIT_KFIFO(my_fifo1);
+
+	// DEFINE_KFIFO declares the variable with the initial value
+	// essentially the same as calling DECLARE_KFIFO and INIT_KFIFO
+	DEFINE_KFIFO(my_fifo2, u8, KFIFO_SIZE);
+
+	// my_fifo1 and my_fifo2 have the same size
+	KUNIT_EXPECT_EQ(test, sizeof(my_fifo1), sizeof(my_fifo2));
+	KUNIT_EXPECT_EQ(test, kfifo_initialized(&my_fifo1),
+			kfifo_initialized(&my_fifo2));
+	KUNIT_EXPECT_EQ(test, kfifo_is_empty(&my_fifo1),
+			kfifo_is_empty(&my_fifo2));
+}
+
+static void kfifo_test_alloc_should_initiliaze_a_ptr_fifo(struct kunit *test)
+{
+	int ret;
+	DECLARE_KFIFO_PTR(my_fifo, u8);
+
+	INIT_KFIFO(my_fifo);
+
+	// kfifo_initialized returns false signaling the buffer pointer is NULL
+	KUNIT_EXPECT_FALSE(test, kfifo_initialized(&my_fifo));
+
+	// kfifo_alloc allocates the buffer
+	ret = kfifo_alloc(&my_fifo, KFIFO_SIZE, GFP_KERNEL);
+	KUNIT_EXPECT_EQ_MSG(test, ret, 0, "Memory allocation should succeed");
+	KUNIT_EXPECT_TRUE(test, kfifo_initialized(&my_fifo));
+
+	// kfifo_free frees the buffer
+	kfifo_free(&my_fifo);
+}
+
+static void kfifo_test_peek_should_not_remove_elements(struct kunit *test)
+{
+	u8 out_data;
+	int processed_elements;
+
+	DEFINE_KFIFO(my_fifo, u8, KFIFO_SIZE);
+
+	// If the fifo is empty, peek returns 0
+	processed_elements = kfifo_peek(&my_fifo, &out_data);
+	KUNIT_EXPECT_EQ(test, processed_elements, 0);
+
+	kfifo_put(&my_fifo, 3);
+	kfifo_put(&my_fifo, 5);
+	kfifo_put(&my_fifo, 11);
+
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 3);
+
+	processed_elements = kfifo_peek(&my_fifo, &out_data);
+	KUNIT_EXPECT_EQ(test, processed_elements, 1);
+	KUNIT_EXPECT_EQ(test, out_data, 3);
+
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 3);
+
+	// Using peek doesn't remove the element
+	// so the read element and the fifo length
+	// remains the same
+	processed_elements = kfifo_peek(&my_fifo, &out_data);
+	KUNIT_EXPECT_EQ(test, processed_elements, 1);
+	KUNIT_EXPECT_EQ(test, out_data, 3);
+
+	KUNIT_EXPECT_EQ(test, kfifo_len(&my_fifo), 3);
+}
+
+static struct kunit_case kfifo_test_cases[] = {
+	KUNIT_CASE(kfifo_test_reset_should_clear_the_fifo),
+	KUNIT_CASE(kfifo_test_define_should_define_an_empty_fifo),
+	KUNIT_CASE(kfifo_test_len_should_ret_n_of_stored_elements),
+	KUNIT_CASE(kfifo_test_put_should_insert_and_get_should_pop),
+	KUNIT_CASE(kfifo_test_in_should_insert_multiple_elements),
+	KUNIT_CASE(kfifo_test_out_should_pop_multiple_elements),
+	KUNIT_CASE(kfifo_test_dec_init_should_define_an_empty_fifo),
+	KUNIT_CASE(kfifo_test_define_should_equal_declare_init),
+	KUNIT_CASE(kfifo_test_alloc_should_initiliaze_a_ptr_fifo),
+	KUNIT_CASE(kfifo_test_peek_should_not_remove_elements),
+	{},
+};
+
+static struct kunit_suite kfifo_test_module = {
+	.name = "kfifo",
+	.test_cases = kfifo_test_cases,
+};
+
+kunit_test_suites(&kfifo_test_module);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Diego Vieira <diego.daniel.professional@gmail.com>");
+MODULE_DESCRIPTION("KUnit test for the kernel FIFO");
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
                   ` (3 preceding siblings ...)
  2024-10-11  7:25 ` [PATCH 4/6] lib/tests/kfifo_kunit.c: add tests for the kfifo structure David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-15 13:20   ` Gabriel Krisman Bertazi
  2024-10-11  7:25 ` [PATCH 6/6] unicode: kunit: change tests filename and path David Gow
  2024-10-11 13:53 ` [PATCH 0/6] KUnit test moves / renames Shuah Khan
  6 siblings, 1 reply; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Gabriela Bittencourt, linux-fsdevel, ~lkcamp/patches,
	Pedro Orlando, Danilo Pereira, Gabriel Krisman Bertazi, David Gow

From: Gabriela Bittencourt <gbittencourt@lkcamp.dev>

Refactoring 'test' functions into kunit tests, to test utf-8 support in
unicode subsystem.

This allows the utf8 tests to be run alongside the KUnit test suite
using kunit-tool, quickly compiling and running all desired tests as
part of the KUnit test suite, instead of compiling the selftest module
and loading it.

The refactoring kept the original testing logic intact, while adopting a
testing pattern across different kernel modules and leveraging KUnit's
benefits.

Co-developed-by: Pedro Orlando <porlando@lkcamp.dev>
Signed-off-by: Pedro Orlando <porlando@lkcamp.dev>
Co-developed-by: Danilo Pereira <dpereira@lkcamp.dev>
Signed-off-by: Danilo Pereira <dpereira@lkcamp.dev>
Signed-off-by: Gabriela Bittencourt <gbittencourt@lkcamp.dev>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: David Gow <davidgow@google.com>
---
 fs/unicode/.kunitconfig    |   3 +
 fs/unicode/Kconfig         |   5 +-
 fs/unicode/Makefile        |   2 +-
 fs/unicode/utf8-norm.c     |   2 +-
 fs/unicode/utf8-selftest.c | 149 +++++++++++++++++--------------------
 5 files changed, 77 insertions(+), 84 deletions(-)
 create mode 100644 fs/unicode/.kunitconfig

diff --git a/fs/unicode/.kunitconfig b/fs/unicode/.kunitconfig
new file mode 100644
index 000000000000..62dd5c171f9c
--- /dev/null
+++ b/fs/unicode/.kunitconfig
@@ -0,0 +1,3 @@
+CONFIG_KUNIT=y
+CONFIG_UNICODE=y
+CONFIG_UNICODE_NORMALIZATION_KUNIT_TEST=y
diff --git a/fs/unicode/Kconfig b/fs/unicode/Kconfig
index da786a687fdc..4ad2c36550f1 100644
--- a/fs/unicode/Kconfig
+++ b/fs/unicode/Kconfig
@@ -10,6 +10,7 @@ config UNICODE
 	  be a separate loadable module that gets requested only when a file
 	  system actually use it.
 
-config UNICODE_NORMALIZATION_SELFTEST
+config UNICODE_NORMALIZATION_KUNIT_TEST
 	tristate "Test UTF-8 normalization support"
-	depends on UNICODE
+	depends on UNICODE && KUNIT
+	default KUNIT_ALL_TESTS
diff --git a/fs/unicode/Makefile b/fs/unicode/Makefile
index e309afe2b2bb..37bbcbc628a1 100644
--- a/fs/unicode/Makefile
+++ b/fs/unicode/Makefile
@@ -4,7 +4,7 @@ ifneq ($(CONFIG_UNICODE),)
 obj-y			+= unicode.o
 endif
 obj-$(CONFIG_UNICODE)	+= utf8data.o
-obj-$(CONFIG_UNICODE_NORMALIZATION_SELFTEST) += utf8-selftest.o
+obj-$(CONFIG_UNICODE_NORMALIZATION_KUNIT_TEST) += utf8-selftest.o
 
 unicode-y := utf8-norm.o utf8-core.o
 
diff --git a/fs/unicode/utf8-norm.c b/fs/unicode/utf8-norm.c
index 768f8ab448b8..7b998c99c88d 100644
--- a/fs/unicode/utf8-norm.c
+++ b/fs/unicode/utf8-norm.c
@@ -586,7 +586,7 @@ int utf8byte(struct utf8cursor *u8c)
 	}
 }
 
-#ifdef CONFIG_UNICODE_NORMALIZATION_SELFTEST_MODULE
+#if IS_MODULE(CONFIG_UNICODE_NORMALIZATION_KUNIT_TEST)
 EXPORT_SYMBOL_GPL(utf8version_is_supported);
 EXPORT_SYMBOL_GPL(utf8nlen);
 EXPORT_SYMBOL_GPL(utf8ncursor);
diff --git a/fs/unicode/utf8-selftest.c b/fs/unicode/utf8-selftest.c
index 600e15efe9ed..52ab68ef2bbc 100644
--- a/fs/unicode/utf8-selftest.c
+++ b/fs/unicode/utf8-selftest.c
@@ -1,38 +1,18 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Kernel module for testing utf-8 support.
+ * KUnit tests for utf-8 support.
  *
  * Copyright 2017 Collabora Ltd.
  */
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/module.h>
-#include <linux/printk.h>
 #include <linux/unicode.h>
-#include <linux/dcache.h>
+#include <kunit/test.h>
 
 #include "utf8n.h"
 
-static unsigned int failed_tests;
-static unsigned int total_tests;
-
 /* Tests will be based on this version. */
 #define UTF8_LATEST	UNICODE_AGE(12, 1, 0)
 
-#define _test(cond, func, line, fmt, ...) do {				\
-		total_tests++;						\
-		if (!cond) {						\
-			failed_tests++;					\
-			pr_err("test %s:%d Failed: %s%s",		\
-			       func, line, #cond, (fmt?":":"."));	\
-			if (fmt)					\
-				pr_err(fmt, ##__VA_ARGS__);		\
-		}							\
-	} while (0)
-#define test_f(cond, fmt, ...) _test(cond, __func__, __LINE__, fmt, ##__VA_ARGS__)
-#define test(cond) _test(cond, __func__, __LINE__, "")
-
 static const struct {
 	/* UTF-8 strings in this vector _must_ be NULL-terminated. */
 	unsigned char str[10];
@@ -170,69 +150,74 @@ static int utf8cursor(struct utf8cursor *u8c, const struct unicode_map *um,
 	return utf8ncursor(u8c, um, n, s, (unsigned int)-1);
 }
 
-static void check_utf8_nfdi(struct unicode_map *um)
+static void check_utf8_nfdi(struct kunit *test)
 {
 	int i;
 	struct utf8cursor u8c;
+	struct unicode_map *um = test->priv;
 
 	for (i = 0; i < ARRAY_SIZE(nfdi_test_data); i++) {
 		int len = strlen(nfdi_test_data[i].str);
 		int nlen = strlen(nfdi_test_data[i].dec);
 		int j = 0;
 		unsigned char c;
+		int ret;
 
-		test((utf8len(um, UTF8_NFDI, nfdi_test_data[i].str) == nlen));
-		test((utf8nlen(um, UTF8_NFDI, nfdi_test_data[i].str, len) ==
-			nlen));
+		KUNIT_EXPECT_EQ(test, utf8len(um, UTF8_NFDI, nfdi_test_data[i].str), nlen);
+		KUNIT_EXPECT_EQ(test, utf8nlen(um, UTF8_NFDI, nfdi_test_data[i].str, len),
+				nlen);
 
-		if (utf8cursor(&u8c, um, UTF8_NFDI, nfdi_test_data[i].str) < 0)
-			pr_err("can't create cursor\n");
+
+		ret = utf8cursor(&u8c, um, UTF8_NFDI, nfdi_test_data[i].str);
+		KUNIT_EXPECT_TRUE_MSG(test, ret >= 0, "Can't create cursor\n");
 
 		while ((c = utf8byte(&u8c)) > 0) {
-			test_f((c == nfdi_test_data[i].dec[j]),
-			       "Unexpected byte 0x%x should be 0x%x\n",
-			       c, nfdi_test_data[i].dec[j]);
+			KUNIT_EXPECT_EQ_MSG(test, c, nfdi_test_data[i].dec[j],
+					    "Unexpected byte 0x%x should be 0x%x\n",
+					    c, nfdi_test_data[i].dec[j]);
 			j++;
 		}
 
-		test((j == nlen));
+		KUNIT_EXPECT_EQ(test, j, nlen);
 	}
 }
 
-static void check_utf8_nfdicf(struct unicode_map *um)
+static void check_utf8_nfdicf(struct kunit *test)
 {
 	int i;
 	struct utf8cursor u8c;
+	struct unicode_map *um = test->priv;
 
 	for (i = 0; i < ARRAY_SIZE(nfdicf_test_data); i++) {
 		int len = strlen(nfdicf_test_data[i].str);
 		int nlen = strlen(nfdicf_test_data[i].ncf);
 		int j = 0;
+		int ret;
 		unsigned char c;
 
-		test((utf8len(um, UTF8_NFDICF, nfdicf_test_data[i].str) ==
-				nlen));
-		test((utf8nlen(um, UTF8_NFDICF, nfdicf_test_data[i].str, len) ==
-				nlen));
+		KUNIT_EXPECT_EQ(test, utf8len(um, UTF8_NFDICF, nfdicf_test_data[i].str),
+				nlen);
+		KUNIT_EXPECT_EQ(test, utf8nlen(um, UTF8_NFDICF, nfdicf_test_data[i].str, len),
+				nlen);
 
-		if (utf8cursor(&u8c, um, UTF8_NFDICF,
-				nfdicf_test_data[i].str) < 0)
-			pr_err("can't create cursor\n");
+		ret = utf8cursor(&u8c, um, UTF8_NFDICF, nfdicf_test_data[i].str);
+		KUNIT_EXPECT_TRUE_MSG(test, ret >= 0, "Can't create cursor\n");
 
 		while ((c = utf8byte(&u8c)) > 0) {
-			test_f((c == nfdicf_test_data[i].ncf[j]),
-			       "Unexpected byte 0x%x should be 0x%x\n",
-			       c, nfdicf_test_data[i].ncf[j]);
+			KUNIT_EXPECT_EQ_MSG(test, c, nfdicf_test_data[i].ncf[j],
+					    "Unexpected byte 0x%x should be 0x%x\n",
+					    c, nfdicf_test_data[i].ncf[j]);
 			j++;
 		}
 
-		test((j == nlen));
+		KUNIT_EXPECT_EQ(test, j, nlen);
 	}
 }
 
-static void check_utf8_comparisons(struct unicode_map *table)
+static void check_utf8_comparisons(struct kunit *test)
 {
 	int i;
+	struct unicode_map *um = test->priv;
 
 	for (i = 0; i < ARRAY_SIZE(nfdi_test_data); i++) {
 		const struct qstr s1 = {.name = nfdi_test_data[i].str,
@@ -240,8 +225,9 @@ static void check_utf8_comparisons(struct unicode_map *table)
 		const struct qstr s2 = {.name = nfdi_test_data[i].dec,
 					.len = sizeof(nfdi_test_data[i].dec)};
 
-		test_f(!utf8_strncmp(table, &s1, &s2),
-		       "%s %s comparison mismatch\n", s1.name, s2.name);
+		/* strncmp returns 0 when strings are equal */
+		KUNIT_EXPECT_TRUE_MSG(test, utf8_strncmp(um, &s1, &s2) == 0,
+				    "%s %s comparison mismatch\n", s1.name, s2.name);
 	}
 
 	for (i = 0; i < ARRAY_SIZE(nfdicf_test_data); i++) {
@@ -250,62 +236,65 @@ static void check_utf8_comparisons(struct unicode_map *table)
 		const struct qstr s2 = {.name = nfdicf_test_data[i].ncf,
 					.len = sizeof(nfdicf_test_data[i].ncf)};
 
-		test_f(!utf8_strncasecmp(table, &s1, &s2),
-		       "%s %s comparison mismatch\n", s1.name, s2.name);
+		/* strncasecmp returns 0 when strings are equal */
+		KUNIT_EXPECT_TRUE_MSG(test, utf8_strncasecmp(um, &s1, &s2) == 0,
+				    "%s %s comparison mismatch\n", s1.name, s2.name);
 	}
 }
 
-static void check_supported_versions(struct unicode_map *um)
+static void check_supported_versions(struct kunit *test)
 {
+	struct unicode_map *um = test->priv;
 	/* Unicode 7.0.0 should be supported. */
-	test(utf8version_is_supported(um, UNICODE_AGE(7, 0, 0)));
+	KUNIT_EXPECT_TRUE(test, utf8version_is_supported(um, UNICODE_AGE(7, 0, 0)));
 
 	/* Unicode 9.0.0 should be supported. */
-	test(utf8version_is_supported(um, UNICODE_AGE(9, 0, 0)));
+	KUNIT_EXPECT_TRUE(test, utf8version_is_supported(um, UNICODE_AGE(9, 0, 0)));
 
 	/* Unicode 1x.0.0 (the latest version) should be supported. */
-	test(utf8version_is_supported(um, UTF8_LATEST));
+	KUNIT_EXPECT_TRUE(test, utf8version_is_supported(um, UTF8_LATEST));
 
 	/* Next versions don't exist. */
-	test(!utf8version_is_supported(um, UNICODE_AGE(13, 0, 0)));
-	test(!utf8version_is_supported(um, UNICODE_AGE(0, 0, 0)));
-	test(!utf8version_is_supported(um, UNICODE_AGE(-1, -1, -1)));
+	KUNIT_EXPECT_FALSE(test, utf8version_is_supported(um, UNICODE_AGE(13, 0, 0)));
+	KUNIT_EXPECT_FALSE(test, utf8version_is_supported(um, UNICODE_AGE(0, 0, 0)));
+	KUNIT_EXPECT_FALSE(test, utf8version_is_supported(um, UNICODE_AGE(-1, -1, -1)));
 }
 
-static int __init init_test_ucd(void)
+static struct kunit_case unicode_normalization_test_cases[] = {
+	KUNIT_CASE(check_supported_versions),
+	KUNIT_CASE(check_utf8_comparisons),
+	KUNIT_CASE(check_utf8_nfdicf),
+	KUNIT_CASE(check_utf8_nfdi),
+	{}
+};
+
+static int init_test_ucd(struct kunit *test)
 {
-	struct unicode_map *um;
+	struct unicode_map *um = utf8_load(UTF8_LATEST);
 
-	failed_tests = 0;
-	total_tests = 0;
+	test->priv = um;
 
-	um = utf8_load(UTF8_LATEST);
-	if (IS_ERR(um)) {
-		pr_err("%s: Unable to load utf8 table.\n", __func__);
-		return PTR_ERR(um);
-	}
+	KUNIT_EXPECT_EQ_MSG(test, IS_ERR(um), 0,
+			    "%s: Unable to load utf8 table.\n", __func__);
 
-	check_supported_versions(um);
-	check_utf8_nfdi(um);
-	check_utf8_nfdicf(um);
-	check_utf8_comparisons(um);
-
-	if (!failed_tests)
-		pr_info("All %u tests passed\n", total_tests);
-	else
-		pr_err("%u out of %u tests failed\n", failed_tests,
-		       total_tests);
-	utf8_unload(um);
 	return 0;
 }
 
-static void __exit exit_test_ucd(void)
+static void exit_test_ucd(struct kunit *test)
 {
+	utf8_unload(test->priv);
 }
 
-module_init(init_test_ucd);
-module_exit(exit_test_ucd);
+static struct kunit_suite unicode_normalization_test_suite = {
+	.name = "unicode_normalization",
+	.test_cases = unicode_normalization_test_cases,
+	.init = init_test_ucd,
+	.exit = exit_test_ucd,
+};
+
+kunit_test_suite(unicode_normalization_test_suite);
+
 
 MODULE_AUTHOR("Gabriel Krisman Bertazi <krisman@collabora.co.uk>");
-MODULE_DESCRIPTION("Kernel module for testing utf-8 support");
+MODULE_DESCRIPTION("KUnit tests for utf-8 support.");
 MODULE_LICENSE("GPL");
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 6/6] unicode: kunit: change tests filename and path
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
                   ` (4 preceding siblings ...)
  2024-10-11  7:25 ` [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests David Gow
@ 2024-10-11  7:25 ` David Gow
  2024-10-15 13:21   ` Gabriel Krisman Bertazi
  2024-10-11 13:53 ` [PATCH 0/6] KUnit test moves / renames Shuah Khan
  6 siblings, 1 reply; 26+ messages in thread
From: David Gow @ 2024-10-11  7:25 UTC (permalink / raw)
  To: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Gabriela Bittencourt, linux-fsdevel, ~lkcamp/patches,
	Pedro Orlando, Danilo Pereira, Gabriel Krisman Bertazi, David Gow

From: Gabriela Bittencourt <gbittencourt@lkcamp.dev>

Change utf8 kunit test filename and path to follow the style
convention on Documentation/dev-tools/kunit/style.rst

Co-developed-by: Pedro Orlando <porlando@lkcamp.dev>
Signed-off-by: Pedro Orlando <porlando@lkcamp.dev>
Co-developed-by: Danilo Pereira <dpereira@lkcamp.dev>
Signed-off-by: Danilo Pereira <dpereira@lkcamp.dev>
Signed-off-by: Gabriela Bittencourt <gbittencourt@lkcamp.dev>
Reviewed-by: David Gow <davidgow@google.com>
[Rebased, fixed module build (Gabriel Krisman Bertazi)]
Signed-off-by: David Gow <davidgow@google.com>
---
 fs/unicode/Makefile                                | 2 +-
 fs/unicode/{ => tests}/.kunitconfig                | 0
 fs/unicode/{utf8-selftest.c => tests/utf8_kunit.c} | 0
 3 files changed, 1 insertion(+), 1 deletion(-)
 rename fs/unicode/{ => tests}/.kunitconfig (100%)
 rename fs/unicode/{utf8-selftest.c => tests/utf8_kunit.c} (100%)

diff --git a/fs/unicode/Makefile b/fs/unicode/Makefile
index 37bbcbc628a1..d95be7fb9f6b 100644
--- a/fs/unicode/Makefile
+++ b/fs/unicode/Makefile
@@ -4,7 +4,7 @@ ifneq ($(CONFIG_UNICODE),)
 obj-y			+= unicode.o
 endif
 obj-$(CONFIG_UNICODE)	+= utf8data.o
-obj-$(CONFIG_UNICODE_NORMALIZATION_KUNIT_TEST) += utf8-selftest.o
+obj-$(CONFIG_UNICODE_NORMALIZATION_KUNIT_TEST) += tests/utf8_kunit.o
 
 unicode-y := utf8-norm.o utf8-core.o
 
diff --git a/fs/unicode/.kunitconfig b/fs/unicode/tests/.kunitconfig
similarity index 100%
rename from fs/unicode/.kunitconfig
rename to fs/unicode/tests/.kunitconfig
diff --git a/fs/unicode/utf8-selftest.c b/fs/unicode/tests/utf8_kunit.c
similarity index 100%
rename from fs/unicode/utf8-selftest.c
rename to fs/unicode/tests/utf8_kunit.c
-- 
2.47.0.rc1.288.g06298d1525-goog


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-10-11  7:25 ` [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir David Gow
@ 2024-10-11  8:59   ` Geert Uytterhoeven
  2024-11-06  8:33     ` Geert Uytterhoeven
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2024-10-11  8:59 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Luis Felipe Hernandez, quic_jjohnson, macro, tpiepho, ricardo,
	linux-kernel-mentees, Nicolas Pitre

Hi David,

On Fri, Oct 11, 2024 at 9:31 AM David Gow <davidgow@google.com> wrote:
> From: Luis Felipe Hernandez <luis.hernandez093@gmail.com>
>
> This patch is a follow-up task from a discussion stemming from point 3
> in a recent patch introducing the int_pow kunit test [1] and
> documentation regarding kunit test style and nomenclature [2].
>
> Colocate all kunit test suites in lib/math/tests/ and
> follow recommended naming convention for files <suite>_kunit.c
> and kconfig entries CONFIG_<name>_KUNIT_TEST.
>
> Link: https://lore.kernel.org/all/CABVgOS=-vh5TqHFCq_jo=ffq8v_nGgr6JsPnOZag3e6+19ysxQ@mail.gmail.com/ [1]
> Link: https://docs.kernel.org/dev-tools/kunit/style.html [2]
>
> Signed-off-by: Luis Felipe Hernandez <luis.hernandez093@gmail.com>
> Acked-by: Nicolas Pitre <npitre@baylibre.com>
> [Rebased on top of mm-nonmm-unstable.]
> Signed-off-by: David Gow <davidgow@google.com>

Thanks for your patch!

> --- a/arch/m68k/configs/amiga_defconfig
> +++ b/arch/m68k/configs/amiga_defconfig
> @@ -619,7 +619,7 @@ CONFIG_KUNIT=m
>  CONFIG_KUNIT_ALL_TESTS=m
>  CONFIG_TEST_DHRY=m
>  CONFIG_TEST_MIN_HEAP=m
> -CONFIG_TEST_DIV64=m
> +CONFIG_DIV64_KUNIT_TEST=m
>  CONFIG_REED_SOLOMON_TEST=m
>  CONFIG_ATOMIC64_SELFTEST=m
>  CONFIG_ASYNC_RAID6_TEST=m

[...]

> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -2296,7 +2296,7 @@ config TEST_SORT
>
>           If unsure, say N.
>
> -config TEST_DIV64
> +config DIV64_KUNIT_TEST
>         tristate "64bit/32bit division and modulo test"
>         depends on DEBUG_KERNEL || m
>         help
> @@ -2306,7 +2306,7 @@ config TEST_DIV64
>
>           If unsure, say N.
>
> -config TEST_MULDIV64
> +config MULDIV64_KUNIT_TEST
>         tristate "mul_u64_u64_div_u64() test"
>         depends on DEBUG_KERNEL || m
>         help

This conflicts with "[PATCH] m68k: defconfig: Update defconfigs for
v6.12-rc1"[1].  Of course the proper way forward would be to add
"default KUNIT_ALL_TESTS" to all tests that still lack it, so I can
just never queue that patch ;-)

> @@ -2993,7 +2993,7 @@ config TEST_OBJPOOL
>
>           If unsure, say N.
>
> -config INT_POW_TEST
> +config INT_POW_KUNIT_TEST
>         tristate "Integer exponentiation (int_pow) test" if !KUNIT_ALL_TESTS
>         depends on KUNIT
>         default KUNIT_ALL_TESTS

[1] https://lore.kernel.org/all/4092672cb64b86ec3f300b4cf0ea0c2db2b52e2e.1727699197.git.geert@linux-m68k.org/

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
@ 2024-10-11  9:17   ` Vlastimil Babka
  2024-10-11 10:44   ` Andy Shevchenko
  2024-10-11 17:20   ` Kees Cook
  2 siblings, 0 replies; 26+ messages in thread
From: Vlastimil Babka @ 2024-10-11  9:17 UTC (permalink / raw)
  To: David Gow, Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar,
	Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Yury Norov, Rasmus Villemoes, Jason A . Donenfeld,
	Andy Shevchenko, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Geert Uytterhoeven, Nathan Chancellor,
	Fangrui Song, Steven Rostedt (Google)

On 10/11/24 9:25 AM, David Gow wrote:
> From: Kees Cook <kees@kernel.org>
> 
> Following from the recent KUnit file naming discussion[1], move all
> KUnit tests in lib/ into lib/tests/.
> 
> Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> Signed-off-by: Kees Cook <kees@kernel.org>
> Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> Acked-by: Jakub Kicinski <kuba@kernel.org>
> Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>

Acked-by: Vlastimil Babka <vbabka@suse.cz> #slab

> Reviewed-by: David Gow <davidgow@google.com>
> [Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
> Signed-off-by: David Gow <davidgow@google.com>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
  2024-10-11  9:17   ` Vlastimil Babka
@ 2024-10-11 10:44   ` Andy Shevchenko
  2024-10-11 13:38     ` Geert Uytterhoeven
  2024-10-11 17:20   ` Kees Cook
  2 siblings, 1 reply; 26+ messages in thread
From: Andy Shevchenko @ 2024-10-11 10:44 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Yury Norov, Rasmus Villemoes, Jason A . Donenfeld, Naveen N . Rao,
	Anil S Keshavamurthy, David S . Miller, Masami Hiramatsu,
	Mark Brown, linux-hardening, linux-trace-kernel, Palmer Dabbelt,
	Christophe Leroy, Charlie Jenkins, Simon Horman, Jakub Kicinski,
	Arnd Bergmann, Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Geert Uytterhoeven,
	Nathan Chancellor, Fangrui Song, Steven Rostedt (Google)

On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> From: Kees Cook <kees@kernel.org>
> 
> Following from the recent KUnit file naming discussion[1], move all
> KUnit tests in lib/ into lib/tests/.
> 
> Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> Signed-off-by: Kees Cook <kees@kernel.org>
> Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> Acked-by: Jakub Kicinski <kuba@kernel.org>
> Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
> Reviewed-by: David Gow <davidgow@google.com>
> [Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
> Signed-off-by: David Gow <davidgow@google.com>

>  rename lib/{ => tests}/bitfield_kunit.c (100%)
>  rename lib/{ => tests}/checksum_kunit.c (100%)
>  rename lib/{ => tests}/cmdline_kunit.c (100%)
>  rename lib/{ => tests}/cpumask_kunit.c (100%)
>  rename lib/{ => tests}/fortify_kunit.c (100%)
>  rename lib/{ => tests}/hashtable_test.c (100%)
>  rename lib/{ => tests}/is_signed_type_kunit.c (100%)
>  rename lib/{ => tests}/kunit_iov_iter.c (100%)
>  rename lib/{ => tests}/list-test.c (100%)
>  rename lib/{ => tests}/memcpy_kunit.c (100%)
>  rename lib/{ => tests}/overflow_kunit.c (100%)
>  rename lib/{ => tests}/siphash_kunit.c (100%)
>  rename lib/{ => tests}/slub_kunit.c (100%)
>  rename lib/{ => tests}/stackinit_kunit.c (100%)
>  rename lib/{ => tests}/string_helpers_kunit.c (100%)
>  rename lib/{ => tests}/string_kunit.c (100%)
>  rename lib/{ => tests}/test_bits.c (100%)
>  rename lib/{ => tests}/test_fprobe.c (100%)
>  rename lib/{ => tests}/test_hash.c (100%)
>  rename lib/{ => tests}/test_kprobes.c (100%)
>  rename lib/{ => tests}/test_linear_ranges.c (100%)
>  rename lib/{ => tests}/test_list_sort.c (100%)
>  rename lib/{ => tests}/test_sort.c (100%)
>  rename lib/{ => tests}/usercopy_kunit.c (100%)

While I support the idea, I think this adds an additional churn in creating a
duplicate 'test' in the filenames. Why they all can't be cut while removing?
(at least this question is not answered in the commit message)

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 10:44   ` Andy Shevchenko
@ 2024-10-11 13:38     ` Geert Uytterhoeven
  2024-10-11 13:57       ` Andy Shevchenko
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2024-10-11 13:38 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: David Gow, Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar,
	Kees Cook, linux-kselftest, kunit-dev, linux-kernel,
	Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Nathan Chancellor,
	Fangrui Song, Steven Rostedt (Google)

Hi Andy,

On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
> On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> > From: Kees Cook <kees@kernel.org>
> >
> > Following from the recent KUnit file naming discussion[1], move all
> > KUnit tests in lib/ into lib/tests/.
> >
> > Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> > Signed-off-by: Kees Cook <kees@kernel.org>
> > Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> > Acked-by: Jakub Kicinski <kuba@kernel.org>
> > Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
> > Reviewed-by: David Gow <davidgow@google.com>
> > [Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
> > Signed-off-by: David Gow <davidgow@google.com>
>
> >  rename lib/{ => tests}/bitfield_kunit.c (100%)
> >  rename lib/{ => tests}/checksum_kunit.c (100%)
> >  rename lib/{ => tests}/cmdline_kunit.c (100%)
> >  rename lib/{ => tests}/cpumask_kunit.c (100%)
> >  rename lib/{ => tests}/fortify_kunit.c (100%)
> >  rename lib/{ => tests}/hashtable_test.c (100%)
> >  rename lib/{ => tests}/is_signed_type_kunit.c (100%)
> >  rename lib/{ => tests}/kunit_iov_iter.c (100%)
> >  rename lib/{ => tests}/list-test.c (100%)
> >  rename lib/{ => tests}/memcpy_kunit.c (100%)
> >  rename lib/{ => tests}/overflow_kunit.c (100%)
> >  rename lib/{ => tests}/siphash_kunit.c (100%)
> >  rename lib/{ => tests}/slub_kunit.c (100%)
> >  rename lib/{ => tests}/stackinit_kunit.c (100%)
> >  rename lib/{ => tests}/string_helpers_kunit.c (100%)
> >  rename lib/{ => tests}/string_kunit.c (100%)
> >  rename lib/{ => tests}/test_bits.c (100%)
> >  rename lib/{ => tests}/test_fprobe.c (100%)
> >  rename lib/{ => tests}/test_hash.c (100%)
> >  rename lib/{ => tests}/test_kprobes.c (100%)
> >  rename lib/{ => tests}/test_linear_ranges.c (100%)
> >  rename lib/{ => tests}/test_list_sort.c (100%)
> >  rename lib/{ => tests}/test_sort.c (100%)
> >  rename lib/{ => tests}/usercopy_kunit.c (100%)
>
> While I support the idea, I think this adds an additional churn in creating a
> duplicate 'test' in the filenames. Why they all can't be cut while removing?
> (at least this question is not answered in the commit message)

To avoid duplicate *.ko file names?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/6] KUnit test moves / renames
  2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
                   ` (5 preceding siblings ...)
  2024-10-11  7:25 ` [PATCH 6/6] unicode: kunit: change tests filename and path David Gow
@ 2024-10-11 13:53 ` Shuah Khan
  2025-02-08 21:14   ` Kees Cook
  6 siblings, 1 reply; 26+ messages in thread
From: Shuah Khan @ 2024-10-11 13:53 UTC (permalink / raw)
  To: David Gow, Andrew Morton, Brendan Higgins, Rae Moar, Kees Cook
  Cc: linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Shuah Khan

On 10/11/24 01:25, David Gow wrote:
> As discussed in [1], the KUnit test naming scheme has changed to avoid
> name conflicts (and tab-completion woes) with the files being tested.
> These renames and moves have caused a nasty set of merge conflicts, so
> this series collates and rebases them all to be applied via
> mm-nonmm-unstable alongside any lib/ changes[2].
> 
> Thanks to everyone whose patches appear here, and everyone who reviewed
> on the original series. I hope I didn't break them too much during the
> rebase!
> 
> Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> Link: https://lore.kernel.org/lkml/CABVgOSmbSzcGUi=E4piSojh3A4_0GjE0fAYbqKjtYGbE9beYRQ@mail.gmail.com/ [2]
> ---
> 
> Bruno Sobreira França (1):
>    lib/math: Add int_log test suite
> 
> Diego Vieira (1):
>    lib/tests/kfifo_kunit.c: add tests for the kfifo structure
> 
> Gabriela Bittencourt (2):
>    unicode: kunit: refactor selftest to kunit tests
>    unicode: kunit: change tests filename and path
> 
> Kees Cook (1):
>    lib: Move KUnit tests into tests/ subdirectory
> 
> Luis Felipe Hernandez (1):
>    lib: math: Move kunit tests into tests/ subdir


These look good to me. Thank you.

Acked-by: Shuah Khan <skhan@linuxfoundation.org>

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 13:38     ` Geert Uytterhoeven
@ 2024-10-11 13:57       ` Andy Shevchenko
  2024-10-11 14:14         ` Geert Uytterhoeven
  0 siblings, 1 reply; 26+ messages in thread
From: Andy Shevchenko @ 2024-10-11 13:57 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: David Gow, Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar,
	Kees Cook, linux-kselftest, kunit-dev, linux-kernel,
	Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Nathan Chancellor,
	Fangrui Song, Steven Rostedt (Google)

On Fri, Oct 11, 2024 at 03:38:00PM +0200, Geert Uytterhoeven wrote:
> Hi Andy,
> 
> On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
> > On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> > > From: Kees Cook <kees@kernel.org>
> > >
> > > Following from the recent KUnit file naming discussion[1], move all
> > > KUnit tests in lib/ into lib/tests/.
> > >
> > > Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> > > Signed-off-by: Kees Cook <kees@kernel.org>
> > > Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> > > Acked-by: Jakub Kicinski <kuba@kernel.org>
> > > Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
> > > Reviewed-by: David Gow <davidgow@google.com>
> > > [Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
> > > Signed-off-by: David Gow <davidgow@google.com>
> >
> > >  rename lib/{ => tests}/bitfield_kunit.c (100%)
> > >  rename lib/{ => tests}/checksum_kunit.c (100%)
> > >  rename lib/{ => tests}/cmdline_kunit.c (100%)
> > >  rename lib/{ => tests}/cpumask_kunit.c (100%)
> > >  rename lib/{ => tests}/fortify_kunit.c (100%)
> > >  rename lib/{ => tests}/hashtable_test.c (100%)
> > >  rename lib/{ => tests}/is_signed_type_kunit.c (100%)
> > >  rename lib/{ => tests}/kunit_iov_iter.c (100%)
> > >  rename lib/{ => tests}/list-test.c (100%)
> > >  rename lib/{ => tests}/memcpy_kunit.c (100%)
> > >  rename lib/{ => tests}/overflow_kunit.c (100%)
> > >  rename lib/{ => tests}/siphash_kunit.c (100%)
> > >  rename lib/{ => tests}/slub_kunit.c (100%)
> > >  rename lib/{ => tests}/stackinit_kunit.c (100%)
> > >  rename lib/{ => tests}/string_helpers_kunit.c (100%)
> > >  rename lib/{ => tests}/string_kunit.c (100%)
> > >  rename lib/{ => tests}/test_bits.c (100%)
> > >  rename lib/{ => tests}/test_fprobe.c (100%)
> > >  rename lib/{ => tests}/test_hash.c (100%)
> > >  rename lib/{ => tests}/test_kprobes.c (100%)
> > >  rename lib/{ => tests}/test_linear_ranges.c (100%)
> > >  rename lib/{ => tests}/test_list_sort.c (100%)
> > >  rename lib/{ => tests}/test_sort.c (100%)
> > >  rename lib/{ => tests}/usercopy_kunit.c (100%)
> >
> > While I support the idea, I think this adds an additional churn in creating a
> > duplicate 'test' in the filenames. Why they all can't be cut while removing?
> > (at least this question is not answered in the commit message)
> 
> To avoid duplicate *.ko file names?

With what? Sorry, but I don't see how it's a problem. These are test cases.
Do they use kernel command line parameters? If so, shouldn't KUnit take care
about it in a more proper way?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 13:57       ` Andy Shevchenko
@ 2024-10-11 14:14         ` Geert Uytterhoeven
  2024-10-11 15:21           ` Andy Shevchenko
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2024-10-11 14:14 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: David Gow, Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar,
	Kees Cook, linux-kselftest, kunit-dev, linux-kernel,
	Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Nathan Chancellor,
	Fangrui Song, Steven Rostedt (Google)

Hi Andy,

On Fri, Oct 11, 2024 at 3:57 PM Andy Shevchenko <andy@kernel.org> wrote:
> On Fri, Oct 11, 2024 at 03:38:00PM +0200, Geert Uytterhoeven wrote:
> > On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
> > > On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> > > > From: Kees Cook <kees@kernel.org>
> > > >
> > > > Following from the recent KUnit file naming discussion[1], move all
> > > > KUnit tests in lib/ into lib/tests/.
> > > >
> > > > Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> > > > Signed-off-by: Kees Cook <kees@kernel.org>
> > > > Acked-by: "Steven Rostedt (Google)" <rostedt@goodmis.org>
> > > > Acked-by: Jakub Kicinski <kuba@kernel.org>
> > > > Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
> > > > Reviewed-by: David Gow <davidgow@google.com>
> > > > [Rebased onto mm-nonmm-unstable, moved usercopy_kunit]
> > > > Signed-off-by: David Gow <davidgow@google.com>
> > >
> > > >  rename lib/{ => tests}/bitfield_kunit.c (100%)
> > > >  rename lib/{ => tests}/checksum_kunit.c (100%)
> > > >  rename lib/{ => tests}/cmdline_kunit.c (100%)
> > > >  rename lib/{ => tests}/cpumask_kunit.c (100%)
> > > >  rename lib/{ => tests}/fortify_kunit.c (100%)
> > > >  rename lib/{ => tests}/hashtable_test.c (100%)
> > > >  rename lib/{ => tests}/is_signed_type_kunit.c (100%)
> > > >  rename lib/{ => tests}/kunit_iov_iter.c (100%)
> > > >  rename lib/{ => tests}/list-test.c (100%)
> > > >  rename lib/{ => tests}/memcpy_kunit.c (100%)
> > > >  rename lib/{ => tests}/overflow_kunit.c (100%)
> > > >  rename lib/{ => tests}/siphash_kunit.c (100%)
> > > >  rename lib/{ => tests}/slub_kunit.c (100%)
> > > >  rename lib/{ => tests}/stackinit_kunit.c (100%)
> > > >  rename lib/{ => tests}/string_helpers_kunit.c (100%)
> > > >  rename lib/{ => tests}/string_kunit.c (100%)
> > > >  rename lib/{ => tests}/test_bits.c (100%)
> > > >  rename lib/{ => tests}/test_fprobe.c (100%)
> > > >  rename lib/{ => tests}/test_hash.c (100%)
> > > >  rename lib/{ => tests}/test_kprobes.c (100%)
> > > >  rename lib/{ => tests}/test_linear_ranges.c (100%)
> > > >  rename lib/{ => tests}/test_list_sort.c (100%)
> > > >  rename lib/{ => tests}/test_sort.c (100%)
> > > >  rename lib/{ => tests}/usercopy_kunit.c (100%)
> > >
> > > While I support the idea, I think this adds an additional churn in creating a
> > > duplicate 'test' in the filenames. Why they all can't be cut while removing?
> > > (at least this question is not answered in the commit message)
> >
> > To avoid duplicate *.ko file names?
>
> With what? Sorry, but I don't see how it's a problem. These are test cases.
> Do they use kernel command line parameters? If so, shouldn't KUnit take care
> about it in a more proper way?

If .e.g. lib/list_sort.o could be modular, its module would be called
"list_sort.ko", conflicting with the "list_sort.ko" test module.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 14:14         ` Geert Uytterhoeven
@ 2024-10-11 15:21           ` Andy Shevchenko
  2024-10-11 16:29             ` Christophe Leroy
  0 siblings, 1 reply; 26+ messages in thread
From: Andy Shevchenko @ 2024-10-11 15:21 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Andy Shevchenko, David Gow, Andrew Morton, Shuah Khan,
	Brendan Higgins, Rae Moar, Kees Cook, linux-kselftest, kunit-dev,
	linux-kernel, Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Nathan Chancellor,
	Fangrui Song, Steven Rostedt (Google)

On Fri, Oct 11, 2024 at 5:20 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Fri, Oct 11, 2024 at 3:57 PM Andy Shevchenko <andy@kernel.org> wrote:
> > On Fri, Oct 11, 2024 at 03:38:00PM +0200, Geert Uytterhoeven wrote:
> > > On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
> > > > On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:

...

> > > > >  rename lib/{ => tests}/bitfield_kunit.c (100%)
> > > > >  rename lib/{ => tests}/checksum_kunit.c (100%)
> > > > >  rename lib/{ => tests}/cmdline_kunit.c (100%)
> > > > >  rename lib/{ => tests}/cpumask_kunit.c (100%)
> > > > >  rename lib/{ => tests}/fortify_kunit.c (100%)
> > > > >  rename lib/{ => tests}/hashtable_test.c (100%)
> > > > >  rename lib/{ => tests}/is_signed_type_kunit.c (100%)
> > > > >  rename lib/{ => tests}/kunit_iov_iter.c (100%)
> > > > >  rename lib/{ => tests}/list-test.c (100%)
> > > > >  rename lib/{ => tests}/memcpy_kunit.c (100%)
> > > > >  rename lib/{ => tests}/overflow_kunit.c (100%)
> > > > >  rename lib/{ => tests}/siphash_kunit.c (100%)
> > > > >  rename lib/{ => tests}/slub_kunit.c (100%)
> > > > >  rename lib/{ => tests}/stackinit_kunit.c (100%)
> > > > >  rename lib/{ => tests}/string_helpers_kunit.c (100%)
> > > > >  rename lib/{ => tests}/string_kunit.c (100%)
> > > > >  rename lib/{ => tests}/test_bits.c (100%)
> > > > >  rename lib/{ => tests}/test_fprobe.c (100%)
> > > > >  rename lib/{ => tests}/test_hash.c (100%)
> > > > >  rename lib/{ => tests}/test_kprobes.c (100%)
> > > > >  rename lib/{ => tests}/test_linear_ranges.c (100%)
> > > > >  rename lib/{ => tests}/test_list_sort.c (100%)
> > > > >  rename lib/{ => tests}/test_sort.c (100%)
> > > > >  rename lib/{ => tests}/usercopy_kunit.c (100%)
> > > >
> > > > While I support the idea, I think this adds an additional churn in creating a
> > > > duplicate 'test' in the filenames. Why they all can't be cut while removing?
> > > > (at least this question is not answered in the commit message)
> > >
> > > To avoid duplicate *.ko file names?
> >
> > With what? Sorry, but I don't see how it's a problem. These are test cases.
> > Do they use kernel command line parameters? If so, shouldn't KUnit take care
> > about it in a more proper way?
>
> If .e.g. lib/list_sort.o could be modular, its module would be called
> "list_sort.ko", conflicting with the "list_sort.ko" test module.

Can't this be solved by automatically adding a prefix in Makefile for
kunit tests, for example?

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 15:21           ` Andy Shevchenko
@ 2024-10-11 16:29             ` Christophe Leroy
  2024-10-11 17:22               ` Andy Shevchenko
  0 siblings, 1 reply; 26+ messages in thread
From: Christophe Leroy @ 2024-10-11 16:29 UTC (permalink / raw)
  To: Andy Shevchenko, Geert Uytterhoeven
  Cc: Andy Shevchenko, David Gow, Andrew Morton, Shuah Khan,
	Brendan Higgins, Rae Moar, Kees Cook, linux-kselftest, kunit-dev,
	linux-kernel, Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Charlie Jenkins, Simon Horman,
	Jakub Kicinski, Arnd Bergmann, Daniel Latypov, Guenter Roeck,
	David Howells, Mickaël Salaün, Marco Elver,
	Mark Rutland, Gustavo A. R. Silva, Vlastimil Babka,
	Nathan Chancellor, Fangrui Song, Steven Rostedt (Google)



Le 11/10/2024 à 17:21, Andy Shevchenko a écrit :
> [Vous ne recevez pas souvent de courriers de andy.shevchenko@gmail.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> 
> On Fri, Oct 11, 2024 at 5:20 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>> On Fri, Oct 11, 2024 at 3:57 PM Andy Shevchenko <andy@kernel.org> wrote:
>>> On Fri, Oct 11, 2024 at 03:38:00PM +0200, Geert Uytterhoeven wrote:
>>>> On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
>>>>> On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> 
> ...
> 
>>>>>>   rename lib/{ => tests}/bitfield_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/checksum_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/cmdline_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/cpumask_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/fortify_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/hashtable_test.c (100%)
>>>>>>   rename lib/{ => tests}/is_signed_type_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/kunit_iov_iter.c (100%)
>>>>>>   rename lib/{ => tests}/list-test.c (100%)
>>>>>>   rename lib/{ => tests}/memcpy_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/overflow_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/siphash_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/slub_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/stackinit_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/string_helpers_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/string_kunit.c (100%)
>>>>>>   rename lib/{ => tests}/test_bits.c (100%)
>>>>>>   rename lib/{ => tests}/test_fprobe.c (100%)
>>>>>>   rename lib/{ => tests}/test_hash.c (100%)
>>>>>>   rename lib/{ => tests}/test_kprobes.c (100%)
>>>>>>   rename lib/{ => tests}/test_linear_ranges.c (100%)
>>>>>>   rename lib/{ => tests}/test_list_sort.c (100%)
>>>>>>   rename lib/{ => tests}/test_sort.c (100%)
>>>>>>   rename lib/{ => tests}/usercopy_kunit.c (100%)
>>>>>
>>>>> While I support the idea, I think this adds an additional churn in creating a
>>>>> duplicate 'test' in the filenames. Why they all can't be cut while removing?
>>>>> (at least this question is not answered in the commit message)
>>>>
>>>> To avoid duplicate *.ko file names?
>>>
>>> With what? Sorry, but I don't see how it's a problem. These are test cases.
>>> Do they use kernel command line parameters? If so, shouldn't KUnit take care
>>> about it in a more proper way?
>>
>> If .e.g. lib/list_sort.o could be modular, its module would be called
>> "list_sort.ko", conflicting with the "list_sort.ko" test module.

But as it is now in lib/tests/, the module will also be installed in 
tests/ subdir, so it shouldn't clash anymore ?

You'd have:

/lib/modules/lib/list_sort.ko and
/lib/modules/lib/tests/list_sort.ko

Or did I miss something ?
> 
> Can't this be solved by automatically adding a prefix in Makefile for
> kunit tests, for example?
> 
> --
> With Best Regards,
> Andy Shevchenko

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
  2024-10-11  9:17   ` Vlastimil Babka
  2024-10-11 10:44   ` Andy Shevchenko
@ 2024-10-11 17:20   ` Kees Cook
  2 siblings, 0 replies; 26+ messages in thread
From: Kees Cook @ 2024-10-11 17:20 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Yury Norov, Rasmus Villemoes, Jason A . Donenfeld,
	Andy Shevchenko, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Christophe Leroy,
	Charlie Jenkins, Simon Horman, Jakub Kicinski, Arnd Bergmann,
	Daniel Latypov, Guenter Roeck, David Howells,
	Mickaël Salaün, Marco Elver, Mark Rutland,
	Gustavo A. R. Silva, Vlastimil Babka, Geert Uytterhoeven,
	Nathan Chancellor, Fangrui Song, Steven Rostedt (Google)

On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:
> From: Kees Cook <kees@kernel.org>
> 
> Following from the recent KUnit file naming discussion[1], move all
> KUnit tests in lib/ into lib/tests/.

Thanks for picking this up! I hadn't had time to resend it. :)

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory
  2024-10-11 16:29             ` Christophe Leroy
@ 2024-10-11 17:22               ` Andy Shevchenko
  0 siblings, 0 replies; 26+ messages in thread
From: Andy Shevchenko @ 2024-10-11 17:22 UTC (permalink / raw)
  To: Christophe Leroy
  Cc: Geert Uytterhoeven, David Gow, Andrew Morton, Shuah Khan,
	Brendan Higgins, Rae Moar, Kees Cook, linux-kselftest, kunit-dev,
	linux-kernel, Stephen Rothwell, Yury Norov, Rasmus Villemoes,
	Jason A . Donenfeld, Naveen N . Rao, Anil S Keshavamurthy,
	David S . Miller, Masami Hiramatsu, Mark Brown, linux-hardening,
	linux-trace-kernel, Palmer Dabbelt, Charlie Jenkins, Simon Horman,
	Jakub Kicinski, Arnd Bergmann, Daniel Latypov, Guenter Roeck,
	David Howells, Mickaël Salaün, Marco Elver,
	Mark Rutland, Gustavo A. R. Silva, Vlastimil Babka,
	Nathan Chancellor, Fangrui Song, Steven Rostedt (Google)

On Fri, Oct 11, 2024 at 06:29:49PM +0200, Christophe Leroy wrote:
> Le 11/10/2024 à 17:21, Andy Shevchenko a écrit :
> > [Vous ne recevez pas souvent de courriers de andy.shevchenko@gmail.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> > 
> > On Fri, Oct 11, 2024 at 5:20 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Fri, Oct 11, 2024 at 3:57 PM Andy Shevchenko <andy@kernel.org> wrote:
> > > > On Fri, Oct 11, 2024 at 03:38:00PM +0200, Geert Uytterhoeven wrote:
> > > > > On Fri, Oct 11, 2024 at 12:44 PM Andy Shevchenko <andy@kernel.org> wrote:
> > > > > > On Fri, Oct 11, 2024 at 03:25:07PM +0800, David Gow wrote:

...

> > > > > > >   rename lib/{ => tests}/bitfield_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/checksum_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/cmdline_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/cpumask_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/fortify_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/hashtable_test.c (100%)
> > > > > > >   rename lib/{ => tests}/is_signed_type_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/kunit_iov_iter.c (100%)
> > > > > > >   rename lib/{ => tests}/list-test.c (100%)
> > > > > > >   rename lib/{ => tests}/memcpy_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/overflow_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/siphash_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/slub_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/stackinit_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/string_helpers_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/string_kunit.c (100%)
> > > > > > >   rename lib/{ => tests}/test_bits.c (100%)
> > > > > > >   rename lib/{ => tests}/test_fprobe.c (100%)
> > > > > > >   rename lib/{ => tests}/test_hash.c (100%)
> > > > > > >   rename lib/{ => tests}/test_kprobes.c (100%)
> > > > > > >   rename lib/{ => tests}/test_linear_ranges.c (100%)
> > > > > > >   rename lib/{ => tests}/test_list_sort.c (100%)
> > > > > > >   rename lib/{ => tests}/test_sort.c (100%)
> > > > > > >   rename lib/{ => tests}/usercopy_kunit.c (100%)
> > > > > > 
> > > > > > While I support the idea, I think this adds an additional churn in creating a
> > > > > > duplicate 'test' in the filenames. Why they all can't be cut while removing?
> > > > > > (at least this question is not answered in the commit message)
> > > > > 
> > > > > To avoid duplicate *.ko file names?
> > > > 
> > > > With what? Sorry, but I don't see how it's a problem. These are test cases.
> > > > Do they use kernel command line parameters? If so, shouldn't KUnit take care
> > > > about it in a more proper way?
> > > 
> > > If .e.g. lib/list_sort.o could be modular, its module would be called
> > > "list_sort.ko", conflicting with the "list_sort.ko" test module.
> 
> But as it is now in lib/tests/, the module will also be installed in tests/
> subdir, so it shouldn't clash anymore ?
> 
> You'd have:
> 
> /lib/modules/lib/list_sort.ko and
> /lib/modules/lib/tests/list_sort.ko
> 
> Or did I miss something ?

I believe Geert is talking about `modprobe list-sort` in the userspace.
Which one will be loaded?

> > Can't this be solved by automatically adding a prefix in Makefile for
> > kunit tests, for example?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests
  2024-10-11  7:25 ` [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests David Gow
@ 2024-10-15 13:20   ` Gabriel Krisman Bertazi
  0 siblings, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2024-10-15 13:20 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Gabriela Bittencourt, linux-fsdevel, ~lkcamp/patches,
	Pedro Orlando, Danilo Pereira, Gabriel Krisman Bertazi

David Gow <davidgow@google.com> writes:

> From: Gabriela Bittencourt <gbittencourt@lkcamp.dev>
>
> Refactoring 'test' functions into kunit tests, to test utf-8 support in
> unicode subsystem.
>
> This allows the utf8 tests to be run alongside the KUnit test suite
> using kunit-tool, quickly compiling and running all desired tests as
> part of the KUnit test suite, instead of compiling the selftest module
> and loading it.
>
> The refactoring kept the original testing logic intact, while adopting a
> testing pattern across different kernel modules and leveraging KUnit's
> benefits.
>

Acked-by: Gabriel Krisman Bertazi <krisman@suse.de>

-- 
Gabriel Krisman Bertazi

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 6/6] unicode: kunit: change tests filename and path
  2024-10-11  7:25 ` [PATCH 6/6] unicode: kunit: change tests filename and path David Gow
@ 2024-10-15 13:21   ` Gabriel Krisman Bertazi
  0 siblings, 0 replies; 26+ messages in thread
From: Gabriel Krisman Bertazi @ 2024-10-15 13:21 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Gabriela Bittencourt, linux-fsdevel, ~lkcamp/patches,
	Pedro Orlando, Danilo Pereira, Gabriel Krisman Bertazi

David Gow <davidgow@google.com> writes:

> From: Gabriela Bittencourt <gbittencourt@lkcamp.dev>
>
> Change utf8 kunit test filename and path to follow the style
> convention on Documentation/dev-tools/kunit/style.rst
>
> Co-developed-by: Pedro Orlando <porlando@lkcamp.dev>
> Signed-off-by: Pedro Orlando <porlando@lkcamp.dev>
> Co-developed-by: Danilo Pereira <dpereira@lkcamp.dev>
> Signed-off-by: Danilo Pereira <dpereira@lkcamp.dev>
> Signed-off-by: Gabriela Bittencourt <gbittencourt@lkcamp.dev>
> Reviewed-by: David Gow <davidgow@google.com>
> [Rebased, fixed module build (Gabriel Krisman Bertazi)]
> Signed-off-by: David Gow <davidgow@google.com>

Acked-by: Gabriel Krisman Bertazi <krisman@suse.de>

-- 
Gabriel Krisman Bertazi

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-10-11  8:59   ` Geert Uytterhoeven
@ 2024-11-06  8:33     ` Geert Uytterhoeven
  2024-11-06 21:17       ` Andrew Morton
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2024-11-06  8:33 UTC (permalink / raw)
  To: David Gow, Andrew Morton
  Cc: Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook, linux-kselftest,
	kunit-dev, linux-kernel, Stephen Rothwell, Luis Felipe Hernandez,
	quic_jjohnson, macro, tpiepho, ricardo, linux-kernel-mentees,
	Nicolas Pitre

Hi all,

On Fri, Oct 11, 2024 at 10:59 AM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Fri, Oct 11, 2024 at 9:31 AM David Gow <davidgow@google.com> wrote:
> > From: Luis Felipe Hernandez <luis.hernandez093@gmail.com>
> >
> > This patch is a follow-up task from a discussion stemming from point 3
> > in a recent patch introducing the int_pow kunit test [1] and
> > documentation regarding kunit test style and nomenclature [2].
> >
> > Colocate all kunit test suites in lib/math/tests/ and
> > follow recommended naming convention for files <suite>_kunit.c
> > and kconfig entries CONFIG_<name>_KUNIT_TEST.
> >
> > Link: https://lore.kernel.org/all/CABVgOS=-vh5TqHFCq_jo=ffq8v_nGgr6JsPnOZag3e6+19ysxQ@mail.gmail.com/ [1]
> > Link: https://docs.kernel.org/dev-tools/kunit/style.html [2]
> >
> > Signed-off-by: Luis Felipe Hernandez <luis.hernandez093@gmail.com>
> > Acked-by: Nicolas Pitre <npitre@baylibre.com>
> > [Rebased on top of mm-nonmm-unstable.]
> > Signed-off-by: David Gow <davidgow@google.com>

> > --- a/lib/Kconfig.debug
> > +++ b/lib/Kconfig.debug
> > @@ -2296,7 +2296,7 @@ config TEST_SORT
> >
> >           If unsure, say N.
> >
> > -config TEST_DIV64
> > +config DIV64_KUNIT_TEST
> >         tristate "64bit/32bit division and modulo test"
> >         depends on DEBUG_KERNEL || m
> >         help
> > @@ -2306,7 +2306,7 @@ config TEST_DIV64
> >
> >           If unsure, say N.
> >
> > -config TEST_MULDIV64
> > +config MULDIV64_KUNIT_TEST
> >         tristate "mul_u64_u64_div_u64() test"
> >         depends on DEBUG_KERNEL || m
> >         help
>
> This conflicts with "[PATCH] m68k: defconfig: Update defconfigs for
> v6.12-rc1"[1].  Of course the proper way forward would be to add
> "default KUNIT_ALL_TESTS" to all tests that still lack it, so I can
> just never queue that patch ;-)

What's the status of this series? I am asking because I am wondering if
I should queue [1] for v6.13, or just drop it, and send a patch to add
"default KUNIT_ALL_TESTS" instead.

I saw the email from Andrew stating he applied it to his tree[2],
but that seems to have been dropped silently, and never made it into
linux-next?

Thanks!

> > @@ -2993,7 +2993,7 @@ config TEST_OBJPOOL
> >
> >           If unsure, say N.
> >
> > -config INT_POW_TEST
> > +config INT_POW_KUNIT_TEST
> >         tristate "Integer exponentiation (int_pow) test" if !KUNIT_ALL_TESTS
> >         depends on KUNIT
> >         default KUNIT_ALL_TESTS
>
> [1] https://lore.kernel.org/all/4092672cb64b86ec3f300b4cf0ea0c2db2b52e2e.1727699197.git.geert@linux-m68k.org/

[2] https://lore.kernel.org/all/20241015001409.C4A33C4CEC7@smtp.kernel.org/

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-11-06  8:33     ` Geert Uytterhoeven
@ 2024-11-06 21:17       ` Andrew Morton
  2024-11-07  7:34         ` Geert Uytterhoeven
  0 siblings, 1 reply; 26+ messages in thread
From: Andrew Morton @ 2024-11-06 21:17 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: David Gow, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Luis Felipe Hernandez, quic_jjohnson, macro, tpiepho, ricardo,
	linux-kernel-mentees, Nicolas Pitre

On Wed, 6 Nov 2024 09:33:55 +0100 Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> Hi all,
> > This conflicts with "[PATCH] m68k: defconfig: Update defconfigs for
> > v6.12-rc1"[1].  Of course the proper way forward would be to add
> > "default KUNIT_ALL_TESTS" to all tests that still lack it, so I can
> > just never queue that patch ;-)
> 
> What's the status of this series? I am asking because I am wondering if
> I should queue [1] for v6.13, or just drop it, and send a patch to add
> "default KUNIT_ALL_TESTS" instead.
> 
> I saw the email from Andrew stating he applied it to his tree[2],
> but that seems to have been dropped silently, and never made it into
> linux-next?

Yes, sorry.  Believe it or not, I do try to avoid spraying out too many
emails.  David will recall better than I, but things got messy. 
https://lkml.kernel.org/r/20241009162719.0adaea37@canb.auug.org.au was
perhaps the cause.

I'm sure David can being us up to date.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-11-06 21:17       ` Andrew Morton
@ 2024-11-07  7:34         ` Geert Uytterhoeven
  2024-11-09  9:39           ` David Gow
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2024-11-07  7:34 UTC (permalink / raw)
  To: Andrew Morton
  Cc: David Gow, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Luis Felipe Hernandez, quic_jjohnson, macro, tpiepho, ricardo,
	linux-kernel-mentees, Nicolas Pitre

Hi Andrew,

On Wed, Nov 6, 2024 at 10:17 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> On Wed, 6 Nov 2024 09:33:55 +0100 Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > This conflicts with "[PATCH] m68k: defconfig: Update defconfigs for
> > > v6.12-rc1"[1].  Of course the proper way forward would be to add
> > > "default KUNIT_ALL_TESTS" to all tests that still lack it, so I can
> > > just never queue that patch ;-)
> >
> > What's the status of this series? I am asking because I am wondering if
> > I should queue [1] for v6.13, or just drop it, and send a patch to add
> > "default KUNIT_ALL_TESTS" instead.
> >
> > I saw the email from Andrew stating he applied it to his tree[2],
> > but that seems to have been dropped silently, and never made it into
> > linux-next?
>
> Yes, sorry.  Believe it or not, I do try to avoid spraying out too many
> emails.  David will recall better than I, but things got messy.
> https://lkml.kernel.org/r/20241009162719.0adaea37@canb.auug.org.au was
> perhaps the cause.

Fair enough.

> I'm sure David can being us up to date.

Probably the best solution is to respin after v6.13-rc1, to be included
in v6.13-rc2.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir
  2024-11-07  7:34         ` Geert Uytterhoeven
@ 2024-11-09  9:39           ` David Gow
  0 siblings, 0 replies; 26+ messages in thread
From: David Gow @ 2024-11-09  9:39 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Andrew Morton, Shuah Khan, Brendan Higgins, Rae Moar, Kees Cook,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell,
	Luis Felipe Hernandez, quic_jjohnson, macro, tpiepho, ricardo,
	linux-kernel-mentees, Nicolas Pitre

[-- Attachment #1: Type: text/plain, Size: 1802 bytes --]

On Thu, 7 Nov 2024 at 15:34, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Andrew,
>
> On Wed, Nov 6, 2024 at 10:17 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> > On Wed, 6 Nov 2024 09:33:55 +0100 Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > This conflicts with "[PATCH] m68k: defconfig: Update defconfigs for
> > > > v6.12-rc1"[1].  Of course the proper way forward would be to add
> > > > "default KUNIT_ALL_TESTS" to all tests that still lack it, so I can
> > > > just never queue that patch ;-)
> > >
> > > What's the status of this series? I am asking because I am wondering if
> > > I should queue [1] for v6.13, or just drop it, and send a patch to add
> > > "default KUNIT_ALL_TESTS" instead.
> > >
> > > I saw the email from Andrew stating he applied it to his tree[2],
> > > but that seems to have been dropped silently, and never made it into
> > > linux-next?
> >
> > Yes, sorry.  Believe it or not, I do try to avoid spraying out too many
> > emails.  David will recall better than I, but things got messy.
> > https://lkml.kernel.org/r/20241009162719.0adaea37@canb.auug.org.au was
> > perhaps the cause.
>
> Fair enough.
>
> > I'm sure David can being us up to date.
>
> Probably the best solution is to respin after v6.13-rc1, to be included
> in v6.13-rc2.
>

Sorry about the delay, for some reason these were getting caught in my
spam filter...

Yeah, I think that's probably best. I'll go through and do a new
version post rc1.

In general, my preferred option is to use the 'default
KUNIT_ALL_TESTS' where possible. I'm sure there'll be some tests where
it makes sense to _not_ enable them by default, but we should where we
can. Ultimately, it's up to the test maintainer, though.

-- David


-- David

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5294 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/6] KUnit test moves / renames
  2024-10-11 13:53 ` [PATCH 0/6] KUnit test moves / renames Shuah Khan
@ 2025-02-08 21:14   ` Kees Cook
       [not found]     ` <CAKRRn-cFvCOay-J6BEsGjcB309_k-4rr9u=yKU7BCmiW-OcVcA@mail.gmail.com>
  0 siblings, 1 reply; 26+ messages in thread
From: Kees Cook @ 2025-02-08 21:14 UTC (permalink / raw)
  To: Shuah Khan
  Cc: David Gow, Andrew Morton, Brendan Higgins, Rae Moar,
	linux-kselftest, kunit-dev, linux-kernel, Stephen Rothwell

On Fri, Oct 11, 2024 at 07:53:43AM -0600, Shuah Khan wrote:
> On 10/11/24 01:25, David Gow wrote:
> > As discussed in [1], the KUnit test naming scheme has changed to avoid
> > name conflicts (and tab-completion woes) with the files being tested.
> > These renames and moves have caused a nasty set of merge conflicts, so
> > this series collates and rebases them all to be applied via
> > mm-nonmm-unstable alongside any lib/ changes[2].
> > 
> > Thanks to everyone whose patches appear here, and everyone who reviewed
> > on the original series. I hope I didn't break them too much during the
> > rebase!
> > 
> > Link: https://lore.kernel.org/lkml/20240720165441.it.320-kees@kernel.org/ [1]
> > Link: https://lore.kernel.org/lkml/CABVgOSmbSzcGUi=E4piSojh3A4_0GjE0fAYbqKjtYGbE9beYRQ@mail.gmail.com/ [2]
> > ---
> > 
> > Bruno Sobreira França (1):
> >    lib/math: Add int_log test suite
> > 
> > Diego Vieira (1):
> >    lib/tests/kfifo_kunit.c: add tests for the kfifo structure
> > 
> > Gabriela Bittencourt (2):
> >    unicode: kunit: refactor selftest to kunit tests
> >    unicode: kunit: change tests filename and path
> > 
> > Kees Cook (1):
> >    lib: Move KUnit tests into tests/ subdirectory
> > 
> > Luis Felipe Hernandez (1):
> >    lib: math: Move kunit tests into tests/ subdir
> 
> 
> These look good to me. Thank you.
> 
> Acked-by: Shuah Khan <skhan@linuxfoundation.org>

Shall I carry this in the hardening tree? I didn't see it land in the
merge window, and I still don't see it in -next?

-Kees

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 0/6] KUnit test moves / renames
       [not found]     ` <CAKRRn-cFvCOay-J6BEsGjcB309_k-4rr9u=yKU7BCmiW-OcVcA@mail.gmail.com>
@ 2025-02-09 23:47       ` Stephen Rothwell
  0 siblings, 0 replies; 26+ messages in thread
From: Stephen Rothwell @ 2025-02-09 23:47 UTC (permalink / raw)
  To: Shuah Khan
  Cc: Kees Cook, David Gow, Andrew Morton, Brendan Higgins, Rae Moar,
	open list:KERNEL SELFTEST FRAMEWORK, KUnit Development,
	Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1095 bytes --]

Hi all,

On Mon, 10 Feb 2025 04:43:28 +0530 Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> On Sun, Feb 9, 2025, 2:44 AM Kees Cook <kees@kernel.org> wrote:
> 
> > On Fri, Oct 11, 2024 at 07:53:43AM -0600, Shuah Khan wrote:  
> > > On 10/11/24 01:25, David Gow wrote:  
> > > > As discussed in [1], the KUnit test naming scheme has changed to avoid
> > > > name conflicts (and tab-completion woes) with the files being tested.
> > > > These renames and moves have caused a nasty set of merge conflicts, so
> > > > this series collates and rebases them all to be applied via
> > > > mm-nonmm-unstable alongside any lib/ changes[2].
> >
> > Shall I carry this in the hardening tree? I didn't see it land in the
> > merge window, and I still don't see it in -next?
> >  
> 
> My thinking was that this series would go through Andrew's tree to avoid
> conflicts. Please take it through yours.

If they have been rebased onto mm-nonmm-unstable, then they really need
to go through Andrew' tree (since mm-nonmm-unstable gets rebased often).

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2025-02-09 23:47 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-11  7:25 [PATCH 0/6] KUnit test moves / renames David Gow
2024-10-11  7:25 ` [PATCH 1/6] lib: math: Move kunit tests into tests/ subdir David Gow
2024-10-11  8:59   ` Geert Uytterhoeven
2024-11-06  8:33     ` Geert Uytterhoeven
2024-11-06 21:17       ` Andrew Morton
2024-11-07  7:34         ` Geert Uytterhoeven
2024-11-09  9:39           ` David Gow
2024-10-11  7:25 ` [PATCH 2/6] lib/math: Add int_log test suite David Gow
2024-10-11  7:25 ` [PATCH 3/6] lib: Move KUnit tests into tests/ subdirectory David Gow
2024-10-11  9:17   ` Vlastimil Babka
2024-10-11 10:44   ` Andy Shevchenko
2024-10-11 13:38     ` Geert Uytterhoeven
2024-10-11 13:57       ` Andy Shevchenko
2024-10-11 14:14         ` Geert Uytterhoeven
2024-10-11 15:21           ` Andy Shevchenko
2024-10-11 16:29             ` Christophe Leroy
2024-10-11 17:22               ` Andy Shevchenko
2024-10-11 17:20   ` Kees Cook
2024-10-11  7:25 ` [PATCH 4/6] lib/tests/kfifo_kunit.c: add tests for the kfifo structure David Gow
2024-10-11  7:25 ` [PATCH 5/6] unicode: kunit: refactor selftest to kunit tests David Gow
2024-10-15 13:20   ` Gabriel Krisman Bertazi
2024-10-11  7:25 ` [PATCH 6/6] unicode: kunit: change tests filename and path David Gow
2024-10-15 13:21   ` Gabriel Krisman Bertazi
2024-10-11 13:53 ` [PATCH 0/6] KUnit test moves / renames Shuah Khan
2025-02-08 21:14   ` Kees Cook
     [not found]     ` <CAKRRn-cFvCOay-J6BEsGjcB309_k-4rr9u=yKU7BCmiW-OcVcA@mail.gmail.com>
2025-02-09 23:47       ` Stephen Rothwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).