• Home
  • Raw
  • Download

Lines Matching +full:armv5te +full:- +full:unknown +full:- +full:linux +full:- +full:gnueabi

6 # SPDX-License-Identifier: Apache-2.0
12 # http://www.apache.org/licenses/LICENSE-2.0
27 # -------
32 # ---------------
44 # * Basic Unix tools (Windows users note: a Unix-style find must be before
51 # * arm-gcc and mingw-gcc
52 # * ArmCC 5 and ArmCC 6, unless invoked with --no-armcc
62 # The behavior on an error depends on whether --keep-going (alias -k)
64 # * Without --keep-going: the script stops on the first error without
67 # * With --keep-going: the script runs all requested components and
72 # script -c tests/scripts/all.sh
77 # ---------------------
97 # fails if any command in it returns a non-zero status.
101 # cleaned-up state, and don't need to perform the cleanup themselves.
107 # This cleans up after an in-tree use of CMake.
119 # Abort on errors (even on the left-hand side of a pipe).
121 set -e -o pipefail -u
124 shopt -s extglob
127 if [ -d library -a -d include -a -d tests ]; then :; else
144 # Files clobbered by in-tree cmake
153 # Seed value used with the --release-test option.
155 # See also RELEASE_SEED in basic-build-test.sh. Debugging is easier if
158 # basic-build-test.sh as well.
162 … : ${MBEDTLS_TEST_PLATFORM="$(uname -s | tr -c \\n0-9A-Za-z _)-$(uname -m | tr -c \\n0-9A-Za-z _)"}
170 : ${GNUTLS_CLI:="gnutls-cli"}
171 : ${GNUTLS_SERV:="gnutls-serv"}
177 : ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-}
178 : ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-}
180 # if MAKEFLAGS is not set add the -j option to speed up invocations of make
181 if [ -z "${MAKEFLAGS+set}" ]; then
182 export MAKEFLAGS="-j$(all_sh_nproc)"
189 # default to -O2, use -Ox _after_ this if you want another level
190 ASAN_CFLAGS='-O2 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all'
196 ALL_COMPONENTS=$(sed -n 's/^ *component_\([0-9A-Z_a-z]*\) *().*/\1/p' <"$0")
214 set -f
234 $0 --no-armcc --except test_memsan
238 -h|--help Print this help and exit.
239 --list-all-components List all available test components and exit.
240 --list-components List components supported on this platform and exit.
243 -q|--quiet Only output component names, and errors if any.
244 -f|--force Force the tests to overwrite any modified files.
245 -k|--keep-going Run all tests and report errors at the end.
246 -m|--memory Additional optional memory tests.
247 --append-outcome Append to the outcome file (if used).
248 --arm-none-eabi-gcc-prefix=<string>
249 Prefix for a cross-compiler for arm-none-eabi
251 --arm-linux-gnueabi-gcc-prefix=<string>
252 Prefix for a cross-compiler for arm-linux-gnueabi
254 --armcc Run ARM Compiler builds (on by default).
255 --restore First clean up the build tree, restoring backed up
258 --error-test Error test mode: run a failing function in addition
260 --except Exclude the COMPONENTs listed on the command line,
262 --no-append-outcome Write a new outcome file and analyze it (default).
263 --no-armcc Skip ARM Compiler builds.
264 --no-force Refuse to overwrite modified files (default).
265 --no-keep-going Stop at the first error (default).
266 --no-memory No additional memory tests (default).
267 --no-quiet Print full output from components.
268 --out-of-source-dir=<path> Directory used for CMake out-of-source build tests.
269 --outcome-file=<path> File where test outcomes are written (not done if
271 --random-seed Use a random seed value for randomized tests (default).
272-r|--release-test Run this script in release mode. This fixes the seed value to ${RELEASE_SEED…
273 -s|--seed Integer seed value to use for this test run.
276 --armc5-bin-dir=<ARMC5_bin_dir_path> ARM Compiler 5 bin directory.
277 --armc6-bin-dir=<ARMC6_bin_dir_path> ARM Compiler 6 bin directory.
278 --gnutls-cli=<GnuTLS_cli_path> GnuTLS client executable to use for most tests.
279 --gnutls-serv=<GnuTLS_serv_path> GnuTLS server executable to use for most tests.
280 --gnutls-legacy-cli=<GnuTLS_cli_path> GnuTLS client executable to use for legacy tests.
281 --gnutls-legacy-serv=<GnuTLS_serv_path> GnuTLS server executable to use for legacy tests.
282 --openssl=<OpenSSL_path> OpenSSL executable to use for most tests.
283 --openssl-legacy=<OpenSSL_path> OpenSSL executable to use for legacy tests..
284--openssl-next=<OpenSSL_path> OpenSSL executable to use for recent things like ARIA
296 find . -name .git -prune -o \
297 -iname CMakeFiles -exec rm -rf {} \+ -o \
298 \( -iname cmake_install.cmake -o \
299 -iname CTestTestfile.cmake -o \
300 -iname CMakeCache.txt -o \
301 -path './cmake/*.cmake' \) -exec rm -f {} \+
302 # Recover files overwritten by in-tree CMake builds
303 rm -f include/Makefile include/mbedtls/Makefile programs/!(fuzz)/Makefile
306 rm -rf programs/test/cmake_subproject/build
307 rm -f programs/test/cmake_subproject/Makefile
308 rm -f programs/test/cmake_subproject/cmake_subproject
311 rm -rf programs/test/cmake_package/build
312 rm -f programs/test/cmake_package/Makefile
313 rm -f programs/test/cmake_package/cmake_package
316 rm -rf programs/test/cmake_package_install/build
317 rm -f programs/test/cmake_package_install/Makefile
318 rm -f programs/test/cmake_package_install/cmake_package_install
322 if [[ -e "$x$backup_suffix" ]]; then
323 cp -p "$x$backup_suffix" "$x"
329 # in non-keep-going mode).
334 rm -f "$x$backup_suffix"
346 trap - $1
347 kill -$1 $$
359 nproc || # Linux
360 sysctl -n hw.ncpuonline || # NetBSD, OpenBSD
361 sysctl -n hw.ncpu || # FreeBSD
368 if [ -n "${current_component:-}" ]; then
374 if [ $QUIET -eq 1 ]; then
391 WARNING_CFLAGS='-Werror -xc -std=c99' make lib
394 "$ARMC6_FROMELF" -z library/*.o
424 while [ $# -gt 0 ]; do
426 --append-outcome) append_outcome=1;;
427 --arm-none-eabi-gcc-prefix) shift; ARM_NONE_EABI_GCC_PREFIX="$1";;
428 --arm-linux-gnueabi-gcc-prefix) shift; ARM_LINUX_GNUEABI_GCC_PREFIX="$1";;
429 --armcc) no_armcc=;;
430 --armc5-bin-dir) shift; ARMC5_BIN_DIR="$1";;
431 --armc6-bin-dir) shift; ARMC6_BIN_DIR="$1";;
432 --error-test) error_test=$((error_test + 1));;
433 --except) all_except=1;;
434 --force|-f) FORCE=1;;
435 --gnutls-cli) shift; GNUTLS_CLI="$1";;
436 --gnutls-legacy-cli) shift; GNUTLS_LEGACY_CLI="$1";;
437 --gnutls-legacy-serv) shift; GNUTLS_LEGACY_SERV="$1";;
438 --gnutls-serv) shift; GNUTLS_SERV="$1";;
439 --help|-h) usage; exit;;
440 --keep-going|-k) KEEP_GOING=1;;
441 --list-all-components) printf '%s\n' $ALL_COMPONENTS; exit;;
442 --list-components) printf '%s\n' $SUPPORTED_COMPONENTS; exit;;
443 --memory|-m) MEMORY=1;;
444 --no-append-outcome) append_outcome=0;;
445 --no-armcc) no_armcc=1;;
446 --no-force) FORCE=0;;
447 --no-keep-going) KEEP_GOING=0;;
448 --no-memory) MEMORY=0;;
449 --no-quiet) QUIET=0;;
450 --openssl) shift; OPENSSL="$1";;
451 --openssl-legacy) shift; OPENSSL_LEGACY="$1";;
452 --openssl-next) shift; OPENSSL_NEXT="$1";;
453 --outcome-file) shift; MBEDTLS_TEST_OUTCOME_FILE="$1";;
454 --out-of-source-dir) shift; OUT_OF_SOURCE_DIR="$1";;
455 --quiet|-q) QUIET=1;;
456 --random-seed) unset SEED;;
457 --release-test|-r) SEED=$RELEASE_SEED;;
458 --restore) restore_first=1;;
459 --seed|-s) shift; SEED="$1";;
460 -*)
461 echo >&2 "Unknown option: $1"
462 echo >&2 "Run $0 --help for usage."
471 if [ -z "$COMMAND_LINE_COMPONENTS" ] && [ $restore_first -eq 0 ]; then
475 # --no-armcc is a legacy option. The modern way is --except '*_armcc*'.
477 if [ -n "$no_armcc" ] && [ $all_except -eq 1 ]; then
482 if [ $all_except -eq 0 ]; then
486 set -f
502 if [ $unsupported -ne 0 ]; then
510 if is_component_included "$component"; [ $? -eq $all_except ]; then
520 if [ $FORCE -eq 1 ]; then
521 rm -rf "$OUT_OF_SOURCE_DIR"
522 git checkout-index -f -q $CONFIG_H
526 if [ -d "$OUT_OF_SOURCE_DIR" ]; then
527 echo "Warning - there is an existing directory at '$OUT_OF_SOURCE_DIR'" >&2
529 echo "the script as: $0 --force --out-of-source-dir $OUT_OF_SOURCE_DIR"
533 if ! git diff --quiet include/mbedtls/mbedtls_config.h; then
534 … err_msg "Warning - the configuration file 'include/mbedtls/mbedtls_config.h' has been edited. "
536 echo "script as: $0 --force"
548 case "$(head -n1 Makefile)" in
550 …git update-index --no-skip-worktree Makefile library/Makefile programs/Makefile tests/Makefile pro…
551 … git checkout -- Makefile library/Makefile programs/Makefile tests/Makefile programs/fuzz/Makefile
558 cp -p "$x" "$x$backup_suffix"
574 if [ -t 1 ]; then
575 case "${TERM:-}" in
576 *color*|cygwin|linux|rxvt*|screen|[Eex]term*)
584 failure_summary_file=$PWD/all-sh-failures-$$.log
600 *make*[\ /]tests*) false;; # make tests, make CFLAGS=-I../tests, ...
617 failed_command=${report_failed_command-$BASH_COMMAND}
619 if [[ $last_failure_status -eq $previous_failure_status &&
621 ${#FUNCNAME[@]} == $((previous_failure_funcall_depth - 1)) ]]
634 text="$current_section: $failed_command -> $last_failure_status"
647 if [ $failure_count -gt 0 ]; then
653 elif [ -z "${1-}" ]; then
656 if [ -n "${1-}" ]; then
659 rm -f "$failure_summary_file"
660 if [ $failure_count -gt 0 ]; then
689 if [ -n "$MBEDTLS_TEST_OUTCOME_FILE" ] && [ "$append_outcome" -eq 0 ]; then
690 rm -f "$MBEDTLS_TEST_OUTCOME_FILE"
695 if [ $QUIET -eq 1 ]; then
702 echo "MBEDTLS_TEST_OUTCOME_FILE: ${MBEDTLS_TEST_OUTCOME_FILE:-(none)}"
703 echo "SEED: ${SEED-"UNSET"}"
727 # and ssl-opt.sh, we just export the variables they require.
731 # Avoid passing --seed flag in every call to ssl-opt.sh
732 if [ -n "${SEED-}" ]; then
754 *_mingw[_\ ]*) check_tools "i686-w64-mingw32-gcc";;
774 if [ $QUIET -eq 1 ]; then
791 if [ $QUIET -eq 1 ]; then
821 msg "Check: check-generated-files, files generated with make" # 2s
823 tests/scripts/check-generated-files.sh
825 msg "Check: check-generated-files -u, files present" # 2s
826 tests/scripts/check-generated-files.sh -u
828 tests/scripts/check-generated-files.sh
830 msg "Check: check-generated-files -u, files absent" # 2s
832 tests/scripts/check-generated-files.sh -u
834 tests/scripts/check-generated-files.sh
842 tests/scripts/check-doxy-blocks.pl
852 rm -f ChangeLog.new
853 scripts/assemble_changelog.py -o ChangeLog.new
854 if [ -e ChangeLog.new ]; then
856 # non-empty.
857 diff -u ChangeLog ChangeLog.new || true
864 tests/scripts/check_names.py -v
869 if [ $QUIET -eq 1 ]; then
870 opt='--quiet'
874 tests/scripts/check_test_cases.py -q $opt
890 msg "build: make, default config (out-of-box)" # ~1min
895 msg "test: main suites make, default config (out-of-box)" # ~10s
898 msg "selftest: make, default config (out-of-box)" # ~10s
904 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
913 msg "test: ssl-opt.sh (ASan build)" # ~ 1 min
914 tests/ssl-opt.sh
919 msg "test: context-info.sh (ASan build)" # ~ 15 sec
920 tests/context-info.sh
926 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
935 msg "test: ssl-opt.sh (full config, ASan build)"
936 tests/ssl-opt.sh
941 msg "test: context-info.sh (full config, ASan build)" # ~ 15 sec
942 tests/context-info.sh
945 docs/architecture/psa-migration/syms.sh full
948 # "full-tls-external" once Issue6839 is completed
949 not grep mbedtls_ecp_curve full-tls-external
950 not grep mbedtls_ecp full-x509-external
952 rm full-tls-external \
953 full-tls-modules \
954 full-x509-external \
955 full-x509-modules
962 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
965 msg "test: full config - USE_PSA_CRYPTO + PSA_CRYPTO_KEY_ID_ENCODES_OWNER, cmake, gcc, ASan"
974 grep -x -F "$(sed -n 's/^ *# *define *\([A-Z_a-z][0-9A-Z_a-z]*\)..*/\1/p' "$1")"
986 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/spe' lib
988 # Check that if a symbol is renamed by crypto_spe.h, the non-renamed
995 msg "build: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make"
1003 msg "test: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make"
1017 msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s
1018 # test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
1019 # want to re-generate generated files that depend on it, quite correctly.
1022 # cmake can't know this, but re-generation is actually not necessary as
1024 # whether they're on or off. So, disable cmake's (over-sensitive here)
1027 CC=gcc cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
1028 tests/scripts/test-ref-configs.pl
1034 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1037 msg "test: !MBEDTLS_SSL_RENEGOTIATION - main suites (inc. selftests) (ASan build)" # ~ 50s
1040 msg "test: !MBEDTLS_SSL_RENEGOTIATION - ssl-opt.sh (ASan build)" # ~ 6 min
1041 tests/ssl-opt.sh
1050 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1053 …msg "test: !MBEDTLS_PEM_PARSE_C !MBEDTLS_FS_IO - main suites (inc. selftests) (ASan build)" # ~ 50s
1056 msg "test: !MBEDTLS_PEM_PARSE_C !MBEDTLS_FS_IO - ssl-opt.sh (ASan build)" # ~ 6 min
1057 tests/ssl-opt.sh
1063 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1066 msg "test: RSA_NO_CRT - main suites (inc. selftests) (ASan build)" # ~ 50s
1069 msg "test: RSA_NO_CRT - RSA-related part of ssl-opt.sh (ASan build)" # ~ 5s
1070 tests/ssl-opt.sh -f RSA
1072 msg "test: RSA_NO_CRT - RSA-related part of compat.sh (ASan build)" # ~ 3 min
1073 tests/compat.sh -t RSA
1075 msg "test: RSA_NO_CRT - RSA-related part of context-info.sh (ASan build)" # ~ 15 sec
1076 tests/context-info.sh
1086 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1089 msg "test: Full minus CTR_DRBG, classic crypto - main suites"
1095 msg "test: Full minus CTR_DRBG, classic crypto - ssl-opt.sh (subset)"
1096 tests/ssl-opt.sh -f 'Default\|SSL async private.*delay=\|tickets enabled on server'
1098 msg "test: Full minus CTR_DRBG, classic crypto - compat.sh (subset)"
1099 tests/compat.sh -m tls12 -t 'ECDSA PSK' -V NO -p OpenSSL
1108 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1111 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - main suites"
1117 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - ssl-opt.sh (subset)"
1118 tests/ssl-opt.sh -f 'Default\|SSL async private.*delay=\|tickets enabled on server'
1120 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - compat.sh (subset)"
1121 tests/compat.sh -m tls12 -t 'ECDSA PSK' -V NO -p OpenSSL
1132 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1135 msg "test: Full minus HMAC_DRBG, classic crypto - main suites"
1141 # Test SSL with non-deterministic ECDSA. Only test features that
1143 msg "test: Full minus HMAC_DRBG, classic crypto - ssl-opt.sh (subset)"
1144 tests/ssl-opt.sh -f 'Default\|SSL async private: sign'
1148 msg "test: Full minus HMAC_DRBG, classic crypto - compat.sh (ECDSA)"
1149 tests/compat.sh -m tls12 -t 'ECDSA'
1159 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1162 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - main suites"
1168 # Test SSL with non-deterministic ECDSA. Only test features that
1170 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - ssl-opt.sh (subset)"
1171 tests/ssl-opt.sh -f 'Default\|SSL async private: sign'
1175 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - compat.sh (ECDSA)"
1176 tests/compat.sh -m tls12 -t 'ECDSA'
1193 # make them use the PSA RNG with -DMBEDTLS_TEST_USE_PSA_CRYPTO_RNG.
1194 make CFLAGS="$ASAN_CFLAGS -O2 -DMBEDTLS_TEST_USE_PSA_CRYPTO_RNG" LDFLAGS="$ASAN_CFLAGS"
1196 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, classic crypto - main suites"
1199 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, classic crypto - ssl-opt.sh (subset)"
1200 tests/ssl-opt.sh -f 'Default'
1213 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1215 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - main suites"
1218 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - ssl-opt.sh (subset)"
1219 tests/ssl-opt.sh -f 'Default\|opaque'
1233 # Note: MD-light is auto-enabled in build_info.h by modules that need it,
1359 …# Disable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, A…
1361 # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1363 …# Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_C…
1374 # Not running ssl-opt.sh because most tests require a non-NULL ciphersuite.
1385 …# Disable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, A…
1387 # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1389 …# Enable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_C…
1400 # Not running ssl-opt.sh because most tests require a non-NULL ciphersuite.
1404 msg "build: default with only CBC-legacy cipher"
1410 …# Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, AR…
1412 # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1414 …# Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_…
1422 msg "test: default with only CBC-legacy cipher"
1425 msg "test: default with only CBC-legacy cipher - ssl-opt.sh (subset)"
1426 tests/ssl-opt.sh -f "TLS 1.2"
1430 msg "build: default with only CBC-legacy cipher use psa"
1437 …# Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, AR…
1439 # Disable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1441 …# Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_…
1449 msg "test: default with only CBC-legacy cipher use psa"
1452 msg "test: default with only CBC-legacy cipher use psa - ssl-opt.sh (subset)"
1453 tests/ssl-opt.sh -f "TLS 1.2"
1457 msg "build: default with only CBC-legacy and CBC-EtM ciphers"
1463 …# Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, AR…
1465 # Enable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1467 …# Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_…
1475 msg "test: default with only CBC-legacy and CBC-EtM ciphers"
1478 msg "test: default with only CBC-legacy and CBC-EtM ciphers - ssl-opt.sh (subset)"
1479 tests/ssl-opt.sh -f "TLS 1.2"
1483 msg "build: default with only CBC-legacy and CBC-EtM ciphers use psa"
1490 …# Enable CBC-legacy (controlled by MBEDTLS_CIPHER_MODE_CBC plus at least one block cipher (AES, AR…
1492 # Enable CBC-EtM (controlled by the same as CBC-legacy plus MBEDTLS_SSL_ENCRYPT_THEN_MAC)
1494 …# Disable stream (currently that's just the NULL pseudo-cipher (controlled by MBEDTLS_CIPHER_NULL_…
1502 msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa"
1505 msg "test: default with only CBC-legacy and CBC-EtM ciphers use psa - ssl-opt.sh (subset)"
1506 tests/ssl-opt.sh -f "TLS 1.2"
1509 # We're not aware of any other (open source) implementation of EC J-PAKE in TLS
1514 msg "build: TLS1.2 server+client w/ EC-JPAKE w/o USE_PSA"
1516 make -C programs ssl/ssl_server2 ssl/ssl_client2
1520 msg "build: TLS1.2 server+client w/ EC-JPAKE w/ USE_PSA"
1523 make -C programs ssl/ssl_server2 ssl/ssl_client2
1524 make -C programs test/udp_proxy test/query_compile_time_config
1526 msg "test: server w/o USE_PSA - client w/ USE_PSA, text password"
1527 P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: working, TLS"
1528 msg "test: server w/o USE_PSA - client w/ USE_PSA, opaque password"
1529 P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: opaque password client only, working, TLS"
1530 msg "test: client w/o USE_PSA - server w/ USE_PSA, text password"
1531 P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: working, TLS"
1532 msg "test: client w/o USE_PSA - server w/ USE_PSA, opaque password"
1533 P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: opaque password server only, working, TLS"
1544 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1550 tests/ssl-opt.sh -f 'Default\|opaque'
1556 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Asan .
1559 msg "test: Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
1562 msg "test: Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
1563 tests/ssl-opt.sh -f ECDH
1565 msg "test: Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 min
1567 tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA'
1578 for c in $(sed -n 's/#define \(MBEDTLS_ECP_DP_[0-9A-Z_a-z]*_ENABLED\).*/\1/p' <"$CONFIG_H"); do
1583 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1593 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1596 msg "test: small SSL_OUT_CONTENT_LEN - ssl-opt.sh MFL and large packet tests"
1597 tests/ssl-opt.sh -f "Max fragment\|Large packet"
1604 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1607 msg "test: small SSL_IN_CONTENT_LEN - ssl-opt.sh MFL tests"
1608 tests/ssl-opt.sh -f "Max fragment"
1614 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1617 msg "test: small MBEDTLS_SSL_DTLS_MAX_BUFFERING #0 - ssl-opt.sh specific reordering test"
1618 …tests/ssl-opt.sh -f "DTLS reordering: Buffer out-of-order hs msg before reassembling next, free bu…
1624 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1627 msg "test: small MBEDTLS_SSL_DTLS_MAX_BUFFERING #1 - ssl-opt.sh specific reordering test"
1628 …tests/ssl-opt.sh -f "DTLS reordering: Buffer encrypted Finished message, drop for fragmented NewSe…
1636 grep -q '^0:psa_crypto_init:' tests/statuses.log
1637 rm -f tests/statuses.log
1643 CC=clang CXX=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On -D TEST_CPP=1 .
1655 msg "test: ssl-opt.sh default, ECJPAKE, SSL async (full config)" # ~ 1s
1656 tests/ssl-opt.sh -f 'Default\|ECJPAKE\|SSL async private'
1659 …GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '^$' -f 'NULL'
1662 env OPENSSL="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA'
1666 # Skip the test suites that don't have any constant-flow annotations.
1670 git -C tests/suites grep -L TEST_CF_ 'test_suite_*.function' |
1679 # - unset MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN - does the failure persist?
1680 # - or alternatively, change the build type to MemSanDbg, which enables
1688 CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
1698 # - unset MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN - does the failure persist?
1699 # - or alternatively, change the build type to MemSanDbg, which enables
1706 CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
1715 # (heap buffer overflows, use of uninitialized memory, use-after-free,
1719 # - unset MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND - does the failure persist?
1720 # - or alternatively, build with debug info and manually run the offending
1721 # test suite with valgrind --track-origins=yes, then check if the origin
1728 cmake -D CMAKE_BUILD_TYPE:String=Release .
1739 # (heap buffer overflows, use of uninitialized memory, use-after-free,
1743 # - unset MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND - does the failure persist?
1744 # - or alternatively, build with debug info and manually run the offending
1745 # test suite with valgrind --track-origins=yes, then check if the origin
1751 cmake -D CMAKE_BUILD_TYPE:String=Release .
1765 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1774 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1791 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1804 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
1811 …make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=deprecated-declarations -Wno-error=cpp -DM…
1820 ! nm "$@" 2>/dev/null | grep -v ':$' | grep .
1826 make CFLAGS='-O1 -Werror'
1833 make CFLAGS='-O1 -Werror'
1864 make CFLAGS='-O1 -Werror' all test
1871 make CFLAGS="-O1 -Werror -I$PWD/tests/include/baremetal-override/"
1881 make CFLAGS="-O1 -Werror -I$PWD/tests/include/baremetal-override/"
1885 # which makes the no-time.h-in-baremetal check fail. Ubuntu 16.04 has this
1887 ! grep -q -F time.h /usr/include/x86_64-linux-gnu/sys/types.h
1893 tests/scripts/depends.py cipher_id --unset-use-psa
1898 tests/scripts/depends.py cipher_chaining --unset-use-psa
1903 tests/scripts/depends.py cipher_padding --unset-use-psa
1908 tests/scripts/depends.py curves --unset-use-psa
1913 tests/scripts/depends.py hashes --unset-use-psa
1918 tests/scripts/depends.py kex --unset-use-psa
1923 tests/scripts/depends.py pkalgs --unset-use-psa
1970 # Only compile - this is primarily to test for compile issues
1971 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy'
1999 scripts/config.py set-all 'MBEDTLS_([A-Z0-9]*|NIST_KW)_ALT'
2004 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib
2015 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib
2019 # full minus MBEDTLS_USE_PSA_CRYPTO: run the same set of tests as basic-build-test.sh
2030 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2036 # Note: ssl-opt.sh has some test cases that depend on
2039 msg "test: ssl-opt.sh (full minus MBEDTLS_USE_PSA_CRYPTO)"
2040 tests/ssl-opt.sh
2046 …LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -f 'NULL'
2049 env OPENSSL="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA'
2059 # -------------------------------------------
2063 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2064 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2066 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2068 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_224"
2069 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_256"
2070 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_384"
2071 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_512"
2072 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2075 # --------------------------------------
2090 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2091 …CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_T…
2093 # Make sure this was not re-enabled by accident (additive config)
2097 # -------------
2108 # enable support for drivers and configuring PSA-only algorithms
2111 if [ "$DRIVER_ONLY" -eq 1 ]; then
2132 # -------------------------------------------
2136 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2137 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2139 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2140 # SHA-1 and all variants of SHA-2 are needed for ECDSA and X.509 tests
2141 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_1"
2142 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_224"
2143 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_256"
2144 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_384"
2145 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_512"
2146 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2149 # -----------------------------------------------------------
2151 # Use the same config as reference, only without built-in ECDSA
2155 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2156 …CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_T…
2158 # Make sure ECDSA was not re-enabled by accident (additive config)
2162 # -------------
2167 msg "test: ssl-opt.sh"
2168 tests/ssl-opt.sh
2177 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2178 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2187 msg "test: ssl-opt.sh"
2188 tests/ssl-opt.sh
2198 # -------------------------------------------
2202 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2203 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2205 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2206 make -C tests libtestdriver1.a CFLAGS=" $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2209 # --------------------------------------
2226 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2227 …CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_T…
2229 # Make sure this was not re-enabled by accident (additive config)
2233 # -------------
2242 # same config, except for the use of driver or built-in ECDH:
2243 # - component_test_psa_crypto_config_accel_ecdh_use_psa;
2244 # - component_test_psa_crypto_config_reference_ecdh_use_psa.
2250 # enable support for drivers and configuring PSA-only algorithms
2253 if [ "$DRIVER_ONLY" -eq 1 ]; then
2257 # Disable things that depend on it (regardless of driver or built-in)
2286 # -------------------------------------------
2290 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2291 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2293 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2294 make -C tests libtestdriver1.a CFLAGS=" $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2297 # --------------------------------------
2299 # Use the same config as reference, only without built-in ECDH
2303 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2304 …CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_T…
2306 # Make sure this was not re-enabled by accident (additive config)
2310 # -------------
2315 msg "test: ssl-opt.sh"
2316 tests/ssl-opt.sh
2325 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2326 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2335 msg "test: ssl-opt.sh"
2336 tests/ssl-opt.sh
2342 # same config, except for the use of driver or built-in ECJPAKE:
2343 # - component_test_psa_crypto_config_accel_ecjpake_use_psa;
2344 # - component_test_psa_crypto_config_reference_ecjpake_use_psa.
2350 # enable support for drivers and configuring PSA-only algorithms
2353 if [ "$DRIVER_ONLY" -eq 1 ]; then
2371 # -------------------------------------------
2375 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2376 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2378 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2379 make -C tests libtestdriver1.a CFLAGS=" $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2382 # --------------------------------------
2384 # Use the same config as reference, only without built-in JPAKE
2388 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2389 …CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_T…
2391 # Make sure this was not re-enabled by accident (additive config)
2395 # -------------
2400 msg "test: ssl-opt.sh"
2401 tests/ssl-opt.sh
2410 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2411 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2420 msg "test: ssl-opt.sh"
2421 tests/ssl-opt.sh
2431 # --------------------------------------------
2435 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2436 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2438 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2440 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_224"
2441 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_256"
2442 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_384"
2443 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_512"
2444 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2447 # ---------------------------------------
2467 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2468 …$ASAN_CFLAGS -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_L…
2470 # make sure these were not auto-re-enabled by accident
2476 # -------------
2487 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2488 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2495 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
2496 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
2500 # - the test library can compute the RSA signatures even in the case of a
2503 # - the dependency of RSA signature tests on PSA_WANT_ALG_SHA_xyz is
2506 # - when testing a signature key with an algorithm wildcard built from
2511 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
2512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160_C
2516 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_PEM_PARSE_C
2517 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_BASE64_C
2520 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2521 # These hashes are needed for some RSA-PSS signature tests.
2522 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_1"
2523 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_224"
2524 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_256"
2525 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_384"
2526 loc_accel_flags="$loc_accel_flags -DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_ALG_SHA_512"
2527 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2550 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2551 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2565 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2566 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2569 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2570 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2580 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2581 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2597 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2598 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2601 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2602 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2606 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2607 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2618 # enable support for drivers and configuring PSA-only algorithms
2621 if [ "$DRIVER_ONLY" -eq 1 ]; then
2622 # disable the built-in implementation of hashes
2634 # which in turn hard-depends on SHA256_C (or SHA512_C).
2641 if [ "$DRIVER_ONLY" -eq 1 ]; then
2648 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA
2663 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2664 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2667 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2668 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2672 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2673 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2675 # There's a risk of something getting re-enabled via config_psa.h;
2690 # dependency declarations in ssl-opt.sh and in TLS code are correct.
2691 msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA"
2692 tests/ssl-opt.sh
2695 # interop testing (besides, we already got some from ssl-opt.sh).
2697 tests/compat.sh -p mbedTLS -V YES
2702 # script to find regression in test coverage when accelerated hash is used (tests and ssl-opt).
2707 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2708 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2717 msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA"
2718 tests/ssl-opt.sh
2725 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2726 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2736 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2737 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2738 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_CMAC
2748 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2749 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2762 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2763 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2766 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2767 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2779 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2780 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2782 # There's a risk of something getting re-enabled via config_psa.h
2800 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
2801 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
2804 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
2805 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
2810 # Make build-in fallback not available
2818 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
2819 …N_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TE…
2835 make CC=gcc CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
2846 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_GCM
2847 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_CHACHA20_POLY1305
2848 make CC=gcc CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
2871 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_ECDH -I../tests/…
2883 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
2884 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
2886 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAI…
2898 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
2899 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
2901 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_K…
2914 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_HMAC -I../tests/…
2931 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_HKDF -I../tests/…
2937 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_MD5 - other hashes"
2943 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
2944 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
2945 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
2946 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
2947 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
2948 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
2949 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
2953 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/i…
2959 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_RIPEMD160 - other hashes"
2965 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
2966 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
2967 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
2968 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
2969 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
2970 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
2971 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
2975 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../t…
2981 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_1 - other hashes"
2987 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
2988 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
2989 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
2990 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
2991 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
2992 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
2993 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
2997 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests…
3003 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_224 - other hashes"
3009 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
3010 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
3011 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
3012 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
3013 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
3014 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
3016 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_224 -I../tes…
3022 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_256 - other hashes"
3028 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
3029 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
3030 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
3031 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
3032 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
3033 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
3035 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_256 -I../tes…
3041 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_384 - other hashes"
3047 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
3048 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
3049 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
3050 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
3051 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
3052 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
3056 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tes…
3062 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_512 - other hashes"
3068 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
3069 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
3070 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
3071 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
3072 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
3073 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
3074 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
3078 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tes…
3090 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
3091 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
3092 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
3093 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
3095 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYP…
3107 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
3108 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
3109 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
3110 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
3112 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIG…
3124 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_OAEP 1
3125 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
3126 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
3127 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
3129 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_OAEP -I../te…
3141 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
3142 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
3143 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
3144 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
3146 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PSS -I../tes…
3158 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
3159 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
3161 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAI…
3173 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
3174 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
3176 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_K…
3202 # to re-enable platform integration features otherwise disabled in C99 builds
3203 make CC=gcc CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic -Os -D_DEFAULT_SOURCE' lib programs
3204 make CC=gcc CFLAGS='-Werror -Wall -Wextra -Os' test
3214 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Check .
3222 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1'
3229 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1'
3235 msg "build: full config except net_sockets.c, make, gcc -std=c99 -pedantic" # ~ 30s
3238 scripts/config.py set MBEDTLS_NO_PLATFORM_ENTROPY # uses syscall() on GNU/Linux
3239 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -std=c99 -pedantic' lib
3248 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
3259 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
3265 msg "test: ssl-opt.sh, MBEDTLS_MEMORY_BUFFER_ALLOC_C"
3267 tests/ssl-opt.sh -e '^DTLS proxy'
3274 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3277 msg "test: ssl-opt.sh, MFL-related tests"
3278 tests/ssl-opt.sh -f "Max fragment length"
3284 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3290 msg "test: ssl-opt.sh, !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
3291 tests/ssl-opt.sh
3296 msg "test: context-info.sh, !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
3297 tests/context-info.sh
3305 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3309 tests/ssl-opt.sh -f "Max fragment length\|Large buffer"
3311 msg "test: context-info.sh (disabled MFL extension case)"
3312 tests/context-info.sh
3318 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3324 msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH enabled"
3325 tests/ssl-opt.sh
3335 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3341 msg "test: ssl-opt.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled"
3342 tests/ssl-opt.sh
3355 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
3362 tests/ssl-opt.sh -f "Handshake memory usage"
3375 msg "test ssl-opt.sh: !MBEDTLS_SSL_SOME_MODES_USE_MAC"
3376 tests/ssl-opt.sh -f 'Default\|EtM' -e 'without EtM'
3382 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Check .
3385 msg "test: !MBEDTLS_HAVE_TIME_DATE - main suites"
3394 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3404 …make CC=gcc CFLAGS="'-DMBEDTLS_CONFIG_FILE=\"$PWD/tests/configs/config-wrapper-malloc-0-null.h\"' …
3414 msg "test ssl-opt.sh: malloc(0) returns NULL (ASan+UBSan build)"
3420 tests/ssl-opt.sh -e 'proxy'
3426 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
3435 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
3445 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
3456 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3468 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3481 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3491 make CC=clang CFLAGS="$ASAN_CFLAGS -Os" LDFLAGS="$ASAN_CFLAGS"
3502 loc_cflags="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST_ALL"
3503 …loc_cflags="${loc_cflags} '-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-for-test.h\"'"
3504 loc_cflags="${loc_cflags} -I../tests/include -O2"
3521 cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On .
3532 make CC="$cc" CFLAGS="$opt -std=c99 -pedantic -Wall -Wextra -Werror"
3535 # optimizations use inline assembly whereas runs with -O0
3544 test_build_opt 'full config' clang -O0 -Os -O2
3549 test_build_opt 'full config' gcc -O0 -Os -O2
3554 scripts/config.py -w full_config.h full
3556 make CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"'"
3565 …make CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"' -DMBEDTLS_USER_CONFIG_FILE='\"use…
3568 rm -f user_config.h full_config.h
3576 make CFLAGS="-I '$PWD' -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"'"
3586 …make CFLAGS="-I '$PWD' -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE='\"psa_test_config.h\"' -DMBEDTLS_PSA_CRYP…
3589 rm -f psa_test_config.h psa_user_config.h
3597 …make -C tests include/alt-extra/psa/crypto_platform_alt.h include/alt-extra/psa/crypto_struct_alt.h
3602 …make CFLAGS="-I ../tests/include/alt-extra -DMBEDTLS_PSA_CRYPTO_PLATFORM_FILE='\"psa/crypto_platfo…
3603 …make -C programs -o fuzz CFLAGS="-I ../tests/include/alt-extra -DMBEDTLS_PSA_CRYPTO_PLATFORM_FILE=…
3607 programs/test/query_included_headers | grep -x PSA_CRYPTO_PLATFORM_ALT_H
3608 programs/test/query_included_headers | grep -x PSA_CRYPTO_STRUCT_ALT_H
3609 programs/test/query_included_headers | not grep -x PSA_CRYPTO_PLATFORM_H
3610 programs/test/query_included_headers | not grep -x PSA_CRYPTO_STRUCT_H
3614 # Build without optimization, so as to use portable C code (in a 32-bit
3615 # build) and not the i386-specific inline assembly.
3616 msg "build: i386, make, gcc -O0 (ASan build)" # ~ 30s
3618 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O0" LDFLAGS="-m32 $ASAN_CFLAGS"
3620 msg "test: i386, make, gcc -O0 (ASan build)"
3624 case $(uname -m) in
3633 msg "build: i386, make, gcc -O2 (ASan build)" # ~ 30s
3635 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O2" LDFLAGS="-m32 $ASAN_CFLAGS"
3637 msg "test: i386, make, gcc -O2 (ASan build)"
3640 msg "test ssl-opt.sh, i386, make, gcc-O2"
3641 tests/ssl-opt.sh
3650 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O2" LDFLAGS="-m32 $ASAN_CFLAGS"
3652 msg "test: i386, Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
3655 msg "test: i386, Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
3656 tests/ssl-opt.sh -f ECDH
3658 …msg "test: i386, Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 …
3660 tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA'
3667 msg "build: 64-bit ILP32, make, gcc" # ~ 30s
3669 make CC=gcc CFLAGS='-Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
3671 msg "test: 64-bit ILP32, make, gcc"
3675 case $(uname -m) in
3684 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3687 msg "test: MBEDTLS_MPI_WINDOW_SIZE=1 - main suites (inc. selftests) (ASan build)" # ~ 10s
3692 msg "build: gcc, force 32-bit bignum limbs"
3697 make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
3699 msg "test: gcc, force 32-bit bignum limbs"
3704 msg "build: gcc, force 64-bit bignum limbs"
3709 make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
3711 msg "test: gcc, force 64-bit bignum limbs"
3719 make CFLAGS='-Werror -O1'
3729 make CFLAGS='-Werror -O1'
3743 make CFLAGS='-Werror -Os'
3754 make CFLAGS='-Werror -O2'
3759 msg "test: ssl-opt.sh, full + MBEDTLS_X509_REMOVE_INFO" # ~ 1 min
3760 tests/ssl-opt.sh
3764 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug" # ~ 10s
3766 …I_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -O1' lib
3768 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug"
3773 msg "build: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, baremetal+debug" # ~ 10s
3777 # See https://github.com/Mbed-TLS/mbedtls/pull/2169 and comments.
3779 # https://github.com/Mbed-TLS/mbedtls/pull/3449#issuecomment-675313720
3780 …"${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-ma…
3782 msg "size: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
3790 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=arm5vte, baremetal+debug" # ~ 10s
3794 # in case the gcc-arm-linux-gnueabi toolchain is not available
3795 …NONE_EABI_GCC_PREFIX}ar" CFLAGS='-std=c99 -Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-marc…
3797 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
3802 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus, baremetal_size" # ~ 10s
3804 …r" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -mthumb -mcpu=cortex-
3806 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus -Os, baremetal_size"
3811 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -DMBEDTLS_NO_UDBL_DIVISION, make" # ~ 10s
3814 …_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib
3815 echo "Checking that software 64-bit division is not required"
3823 …GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mth…
3824 echo "Checking that software 64-bit multiplication is not required"
3831 # armc[56] don't support SHA-512 intrinsics
3838 # this feature would prevent us from building with -Werror on
3844 make CC="$ARMC5_CC" AR="$ARMC5_AR" WARNING_CFLAGS='--strict --c99' lib
3847 "$ARMC5_FROMELF" -z library/*.o
3851 # Compile with -O1 since some Arm inline assembly is disabled for -O0.
3853 # ARM Compiler 6 - Target ARMv7-A
3854 armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-a"
3856 # ARM Compiler 6 - Target ARMv7-M
3857 armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-m"
3859 # ARM Compiler 6 - Target ARMv7-M+DSP
3860 armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-m+dsp"
3862 # ARM Compiler 6 - Target ARMv8-A - AArch32
3863 armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv8.2-a"
3865 # ARM Compiler 6 - Target ARMv8-M
3866 armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv8-m.main"
3868 # ARM Compiler 6 - Target ARMv8.2-A - AArch64
3869 armc6_build_test "-O1 --target=aarch64-arm-none-eabi -march=armv8.2-a+crypto"
3880 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3885 msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled"
3886 tests/ssl-opt.sh
3901 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3906 msg "ssl-opt.sh: TLS 1.3 only, only PSK key exchange mode enabled"
3907 tests/ssl-opt.sh
3915 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3920 msg "ssl-opt.sh: TLS 1.3 only, only ephemeral key exchange mode"
3921 tests/ssl-opt.sh
3935 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3940 msg "ssl-opt.sh: TLS 1.3 only, only PSK ephemeral key exchange mode"
3941 tests/ssl-opt.sh
3954 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3959 msg "ssl-opt.sh: TLS 1.3 only, PSK and PSK ephemeral key exchange modes"
3960 tests/ssl-opt.sh
3967 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
3972 msg "ssl-opt.sh: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes"
3973 tests/ssl-opt.sh
3982 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
3986 msg "ssl-opt.sh (TLS 1.3)"
3987 tests/ssl-opt.sh
3996 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
4000 msg "ssl-opt.sh (TLS 1.3 no compatibility mode)"
4001 tests/ssl-opt.sh
4007 make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'"
4012 msg "ssl-opt.sh: (TLS 1.3 only, record size limit extension tests only)"
4014 # record size limit extension. There is no way to prevent gnutls-cli from sending the extension
4016 tests/ssl-opt.sh -f "Record Size Limit"
4020 msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s
4021 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
4024 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror' WINDO…
4027 msg "build: Windows cross build - mingw64, make (DLL)" # ~ 30s
4028 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
4029 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
4033 case $(i686-w64-mingw32-gcc -dumpversion 2>/dev/null) in
4034 [0-5]*|"") false;;
4042 CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
4048 msg "test: ssl-opt.sh (MSan)" # ~ 1 min
4049 tests/ssl-opt.sh
4053 if [ "$MEMORY" -gt 0 ]; then
4062 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release .
4071 if [ "$MEMORY" -gt 0 ]; then
4072 msg "test: ssl-opt.sh --memcheck (default config)"
4073 tests/ssl-opt.sh --memcheck
4076 if [ "$MEMORY" -gt 1 ]; then
4077 msg "test: compat.sh --memcheck (default config)"
4078 tests/compat.sh --memcheck
4081 if [ "$MEMORY" -gt 0 ]; then
4082 msg "test: context-info.sh --memcheck (default config)"
4083 tests/context-info.sh --memcheck
4091 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release .
4104 # Attempt to parse lsb-release to find out distribution and version. If not
4106 if [[ -f /etc/lsb-release ]]; then
4108 while read -r lsb_line; do
4113 done < /etc/lsb-release
4125 [ "$distrib_id" != "Ubuntu" ] || [ "$distrib_ver_major" -gt 16 ]
4129 msg "build: cmake 'out-of-source' build"
4133 cmake -D CMAKE_BUILD_TYPE:String=Check "$MBEDTLS_ROOT_DIR"
4136 msg "test: cmake 'out-of-source' build"
4138 # Check that ssl-opt.sh can find the test programs.
4141 # file is missing (ssl-opt.sh tolerates the absence of some files so
4143 ./tests/ssl-opt.sh -f 'Default' >ssl-opt.out 2>ssl-opt.err
4144 grep PASS ssl-opt.out
4145 cat ssl-opt.err >&2
4146 # If ssl-opt.err is non-empty, record an error and keep going.
4147 [ ! -s ssl-opt.err ]
4148 rm ssl-opt.out ssl-opt.err
4150 rm -rf "$OUT_OF_SOURCE_DIR"
4154 msg "build: cmake 'as-subdirectory' build"
4165 msg "build: cmake 'as-package' build"
4176 msg "build: cmake 'as-installed-package' build"
4197 if [ -z "$(gdb -batch -nw -ex 'set disable-randomization off' 2>&1)" ]; then
4198 gdb_disable_aslr='set disable-randomization off'
4201 for optimization_flag in -O2 -O3 -Ofast -Os; do
4205 …gdb -ex "$gdb_disable_aslr" -x tests/scripts/test_zeroize.gdb -nw -batch -nx 2>&1 | tee test_zeroi…
4207 not grep -i "error" test_zeroize.log
4208 rm -f test_zeroize.log
4215 msg "build: make, default config (out-of-box), libmbedcrypto.a only"
4216 make -C library libmbedcrypto.a
4223 # psa-compliance-tests only supports CMake >= 3.10.0
4224 ver="$(cmake --version)"
4231 [ "$ver_major" -eq 3 ] && [ "$ver_minor" -ge 10 ]
4240 case $(uncrustify --version) in
4248 tests/scripts/check-python-files.sh
4255 # harmless info on stdout so it can be suppress with --quiet.
4259 python3 -m unittest tests/scripts/translate_ciphers.py 2>&1
4279 # Function invoked by --error-test to test error reporting.
4282 if [ $KEEP_GOING -ne 0 ]; then
4288 # Expected error: 'grep non_existent /dev/null -> 1'
4290 # Expected error: '! grep -q . tests/scripts/all.sh -> 1'
4291 not grep -q . "$0"
4292 # Expected error: 'make unknown_target -> 2'
4308 linux*|freebsd*|openbsd*) dd_cmd+=(status=none)
4314 if [ $KEEP_GOING -eq 1 ]; then
4315 # We want to keep running if the subshell fails, so 'set -e' must
4320 if [ $QUIET -eq 1 ]; then
4325 if [ $KEEP_GOING -eq 1 ]; then
4326 # Keep "set -e" off, and run an ERR trap instead to record failures.
4327 set -E
4332 if [ $KEEP_GOING -eq 1 ]; then
4333 trap - ERR
4338 if [ $KEEP_GOING -eq 1 ]; then
4339 set -e
4340 if [ $component_status -ne 0 ]; then
4360 if [ $KEEP_GOING -eq 1 ]; then