diff --git a/framework b/framework index a39ba59344..4a841219ff 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit a39ba59344fd4f1d0ee267ca414b9420d5dca9f5 +Subproject commit 4a841219ff9440f6a723e9e9612a33c44ad1e2f9 diff --git a/programs/test/generate_cpp_dummy_build.sh b/programs/test/generate_cpp_dummy_build.sh index d27c7ae124..7b4f520aca 100755 --- a/programs/test/generate_cpp_dummy_build.sh +++ b/programs/test/generate_cpp_dummy_build.sh @@ -52,6 +52,12 @@ EOF esac done + if [ -d "tf-psa-crypto/include/mbedtls" ]; then + for header in tf-psa-crypto/include/mbedtls/*.h; do + echo "#include \"${header#tf-psa-crypto/include/}\"" + done + fi + for header in tf-psa-crypto/include/psa/*.h; do case ${header#tf-psa-crypto/include/} in psa/crypto_config.h) :;; # not meant for direct inclusion diff --git a/tests/Makefile b/tests/Makefile index 87a6ca1777..45231cd9a5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -324,25 +324,6 @@ test: check perl -p -e 's/^(# *(define|ifndef) +\w+_)H\b/$${1}ALT_H/' $< >$@ # Generate test library - -# Perl code that is executed to transform each original line from a library -# source file into the corresponding line in the test driver copy of the -# library. Add a LIBTESTDRIVER1_/libtestdriver1_ to mbedtls_xxx and psa_xxx -# symbols. -define libtestdriver1_rewrite := - s!^(\s*#\s*include\s*[\"<])mbedtls/build_info.h!$${1}libtestdriver1/include/mbedtls/build_info.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/mbedtls_config.h!$${1}libtestdriver1/include/mbedtls/mbedtls_config.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_x509.h!$${1}libtestdriver1/include/mbedtls/config_adjust_x509.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_ssl.h!$${1}libtestdriver1/include/mbedtls/config_adjust_ssl.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/check_config.h!$${1}libtestdriver1/include/mbedtls/check_config.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/!$${1}libtestdriver1/tf-psa-crypto/drivers/builtin/include/mbedtls/!; \ - s!^(\s*#\s*include\s*[\"<])psa/!$${1}libtestdriver1/tf-psa-crypto/include/psa/!; \ - s!^(\s*#\s*include\s*[\"<])tf-psa-crypto/!$${1}libtestdriver1/tf-psa-crypto/include/tf-psa-crypto/!; \ - next if /^\s*#\s*include/; \ - s/\b(?=MBEDTLS_|PSA_|TF_PSA_CRYPTO_)/LIBTESTDRIVER1_/g; \ - s/\b(?=mbedtls_|psa_|tf_psa_crypto_)/libtestdriver1_/g; -endef - libtestdriver1.a: rm -Rf ./libtestdriver1 mkdir ./libtestdriver1 @@ -384,12 +365,12 @@ libtestdriver1.a: # Prefix MBEDTLS_* PSA_* symbols with LIBTESTDRIVER1_ as well as # mbedtls_* psa_* symbols with libtestdriver1_ to avoid symbol clash # when this test driver library is linked with the Mbed TLS library. - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/library/*.[ch] - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/core/*.[ch] - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/library/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/core/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] $(MAKE) -C ./libtestdriver1/library CFLAGS="-I../../ $(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a cp ./libtestdriver1/library/libmbedcrypto.a ../library/libtestdriver1.a diff --git a/tests/scripts/libtestdriver1_rewrite.pl b/tests/scripts/libtestdriver1_rewrite.pl new file mode 100755 index 0000000000..202575d855 --- /dev/null +++ b/tests/scripts/libtestdriver1_rewrite.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +# Perl code that is executed to transform each original line from a library +# source file into the corresponding line in the test driver copy of the +# library. Add a LIBTESTDRIVER1_/libtestdriver1_ to mbedtls_xxx and psa_xxx +# symbols. + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +use warnings; +use File::Basename; + +my @public_files = map { basename($_) } glob("../tf-psa-crypto/include/mbedtls/*.h"); + +my $public_files_regex = join('|', map { quotemeta($_) } @public_files); + +while (<>) { + s!^(\s*#\s*include\s*[\"<])mbedtls/build_info.h!${1}libtestdriver1/include/mbedtls/build_info.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/mbedtls_config.h!${1}libtestdriver1/include/mbedtls/mbedtls_config.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_x509.h!${1}libtestdriver1/include/mbedtls/config_adjust_x509.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_ssl.h!${1}libtestdriver1/include/mbedtls/config_adjust_ssl.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/check_config.h!${1}libtestdriver1/include/mbedtls/check_config.h!; + # Files in include/mbedtls and drivers/builtin/include/mbedtls are both + # included in files via #include mbedtls/.h, so when expanding to the + # full path make sure that files in include/mbedtls are not expanded + # to driver/builtin/include/mbedtls. + if ( $public_files_regex ) { + s!^(\s*#\s*include\s*[\"<])mbedtls/($public_files_regex)!${1}libtestdriver1/tf-psa-crypto/include/mbedtls/${2}!; + } + s!^(\s*#\s*include\s*[\"<])mbedtls/!${1}libtestdriver1/tf-psa-crypto/drivers/builtin/include/mbedtls/!; + s!^(\s*#\s*include\s*[\"<])psa/!${1}libtestdriver1/tf-psa-crypto/include/psa/!; + s!^(\s*#\s*include\s*[\"<])tf-psa-crypto/!${1}libtestdriver1/tf-psa-crypto/include/tf-psa-crypto/!; + if (/^\s*#\s*include/) { + print; + next; + } + s/\b(?=MBEDTLS_|PSA_|TF_PSA_CRYPTO_)/LIBTESTDRIVER1_/g; + s/\b(?=mbedtls_|psa_|tf_psa_crypto_)/libtestdriver1_/g; + print; +} diff --git a/tf-psa-crypto b/tf-psa-crypto index 4a9f29b05c..f936d86b25 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit 4a9f29b05c661bd874c75d80339fcce00adea4e0 +Subproject commit f936d86b2587eb4a961cac5b3b95b949ee056ee6