On Sat, 08 Feb 2025 17:52:28 -0500 Tamir Duberstein tamird@gmail.com wrote:
This is a clear example of a unit test.
I tested this using:
$ tools/testing/kunit/kunit.py run --arch arm64 --make_options LLVM=1 math-prime_numbers
On success: ; [08:51:41] ============== math-prime_numbers (1 subtest) ============== ; [08:51:41] [PASSED] prime_numbers_test ; [08:51:41] =============== [PASSED] math-prime_numbers ================ ; [08:51:41] ============================================================ ; [08:51:41] Testing complete. Ran 1 tests: passed: 1
On failure: ; [08:50:19] ============== math-prime_numbers (1 subtest) ============== ; [08:50:19] # prime_numbers_test: ASSERTION FAILED at lib/math/tests/prime_numbers_kunit.c:28 ; [08:50:19] Expected slow == fast, but ; [08:50:19] slow == 0 (0x0) ; [08:50:19] fast == 1 (0x1) ; [08:50:19] is-prime(2) ; [08:50:19] [FAILED] prime_numbers_test ; [08:50:19] # module: prime_numbers_kunit ; [08:50:19] # math-prime_numbers: primes.{last=61, .sz=64, .primes[]=...x28208a20a08a28ac} = 2-3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61 ; [08:50:19] =============== [FAILED] math-prime_numbers ================ ; [08:50:19] ============================================================ ; [08:50:19] Testing complete. Ran 1 tests: failed: 1
I resolved this against "lib/math: add Kunit test suite for gcd()" (https://lkml.kernel.org/r/20250203075400.3431330-1-eleanor15x@gmail.com) in the obvious fashion then added this fixup:
From: Andrew Morton akpm@linux-foundation.org Subject: lib-math-hook-up-tests-makefile-fix Date: Sat Feb 8 03:33:59 PM PST 2025
don't link gcd_kunit.o twice
Cc: David Gow davidgow@google.com Cc: Tamir Duberstein tamird@gmail.com Signed-off-by: Andrew Morton akpm@linux-foundation.org ---
lib/math/Makefile | 1 - 1 file changed, 1 deletion(-)
--- a/lib/math/Makefile~lib-math-hook-up-tests-makefile-fix +++ a/lib/math/Makefile @@ -8,5 +8,4 @@ obj-$(CONFIG_RATIONAL) += rational.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-$(CONFIG_GCD_KUNIT_TEST) += tests/gcd_kunit.o obj-y += tests/ _
and the x86_64 allmodconfig build failed thusly:
lib/math/tests/prime_numbers_kunit.c: In function 'prime_numbers_test': lib/math/tests/prime_numbers_kunit.c:25:35: error: implicit declaration of function 'slow_is_prime_number'; did you mean 'is_prime_number'? [-Werror=implicit-function-declaration] 25 | const bool slow = slow_is_prime_number(x); | ^~~~~~~~~~~~~~~~~~~~ | is_prime_number
So, please redo against mm.git's mm-everything branch or its mm-nonmm-unstable branch and retest carefully.