diff --git a/README.md b/README.md index 448f37294f..fc1536e23c 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Any of the following methods are available to generate the configuration-indepen * If not cross-compiling, running `make` with any target, or just `make`, will automatically generate required files. * On non-Windows systems, when not cross-compiling, CMake will generate the required files automatically. * Run `make generated_files` to generate all the configuration-independent files. -* On Unix/POSIX systems, run `tests/scripts/check-generated-files.sh -u` to generate all the configuration-independent files. +* On Unix/POSIX systems, run `framework/scripts/make_generated_files.py` to generate all the configuration-independent files. * On Windows, run `scripts\make_generated_files.bat` to generate all the configuration-independent files. ### Make diff --git a/framework b/framework index 28dc4cae3f..b5b3d94f4d 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit 28dc4cae3f71f5425dd42953c6f2f38d49123bee +Subproject commit b5b3d94f4d82047dc3430adabd6cc209cd206bcd diff --git a/scripts/make_generated_files.bat b/scripts/make_generated_files.bat index 418b6681a3..f10b23b705 100644 --- a/scripts/make_generated_files.bat +++ b/scripts/make_generated_files.bat @@ -6,31 +6,10 @@ @rem * Either a C compiler called "cc" must be on the PATH, or @rem the "CC" environment variable must point to a C compiler. -@rem @@@@ library\** @@@@ -python tf-psa-crypto\scripts\generate_driver_wrappers.py || exit /b 1 -perl scripts\generate_errors.pl || exit /b 1 -perl scripts\generate_query_config.pl || exit /b 1 -perl scripts\generate_features.pl || exit /b 1 -python framework\scripts\generate_ssl_debug_helpers.py || exit /b 1 - -@rem @@@@ programs\** @@@@ +@rem @@@@ tf-psa-crypto @@@@ cd tf-psa-crypto -python scripts\generate_psa_constants.py || exit /b 1 -python framework\scripts\generate_config_tests.py || exit /b 1 +python framework\scripts\make_generated_files.py || exit /b 1 cd .. -@rem @@@@ tests\** @@@@ -python framework\scripts\generate_bignum_tests.py --directory tf-psa-crypto\tests\suites || exit /b 1 -python framework\scripts\generate_config_tests.py || exit /b 1 -python framework\scripts\generate_ecp_tests.py --directory tf-psa-crypto\tests\suites || exit /b 1 -python framework\scripts\generate_psa_tests.py --directory tf-psa-crypto\tests\suites || exit /b 1 -python framework\scripts\generate_test_keys.py --output tests\include\test\test_keys.h || exit /b 1 -python tf-psa-crypto\framework\scripts\generate_test_keys.py --output tf-psa-crypto\tests\include\test\test_keys.h || exit /b 1 -python framework\scripts\generate_test_cert_macros.py --output tests\include\test\test_certs.h || exit /b 1 -python framework\scripts\generate_tls_handshake_tests.py || exit /b 1 -python framework\scripts\generate_tls13_compat_tests.py || exit /b 1 - -@rem @@@@ Build @@@@ -@rem Call generate_visualc_files.pl last to be sure everything else has been -@rem generated before. -perl scripts\generate_visualc_files.pl || exit /b 1 +@rem @@@@ mbedtls @@@@ +python framework\scripts\make_generated_files.py || exit /b 1 diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh deleted file mode 100755 index e3c8e08afe..0000000000 --- a/tests/scripts/check-generated-files.sh +++ /dev/null @@ -1,189 +0,0 @@ -#! /usr/bin/env sh - -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later -# -# Purpose -# -# Check if generated files are up-to-date. - -set -eu - -if [ $# -ne 0 ] && [ "$1" = "--help" ]; then - cat <&2 - exit 1 -fi - -UPDATE= -LIST= -while getopts lu OPTLET; do - case $OPTLET in - l) LIST=1;; - u) UPDATE=1;; - esac -done - -# check SCRIPT FILENAME[...] -# check SCRIPT DIRECTORY -# Run SCRIPT and check that it does not modify any of the specified files. -# In the first form, there can be any number of FILENAMEs, which must be -# regular files. -# In the second form, there must be a single DIRECTORY, standing for the -# list of files in the directory. Running SCRIPT must not modify any file -# in the directory and must not add or remove files either. -# If $UPDATE is empty, abort with an error status if a file is modified. -check() -{ - SCRIPT=$1 - shift - - if [ -n "$LIST" ]; then - printf '%s\n' "$@" - return - fi - - directory= - if [ -d "$1" ]; then - directory="$1" - rm -f "$directory"/*.bak - set -- "$1"/* - fi - - for FILE in "$@"; do - if [ -e "$FILE" ]; then - cp -p "$FILE" "$FILE.bak" - else - rm -f "$FILE.bak" - fi - done - - # In the case of the config tests, generate only the files to be checked - # by the caller as they are divided into Mbed TLS and TF-PSA-Crypto - # specific ones. - if [ "${SCRIPT##*/}" = "generate_config_tests.py" ]; then - "$SCRIPT" "$@" - else - "$SCRIPT" - fi - - # Compare the script output to the old files and remove backups - for FILE in "$@"; do - if diff "$FILE" "$FILE.bak" >/dev/null 2>&1; then - # Move the original file back so that $FILE's timestamp doesn't - # change (avoids spurious rebuilds with make). - mv "$FILE.bak" "$FILE" - else - echo "'$FILE' was either modified or deleted by '$SCRIPT'" - if [ -z "$UPDATE" ]; then - exit 1 - else - rm -f "$FILE.bak" - fi - fi - done - - if [ -n "$directory" ]; then - old_list="$*" - set -- "$directory"/* - new_list="$*" - # Check if there are any new files - if [ "$old_list" != "$new_list" ]; then - echo "Files were deleted or created by '$SCRIPT'" - echo "Before: $old_list" - echo "After: $new_list" - if [ -z "$UPDATE" ]; then - exit 1 - fi - fi - fi -} - -# Note: if the format of calls to the "check" function changes, update -# framework/scripts/code_style.py accordingly. For generated C source files (*.h or *.c), -# the format must be "check SCRIPT FILENAME...". For other source files, -# any shell syntax is permitted (including e.g. command substitution). - -# Note: Instructions to generate those files are replicated in: -# - **/Makefile (to (re)build them with make) -# - **/CMakeLists.txt (to (re)build them with cmake) -# - scripts/make_generated_files.bat (to generate them under Windows) - -# These checks are common to Mbed TLS and TF-PSA-Crypto - -# The first case is temporary for the hybrid situation with a tf-psa-crypto -# directory in Mbed TLS that is not just a TF-PSA-Crypto submodule. -if [ -d tf-psa-crypto ]; then - cd tf-psa-crypto - check scripts/generate_psa_constants.py ./programs/psa/psa_constant_names_generated.c - check framework/scripts/generate_bignum_tests.py $(framework/scripts/generate_bignum_tests.py --list) - check framework/scripts/generate_config_tests.py $(framework/scripts/generate_config_tests.py --list) - check framework/scripts/generate_ecp_tests.py $(framework/scripts/generate_ecp_tests.py --list) - check framework/scripts/generate_psa_tests.py $(framework/scripts/generate_psa_tests.py --list) - cd .. - # Generated files that are present in the repository even in the development - # branch. (This is intended to be temporary, until the generator scripts are - # fully reviewed and the build scripts support a generated header file.) - check framework/scripts/generate_psa_wrappers.py tf-psa-crypto/tests/include/test/psa_test_wrappers.h tf-psa-crypto/tests/src/psa_test_wrappers.c - check tf-psa-crypto/scripts/generate_driver_wrappers.py ${crypto_core_dir}/psa_crypto_driver_wrappers.h \ - ${crypto_core_dir}/psa_crypto_driver_wrappers_no_static.c - check framework/scripts/generate_config_tests.py tests/suites/test_suite_config.mbedtls_boolean.data -else - check scripts/generate_psa_constants.py ./programs/psa/psa_constant_names_generated.c - check framework/scripts/generate_bignum_tests.py $(framework/scripts/generate_bignum_tests.py --list) - if in_tf_psa_crypto_repo; then - check framework/scripts/generate_config_tests.py tests/suites/test_suite_config.psa_boolean.data - else - check framework/scripts/generate_config_tests.py tests/suites/test_suite_config.mbedtls_boolean.data - fi - check framework/scripts/generate_ecp_tests.py $(framework/scripts/generate_ecp_tests.py --list) - check framework/scripts/generate_psa_tests.py $(framework/scripts/generate_psa_tests.py --list) - check scripts/generate_driver_wrappers.py ${crypto_core_dir}/psa_crypto_driver_wrappers.h \ - ${crypto_core_dir}/psa_crypto_driver_wrappers_no_static.c - # Generated files that are present in the repository even in the development - # branch. (This is intended to be temporary, until the generator scripts are - # fully reviewed and the build scripts support a generated header file.) - check framework/scripts/generate_psa_wrappers.py tests/include/test/psa_test_wrappers.h tests/src/psa_test_wrappers.c -fi - -check framework/scripts/generate_test_keys.py tests/include/test/test_keys.h - -# Additional checks for Mbed TLS only -if in_mbedtls_repo; then - check scripts/generate_errors.pl library/error.c - check scripts/generate_query_config.pl programs/test/query_config.c - check scripts/generate_features.pl library/version_features.c - check framework/scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated.c - check framework/scripts/generate_tls_handshake_tests.py tests/opt-testcases/handshake-generated.sh - check framework/scripts/generate_tls13_compat_tests.py tests/opt-testcases/tls13-compat.sh - check framework/scripts/generate_test_cert_macros.py tests/include/test/test_certs.h - # generate_visualc_files enumerates source files (library/*.c). It doesn't - # care about their content, but the files must exist. So it must run after - # the step that creates or updates these files. - check scripts/generate_visualc_files.pl visualc/VS2017 -fi diff --git a/tf-psa-crypto b/tf-psa-crypto index d66b78e4ad..69190f0c6c 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit d66b78e4ad1f7a61502e3dcf62daed177facc03f +Subproject commit 69190f0c6ce18cbf73aada630323bffff758c82b diff --git a/visualc/VS2017/.gitignore b/visualc/VS2017/.gitignore index a9ded4aab2..e45eaf68fb 100644 --- a/visualc/VS2017/.gitignore +++ b/visualc/VS2017/.gitignore @@ -1,4 +1,4 @@ -# Files that may be left over from check-generated-files.sh +# Files that may be left over from make_generated-files.py --check /*.bak # Visual Studio artifacts