mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-08 17:42:09 +03:00
Extract platform components into a separate file.
Signed-off-by: David Horstmann <david.horstmann@arm.com> Signed-off-by: Thomas Daubney <thomas.daubney@arm.com> Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
This commit is contained in:
@@ -9,3 +9,113 @@
|
|||||||
#### Platform Testing
|
#### Platform Testing
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
|
component_test_malloc_0_null () {
|
||||||
|
msg "build: malloc(0) returns NULL (ASan+UBSan build)"
|
||||||
|
scripts/config.py full
|
||||||
|
make CC=$ASAN_CC CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"$PWD/tests/configs/user-config-malloc-0-null.h\"' $ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
||||||
|
|
||||||
|
msg "test: malloc(0) returns NULL (ASan+UBSan build)"
|
||||||
|
make test
|
||||||
|
|
||||||
|
msg "selftest: malloc(0) returns NULL (ASan+UBSan build)"
|
||||||
|
# Just the calloc selftest. "make test" ran the others as part of the
|
||||||
|
# test suites.
|
||||||
|
programs/test/selftest calloc
|
||||||
|
|
||||||
|
msg "test ssl-opt.sh: malloc(0) returns NULL (ASan+UBSan build)"
|
||||||
|
# Run a subset of the tests. The choice is a balance between coverage
|
||||||
|
# and time (including time indirectly wasted due to flaky tests).
|
||||||
|
# The current choice is to skip tests whose description includes
|
||||||
|
# "proxy", which is an approximation of skipping tests that use the
|
||||||
|
# UDP proxy, which tend to be slower and flakier.
|
||||||
|
tests/ssl-opt.sh -e 'proxy'
|
||||||
|
}
|
||||||
|
|
||||||
|
component_test_m32_no_asm () {
|
||||||
|
# Build without assembly, so as to use portable C code (in a 32-bit
|
||||||
|
# build) and not the i386-specific inline assembly.
|
||||||
|
#
|
||||||
|
# Note that we require gcc, because clang Asan builds fail to link for
|
||||||
|
# this target (cannot find libclang_rt.lsan-i386.a - this is a known clang issue).
|
||||||
|
msg "build: i386, make, gcc, no asm (ASan build)" # ~ 30s
|
||||||
|
scripts/config.py full
|
||||||
|
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||||
|
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||||
|
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||||
|
|
||||||
|
msg "test: i386, make, gcc, no asm (ASan build)"
|
||||||
|
make test
|
||||||
|
}
|
||||||
|
|
||||||
|
support_test_m32_no_asm () {
|
||||||
|
case $(uname -m) in
|
||||||
|
amd64|x86_64) true;;
|
||||||
|
*) false;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
component_test_m32_o2 () {
|
||||||
|
# Build with optimization, to use the i386 specific inline assembly
|
||||||
|
# and go faster for tests.
|
||||||
|
msg "build: i386, make, gcc -O2 (ASan build)" # ~ 30s
|
||||||
|
scripts/config.py full
|
||||||
|
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||||
|
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||||
|
|
||||||
|
msg "test: i386, make, gcc -O2 (ASan build)"
|
||||||
|
make test
|
||||||
|
|
||||||
|
msg "test ssl-opt.sh, i386, make, gcc-O2"
|
||||||
|
tests/ssl-opt.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
support_test_m32_o2 () {
|
||||||
|
support_test_m32_no_asm "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
component_test_m32_everest () {
|
||||||
|
msg "build: i386, Everest ECDH context (ASan build)" # ~ 6 min
|
||||||
|
scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
|
||||||
|
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
||||||
|
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
||||||
|
|
||||||
|
msg "test: i386, Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
|
||||||
|
make test
|
||||||
|
|
||||||
|
msg "test: i386, Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
|
||||||
|
tests/ssl-opt.sh -f ECDH
|
||||||
|
|
||||||
|
msg "test: i386, Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 min
|
||||||
|
# Exclude some symmetric ciphers that are redundant here to gain time.
|
||||||
|
tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA'
|
||||||
|
}
|
||||||
|
|
||||||
|
support_test_m32_everest () {
|
||||||
|
support_test_m32_no_asm "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
component_test_mx32 () {
|
||||||
|
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
||||||
|
scripts/config.py full
|
||||||
|
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
||||||
|
|
||||||
|
msg "test: 64-bit ILP32, make, gcc"
|
||||||
|
make test
|
||||||
|
}
|
||||||
|
|
||||||
|
support_test_mx32 () {
|
||||||
|
case $(uname -m) in
|
||||||
|
amd64|x86_64) true;;
|
||||||
|
*) false;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
component_build_zeroize_checks () {
|
||||||
|
msg "build: check for obviously wrong calls to mbedtls_platform_zeroize()"
|
||||||
|
|
||||||
|
scripts/config.py full
|
||||||
|
|
||||||
|
# Only compile - we're looking for sizeof-pointer-memaccess warnings
|
||||||
|
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -260,103 +260,6 @@ component_test_tsan () {
|
|||||||
make test
|
make test
|
||||||
}
|
}
|
||||||
|
|
||||||
component_test_malloc_0_null () {
|
|
||||||
msg "build: malloc(0) returns NULL (ASan+UBSan build)"
|
|
||||||
scripts/config.py full
|
|
||||||
make CC=$ASAN_CC CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"$PWD/tests/configs/user-config-malloc-0-null.h\"' $ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
|
|
||||||
|
|
||||||
msg "test: malloc(0) returns NULL (ASan+UBSan build)"
|
|
||||||
make test
|
|
||||||
|
|
||||||
msg "selftest: malloc(0) returns NULL (ASan+UBSan build)"
|
|
||||||
# Just the calloc selftest. "make test" ran the others as part of the
|
|
||||||
# test suites.
|
|
||||||
programs/test/selftest calloc
|
|
||||||
|
|
||||||
msg "test ssl-opt.sh: malloc(0) returns NULL (ASan+UBSan build)"
|
|
||||||
# Run a subset of the tests. The choice is a balance between coverage
|
|
||||||
# and time (including time indirectly wasted due to flaky tests).
|
|
||||||
# The current choice is to skip tests whose description includes
|
|
||||||
# "proxy", which is an approximation of skipping tests that use the
|
|
||||||
# UDP proxy, which tend to be slower and flakier.
|
|
||||||
tests/ssl-opt.sh -e 'proxy'
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_m32_no_asm () {
|
|
||||||
# Build without assembly, so as to use portable C code (in a 32-bit
|
|
||||||
# build) and not the i386-specific inline assembly.
|
|
||||||
#
|
|
||||||
# Note that we require gcc, because clang Asan builds fail to link for
|
|
||||||
# this target (cannot find libclang_rt.lsan-i386.a - this is a known clang issue).
|
|
||||||
msg "build: i386, make, gcc, no asm (ASan build)" # ~ 30s
|
|
||||||
scripts/config.py full
|
|
||||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
|
||||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
|
||||||
|
|
||||||
msg "test: i386, make, gcc, no asm (ASan build)"
|
|
||||||
make test
|
|
||||||
}
|
|
||||||
support_test_m32_no_asm () {
|
|
||||||
case $(uname -m) in
|
|
||||||
amd64|x86_64) true;;
|
|
||||||
*) false;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_m32_o2 () {
|
|
||||||
# Build with optimization, to use the i386 specific inline assembly
|
|
||||||
# and go faster for tests.
|
|
||||||
msg "build: i386, make, gcc -O2 (ASan build)" # ~ 30s
|
|
||||||
scripts/config.py full
|
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
|
||||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
|
||||||
|
|
||||||
msg "test: i386, make, gcc -O2 (ASan build)"
|
|
||||||
make test
|
|
||||||
|
|
||||||
msg "test ssl-opt.sh, i386, make, gcc-O2"
|
|
||||||
tests/ssl-opt.sh
|
|
||||||
}
|
|
||||||
support_test_m32_o2 () {
|
|
||||||
support_test_m32_no_asm "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_m32_everest () {
|
|
||||||
msg "build: i386, Everest ECDH context (ASan build)" # ~ 6 min
|
|
||||||
scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
|
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C # AESNI for 32-bit is tested in test_aesni_m32
|
|
||||||
make CC=gcc CFLAGS="$ASAN_CFLAGS -m32" LDFLAGS="-m32 $ASAN_CFLAGS"
|
|
||||||
|
|
||||||
msg "test: i386, Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
|
|
||||||
make test
|
|
||||||
|
|
||||||
msg "test: i386, Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
|
|
||||||
tests/ssl-opt.sh -f ECDH
|
|
||||||
|
|
||||||
msg "test: i386, Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 min
|
|
||||||
# Exclude some symmetric ciphers that are redundant here to gain time.
|
|
||||||
tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA'
|
|
||||||
}
|
|
||||||
support_test_m32_everest () {
|
|
||||||
support_test_m32_no_asm "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_mx32 () {
|
|
||||||
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
|
||||||
scripts/config.py full
|
|
||||||
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
|
||||||
|
|
||||||
msg "test: 64-bit ILP32, make, gcc"
|
|
||||||
make test
|
|
||||||
}
|
|
||||||
support_test_mx32 () {
|
|
||||||
case $(uname -m) in
|
|
||||||
amd64|x86_64) true;;
|
|
||||||
*) false;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_memsan () {
|
component_test_memsan () {
|
||||||
msg "build: MSan (clang)" # ~ 1 min 20s
|
msg "build: MSan (clang)" # ~ 1 min 20s
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
|
scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
|
||||||
@@ -422,15 +325,6 @@ component_release_test_valgrind_psa () {
|
|||||||
make memcheck
|
make memcheck
|
||||||
}
|
}
|
||||||
|
|
||||||
component_build_zeroize_checks () {
|
|
||||||
msg "build: check for obviously wrong calls to mbedtls_platform_zeroize()"
|
|
||||||
|
|
||||||
scripts/config.py full
|
|
||||||
|
|
||||||
# Only compile - we're looking for sizeof-pointer-memaccess warnings
|
|
||||||
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
|
||||||
}
|
|
||||||
|
|
||||||
component_test_psasim () {
|
component_test_psasim () {
|
||||||
msg "build server library and application"
|
msg "build server library and application"
|
||||||
scripts/config.py crypto
|
scripts/config.py crypto
|
||||||
|
Reference in New Issue
Block a user