From cc73cc55e806349c9ad824a53310eed15bc715a2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 May 2021 09:04:46 +0200 Subject: [PATCH] Test the build with whole-module alternative implementations Use headers defining dummy context types. The test does not pass yet. I plan to fix this in subsequent commits. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 2df65a5b4e..53b4e250e8 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1364,6 +1364,26 @@ component_build_default_make_gcc_and_cxx () { make TEST_CPP=1 } +component_build_module_alt () { + msg "build: MBEDTLS_XXX_ALT" # ~30s + scripts/config.py full + # Disable options that are incompatible with some ALT implementations. + # aesni.c and padlock.c reference mbedtls_aes_context fields directly. + scripts/config.py unset MBEDTLS_AESNI_C + scripts/config.py unset MBEDTLS_PADLOCK_C + # The debug code accesses DHM context fields directly, so it is + # incompatible with MBEDTLS_DHM_ALT. + scripts/config.py unset MBEDTLS_DEBUG_C + # You can only have one threading implementation: alt or pthread, not both. + scripts/config.py unset MBEDTLS_THREADING_PTHREAD + # Enable all MBEDTLS_XXX_ALT for whole modules. Do not enable + # MBEDTLS_XXX_YYY_ALT which are for single functions. + scripts/config.py set-all 'MBEDTLS_([A-Z0-9]*|NIST_KW)_ALT' + # We can only compile, not link, since we don't have any implementations + # suitable for testing with the dummy alt headers. + make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib +} + component_test_no_use_psa_crypto_full_cmake_asan() { # full minus MBEDTLS_USE_PSA_CRYPTO: run the same set of tests as basic-build-test.sh msg "build: cmake, full config minus MBEDTLS_USE_PSA_CRYPTO, ASan"