mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-01 10:06:53 +03:00
Merge remote-tracking branch 'myfork-public/development' into merge-crypto-development-20191115
First deal with deleted files. * Files deleted by us: keep them deleted. * Files deleted by them, whether modified by us or not: keep our version. ``` git rm $(git status -s | sed -n 's/^DU //p') git reset -- $(git status -s | sed -n 's/^D //p') git checkout -- $(git status -s | sed -n 's/^ D //p') git add -- $(git status -s | sed -n 's/^UD //p') ``` Individual files with conflicts: * `3rdparty/everest/library/Hacl_Curve25519_joined.c`: spurious conflict because git mistakenly identified this file as a rename. Keep our version. * `README.md`: conflict due to their change in a paragraph that doesn't exist in our version. Keep our version of this paragraph. * `docs/architecture/Makefile`: near-identical additions. Adapt the definition of `all_markdown` and include the clean target. * `doxygen/input/docs_mainpage.h`: conflict in the version number. Keep our version number. * `include/mbedtls/config.h`: two delete/modify conflicts. Keep the removed chunks out. * `library/CMakeLists.txt`: discard all their changes as they are not relevant. * `library/Makefile`: * Discard the added chunk about the crypto submodule starting with `INCLUDING_FROM_MBEDTLS:=1`. * delete/modify: keep the removed chunk out. * library build: This is almost delete/modify. Their changes are mostly not applicable. Do keep the `libmbedcrypto.$(DLEXT): | libmbedcrypto.a` order dependency. * `.c.o`: `-o` was added on both sides but in a different place. Change to their place. * `library/error.c`: to be regenerated. * `library/version_features.c`: to be regenerated. * `programs/Makefile`: Most of the changes are not relevant. The one relevant change is in the `clean` target for Windows; adapt it by removing `/S` from our version. * `programs/test/query_config.c`: to be regenerated. * `scripts/config.py`: added in parallel on both sides. Keep our version. * `scripts/footprint.sh`: parallel changes. Keep our version. * `scripts/generate_visualc_files.pl`: one delete/modify conflict. Keep the removed chunks out. * `tests/Makefile`: discard all of their changes. * `tests/scripts/all.sh`: * `pre_initialize_variables` add `append_outcome`: add it. * `pre_initialize_variables` add `ASAN_CFLAGS`: already there, keep our version. * `pre_parse_command_line` add `--no-append-outcome`: add it. * `pre_parse_command_line` add `--outcome-file`: add it. * `pre_print_configuration`: add `MBEDTLS_TEST_OUTCOME_FILE`. * Several changes in SSL-specific components: keep our version without them. * Several changes where `config.pl` was changed to `config.py` and there was an adjacent difference: keep our version. * Changes regarding the inclusion of `MBEDTLS_MEMORY_xxx`: ignore them here, they will be normalized in a subsequent commit. * `component_test_full_cmake_gcc_asan`: add it without the TLS tests. * `component_test_no_use_psa_crypto_full_cmake_asan`: keep the fixed `msg`, discard other changes. * `component_test_memory_buffer_allocator_backtrace`, `component_test_memory_buffer_allocator`: add them without the TLS tests. * `component_test_m32_everest`: added in parallel on both sides. Keep our version. * `tests/scripts/check-names.sh`, `tests/scripts/list-enum-consts.pl`, `tests/scripts/list-identifiers.sh`, ``tests/scripts/list-macros.sh`: discard all of their changes. * `tests/scripts/test-ref-configs.pl`: the change in the conflict is not relevant, so keep our version there. * `visualc/VS2010/*.vcxproj`: to be regenerated. Regenerate files: ``` scripts/generate_visualc_files.pl git add visualc/VS2010/*.vcxproj scripts/generate_errors.pl git add library/error.c scripts/generate_features.pl git add library/version_features.c scripts/generate_query_config.pl git add programs/test/query_config.c ``` Rejected changes in non-conflicting files: * `CMakeLists.txt`: discard their addition which has already been side-ported. * `doxygen/mbedtls.doxyfile`: keep the version number change. Discard the changes related to `../crypto` paths. Keep the following changes after examination: * `.travis.yml`: all of their changes are relevant. * `include/mbedtls/error.h`: do keep their changes. Even though Crypto doesn't use TLS errors, it must not encroach on TLS's allocated numbers. * `tests/scripts/check-test-cases.py`: keep the code dealing with `ssl-opt.sh`. It works correctly when the file is not present.
This commit is contained in:
@ -112,9 +112,15 @@ pre_initialize_variables () {
|
||||
CONFIG_H='include/mbedtls/config.h'
|
||||
CONFIG_BAK="$CONFIG_H.bak"
|
||||
|
||||
append_outcome=0
|
||||
FORCE=0
|
||||
KEEP_GOING=0
|
||||
|
||||
: ${MBEDTLS_TEST_OUTCOME_FILE=}
|
||||
: ${MBEDTLS_TEST_PLATFORM="$(uname -s | tr -c \\n0-9A-Za-z _)-$(uname -m | tr -c \\n0-9A-Za-z _)"}
|
||||
export MBEDTLS_TEST_OUTCOME_FILE
|
||||
export MBEDTLS_TEST_PLATFORM
|
||||
|
||||
# Default commands, can be overridden by the environment
|
||||
: ${OUT_OF_SOURCE_DIR:=./mbedtls_out_of_source_build}
|
||||
: ${ARMC5_BIN_DIR:=/usr/bin}
|
||||
@ -183,14 +189,18 @@ General options:
|
||||
-f|--force Force the tests to overwrite any modified files.
|
||||
-k|--keep-going Run all tests and report errors at the end.
|
||||
-m|--memory Additional optional memory tests.
|
||||
--append-outcome Append to the outcome file (if used).
|
||||
--armcc Run ARM Compiler builds (on by default).
|
||||
--except Exclude the COMPONENTs listed on the command line,
|
||||
instead of running only those.
|
||||
--no-append-outcome Write a new outcome file and analyze it (default).
|
||||
--no-armcc Skip ARM Compiler builds.
|
||||
--no-force Refuse to overwrite modified files (default).
|
||||
--no-keep-going Stop at the first error (default).
|
||||
--no-memory No additional memory tests (default).
|
||||
--out-of-source-dir=<path> Directory used for CMake out-of-source build tests.
|
||||
--outcome-file=<path> File where test outcomes are written (not done if
|
||||
empty; default: \$MBEDTLS_TEST_OUTCOME_FILE).
|
||||
--random-seed Use a random seed value for randomized tests (default).
|
||||
-r|--release-test Run this script in release mode. This fixes the seed value to 1.
|
||||
-s|--seed Integer seed value to use for this test run.
|
||||
@ -309,6 +319,7 @@ pre_parse_command_line () {
|
||||
# all.sh will still run and work properly.
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--append-outcome) append_outcome=1;;
|
||||
--armcc) no_armcc=;;
|
||||
--armc5-bin-dir) shift; ARMC5_BIN_DIR="$1";;
|
||||
--armc6-bin-dir) shift; ARMC6_BIN_DIR="$1";;
|
||||
@ -323,6 +334,7 @@ pre_parse_command_line () {
|
||||
--list-all-components) printf '%s\n' $ALL_COMPONENTS; exit;;
|
||||
--list-components) printf '%s\n' $SUPPORTED_COMPONENTS; exit;;
|
||||
--memory|-m) ;;
|
||||
--no-append-outcome) append_outcome=0;;
|
||||
--no-armcc) no_armcc=1;;
|
||||
--no-force) FORCE=0;;
|
||||
--no-keep-going) KEEP_GOING=0;;
|
||||
@ -330,6 +342,7 @@ pre_parse_command_line () {
|
||||
--openssl) shift;;
|
||||
--openssl-legacy) shift;;
|
||||
--openssl-next) shift;;
|
||||
--outcome-file) shift; MBEDTLS_TEST_OUTCOME_FILE="$1";;
|
||||
--out-of-source-dir) shift; OUT_OF_SOURCE_DIR="$1";;
|
||||
--random-seed) ;;
|
||||
--release-test|-r) ;;
|
||||
@ -464,9 +477,19 @@ not() {
|
||||
! "$@"
|
||||
}
|
||||
|
||||
pre_prepare_outcome_file () {
|
||||
case "$MBEDTLS_TEST_OUTCOME_FILE" in
|
||||
[!/]*) MBEDTLS_TEST_OUTCOME_FILE="$PWD/$MBEDTLS_TEST_OUTCOME_FILE";;
|
||||
esac
|
||||
if [ -n "$MBEDTLS_TEST_OUTCOME_FILE" ] && [ "$append_outcome" -eq 0 ]; then
|
||||
rm -f "$MBEDTLS_TEST_OUTCOME_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
pre_print_configuration () {
|
||||
msg "info: $0 configuration"
|
||||
echo "FORCE: $FORCE"
|
||||
echo "MBEDTLS_TEST_OUTCOME_FILE: ${MBEDTLS_TEST_OUTCOME_FILE:-(none)}"
|
||||
echo "ARMC5_BIN_DIR: $ARMC5_BIN_DIR"
|
||||
echo "ARMC6_BIN_DIR: $ARMC6_BIN_DIR"
|
||||
}
|
||||
@ -528,32 +551,37 @@ pre_check_tools () {
|
||||
# Indicative running times are given for reference.
|
||||
|
||||
component_check_recursion () {
|
||||
msg "test: recursion.pl" # < 1s
|
||||
msg "Check: recursion.pl" # < 1s
|
||||
record_status tests/scripts/recursion.pl library/*.c
|
||||
}
|
||||
|
||||
component_check_generated_files () {
|
||||
msg "test: freshness of generated source files" # < 1s
|
||||
msg "Check: freshness of generated source files" # < 1s
|
||||
record_status tests/scripts/check-generated-files.sh
|
||||
}
|
||||
|
||||
component_check_doxy_blocks () {
|
||||
msg "test: doxygen markup outside doxygen blocks" # < 1s
|
||||
msg "Check: doxygen markup outside doxygen blocks" # < 1s
|
||||
record_status tests/scripts/check-doxy-blocks.pl
|
||||
}
|
||||
|
||||
component_check_files () {
|
||||
msg "test: check-files.py" # < 1s
|
||||
msg "Check: file sanity checks (permissions, encodings)" # < 1s
|
||||
record_status tests/scripts/check-files.py
|
||||
}
|
||||
|
||||
component_check_names () {
|
||||
msg "test/build: declared and exported names" # < 3s
|
||||
msg "Check: declared and exported names (builds the library)" # < 3s
|
||||
record_status tests/scripts/check-names.sh -v
|
||||
}
|
||||
|
||||
component_check_test_cases () {
|
||||
msg "Check: test case descriptions" # < 1s
|
||||
record_status tests/scripts/check-test-cases.py
|
||||
}
|
||||
|
||||
component_check_doxygen_warnings () {
|
||||
msg "test: doxygen warnings" # ~ 3s
|
||||
msg "Check: doxygen warnings (builds the documentation)" # ~ 3s
|
||||
record_status tests/scripts/doxygen.sh
|
||||
}
|
||||
|
||||
@ -565,12 +593,18 @@ component_check_doxygen_warnings () {
|
||||
component_test_default_out_of_box () {
|
||||
msg "build: make, default config (out-of-box)" # ~1min
|
||||
make
|
||||
# Disable fancy stuff
|
||||
SAVE_MBEDTLS_TEST_OUTCOME_FILE="$MBEDTLS_TEST_OUTCOME_FILE"
|
||||
unset MBEDTLS_TEST_OUTCOME_FILE
|
||||
|
||||
msg "test: main suites make, default config (out-of-box)" # ~10s
|
||||
make test
|
||||
|
||||
msg "selftest: make, default config (out-of-box)" # ~10s
|
||||
programs/test/selftest
|
||||
|
||||
export MBEDTLS_TEST_OUTCOME_FILE="$SAVE_MBEDTLS_TEST_OUTCOME_FILE"
|
||||
unset SAVE_MBEDTLS_TEST_OUTCOME_FILE
|
||||
}
|
||||
|
||||
component_test_default_cmake_gcc_asan () {
|
||||
@ -582,6 +616,16 @@ component_test_default_cmake_gcc_asan () {
|
||||
make test
|
||||
}
|
||||
|
||||
component_test_full_cmake_gcc_asan () {
|
||||
msg "build: full config, cmake, gcc, ASan"
|
||||
scripts/config.py full
|
||||
CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
|
||||
make
|
||||
|
||||
msg "test: main suites (inc. selftests) (full config, ASan build)"
|
||||
make test
|
||||
}
|
||||
|
||||
component_test_ref_configs () {
|
||||
msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s
|
||||
CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
|
||||
@ -712,7 +756,7 @@ component_build_default_make_gcc_and_cxx () {
|
||||
|
||||
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 + MBEDTLS_USE_PSA_CRYPTO, ASan"
|
||||
msg "build: cmake, full config minus MBEDTLS_USE_PSA_CRYPTO, ASan"
|
||||
scripts/config.py full
|
||||
scripts/config.py unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
scripts/config.py set MBEDTLS_ECP_RESTARTABLE # not using PSA, so enable restartable ECC
|
||||
@ -840,6 +884,30 @@ component_test_malloc_0_null () {
|
||||
if_build_succeeded programs/test/selftest calloc
|
||||
}
|
||||
|
||||
component_test_memory_buffer_allocator_backtrace () {
|
||||
msg "build: default config with memory buffer allocator and backtrace enabled"
|
||||
scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
||||
scripts/config.py set MBEDTLS_MEMORY_BACKTRACE
|
||||
scripts/config.py set MBEDTLS_MEMORY_DEBUG
|
||||
CC=gcc cmake .
|
||||
make
|
||||
|
||||
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C and MBEDTLS_MEMORY_BACKTRACE"
|
||||
make test
|
||||
}
|
||||
|
||||
component_test_memory_buffer_allocator () {
|
||||
msg "build: default config with memory buffer allocator"
|
||||
scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
||||
CC=gcc cmake .
|
||||
make
|
||||
|
||||
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C"
|
||||
make test
|
||||
}
|
||||
|
||||
component_test_aes_fewer_tables () {
|
||||
msg "build: default config with AES_FEWER_TABLES enabled"
|
||||
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
||||
@ -890,7 +958,7 @@ component_test_se_full () {
|
||||
|
||||
component_test_make_shared () {
|
||||
msg "build/test: make shared" # ~ 40s
|
||||
make SHARED=1 all check -j1
|
||||
make SHARED=1 all check
|
||||
ldd programs/util/strerror | grep libmbedcrypto
|
||||
}
|
||||
|
||||
@ -1087,15 +1155,15 @@ component_build_armcc () {
|
||||
|
||||
component_build_mingw () {
|
||||
msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib programs -j1
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib programs
|
||||
|
||||
# note Make tests only builds the tests, but doesn't run them
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror' WINDOWS_BUILD=1 tests -j1
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror' WINDOWS_BUILD=1 tests
|
||||
make WINDOWS_BUILD=1 clean
|
||||
|
||||
msg "build: Windows cross build - mingw64, make (DLL)" # ~ 30s
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 lib programs -j1
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 tests -j1
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 lib programs
|
||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 tests
|
||||
make WINDOWS_BUILD=1 clean
|
||||
}
|
||||
support_build_mingw() {
|
||||
@ -1219,6 +1287,7 @@ run_component () {
|
||||
# The cleanup function will restore it.
|
||||
cp -p "$CONFIG_H" "$CONFIG_BAK"
|
||||
current_component="$1"
|
||||
export MBEDTLS_TEST_CONFIGURATION="$current_component"
|
||||
"$@"
|
||||
cleanup
|
||||
}
|
||||
@ -1239,6 +1308,7 @@ else
|
||||
"$@"
|
||||
}
|
||||
fi
|
||||
pre_prepare_outcome_file
|
||||
pre_print_configuration
|
||||
pre_check_tools
|
||||
cleanup
|
||||
|
Reference in New Issue
Block a user