Skip to contentSkip to conversation

Make 'kunit.py run --alltests' run all crypto library tests

PATCH Applied Eric Biggers 1 participant 4 messages Mar 14 – Mar 17

Subsystems (3)
lore
Share & tools
lore

Eric Biggers

author maintainer
#0 lore raw

cover Make 'kunit.py run --alltests' run all crypto library tests

This series makes the KUnit all_tests.config enable all the crypto library options that have KUnit tests, so that all these tests will be run in testing systems use 'kunit.py run --alltests'. (For example, KernelCI is planned to start doing that [1].) To do this easily in both that file and in lib/crypto/.kunitconfig, introduce a kconfig option CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT for this purpose.

This series is targeting libcrypto-next.

[1] https://lore.kernel.org/kernelci/[email protected]

Eric Biggers (2):
lib/crypto: tests: Introduce CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
kunit: configs: Enable all crypto library tests in all_tests.config

 lib/crypto/.kunitconfig                      | 22 +-----------------
 lib/crypto/tests/Kconfig                     | 24 ++++++++++++++++++++
 tools/testing/kunit/configs/all_tests.config |  2 ++
 3 files changed, 27 insertions(+), 21 deletions(-)

base-commit: ce260754bb435aea18e6a1a1ce3759249013f5a4

Signature · 1 line
2.53.0
author maintainer
#1 lore raw

PATCH 1/2 lib/crypto: tests: Introduce CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT

For kunit.py to run all the crypto library tests when passed the --alltests option, tools/testing/kunit/configs/all_tests.config needs to enable options that satisfy the test dependencies.

This is the same as what lib/crypto/.kunitconfig already does. However, the strategy that lib/crypto/.kunitconfig currently uses to select all the hidden library options isn't going to scale up well when it needs to be repeated in two places.

Instead let's go ahead and introduce an option CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT that depends on KUNIT and selects all the crypto library options that have corresponding KUnit tests.

Update lib/crypto/.kunitconfig to use this option.

---
 lib/crypto/.kunitconfig  | 22 +---------------------
 lib/crypto/tests/Kconfig | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 21 deletions(-)
lib/crypto/.kunitconfig +1 -21
index 8cfd213bded9b..63a592731d1dc 100644
@@ -1,28 +1,8 @@
 CONFIG_KUNIT=y
 
-# These kconfig options select all the CONFIG_CRYPTO_LIB_* symbols that have a
-# corresponding KUnit test.  Those symbols cannot be directly enabled here,
-# since they are hidden symbols.
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ADIANTUM=y
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_BLAKE2B=y
-CONFIG_CRYPTO_CHACHA20POLY1305=y
-CONFIG_CRYPTO_CMAC=y
-CONFIG_CRYPTO_HCTR2=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MLDSA=y
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=y
-CONFIG_INET=y
-CONFIG_IPV6=y
-CONFIG_NET=y
-CONFIG_NETDEVICES=y
-CONFIG_WIREGUARD=y
+CONFIG_CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT=y
 
 CONFIG_CRYPTO_LIB_AES_CBC_MACS_KUNIT_TEST=y
 CONFIG_CRYPTO_LIB_BLAKE2B_KUNIT_TEST=y
 CONFIG_CRYPTO_LIB_BLAKE2S_KUNIT_TEST=y
 CONFIG_CRYPTO_LIB_CURVE25519_KUNIT_TEST=y
lib/crypto/tests/Kconfig +24 -0
index 0d71de3da15d7..caab7fdbdfdef 100644
@@ -114,10 +114,34 @@ config CRYPTO_LIB_SHA3_KUNIT_TEST
 	help
 	  KUnit tests for the SHA3 cryptographic hash and XOF functions,
 	  including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
 	  SHAKE256.
 
+config CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
+	tristate "Enable all crypto library code for KUnit tests"
+	depends on KUNIT
+	select CRYPTO_LIB_AES_CBC_MACS
+	select CRYPTO_LIB_BLAKE2B
+	select CRYPTO_LIB_CURVE25519
+	select CRYPTO_LIB_MD5
+	select CRYPTO_LIB_MLDSA
+	select CRYPTO_LIB_NH
+	select CRYPTO_LIB_POLY1305
+	select CRYPTO_LIB_POLYVAL
+	select CRYPTO_LIB_SHA1
+	select CRYPTO_LIB_SHA256
+	select CRYPTO_LIB_SHA512
+	select CRYPTO_LIB_SHA3
+	help
+	  Enable all the crypto library code that has KUnit tests.
+
+	  Enable this only if you'd like to test all the crypto library code,
+	  even code that wouldn't otherwise need to be built.
+
+	  You'll still need to enable the tests themselves, either individually
+	  or using KUNIT_ALL_TESTS.
+
 config CRYPTO_LIB_BENCHMARK_VISIBLE
 	bool
 
 config CRYPTO_LIB_BENCHMARK
 	bool "Include benchmarks in KUnit tests for cryptographic functions"
Signature · 1 line
2.53.0
author maintainer
#2 lore raw

PATCH 2/2 kunit: configs: Enable all crypto library tests in all_tests.config

In reply to Eric Biggers

The new option CONFIG_CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT enables all the crypto library code that has KUnit tests, causing CONFIG_KUNIT_ALL_TESTS to enable all these tests. Add this option to all_tests.config so that kunit.py will run them when passed the --alltests option.

---
 tools/testing/kunit/configs/all_tests.config | 2 ++
 1 file changed, 2 insertions(+)
tools/testing/kunit/configs/all_tests.config +2 -0
index 422e186cf3cf1..6910b07082da2 100644
@@ -42,10 +42,12 @@ CONFIG_DAMON_PADDR=y
 
 CONFIG_REGMAP_BUILD=y
 
 CONFIG_AUDIT=y
 
+CONFIG_CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT=y
+
 CONFIG_PRIME_NUMBERS=y
 
 CONFIG_SECURITY=y
 CONFIG_SECURITY_APPARMOR=y
 CONFIG_SECURITY_LANDLOCK=y
Signature · 1 line
2.53.0
author maintainer Applied
#3 lore raw
In reply to Eric Biggers
Quoted 11 lines · Eric Biggers

This series makes the KUnit all_tests.config enable all the crypto library options that have KUnit tests, so that all these tests will be run in testing systems use 'kunit.py run --alltests'. (For example, KernelCI is planned to start doing that [1].) To do this easily in both that file and in lib/crypto/.kunitconfig, introduce a kconfig option CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT for this purpose.

This series is targeting libcrypto-next.

[1] https://lore.kernel.org/kernelci/[email protected]

Quoted 8 lines

Eric Biggers (2):
lib/crypto: tests: Introduce CRYPTO_LIB_ENABLE_ALL_FOR_KUNIT
kunit: configs: Enable all crypto library tests in all_tests.config

 lib/crypto/.kunitconfig                      | 22 +-----------------
 lib/crypto/tests/Kconfig                     | 24 ++++++++++++++++++++
 tools/testing/kunit/configs/all_tests.config |  2 ++
 3 files changed, 27 insertions(+), 21 deletions(-)

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git/log/?h=libcrypto-next

- Eric