1#!/usr/bin/env perl 2 3# Perl code that is executed to transform each original line from a library 4# source file into the corresponding line in the test driver copy of the 5# library. Add a LIBTESTDRIVER1_/libtestdriver1_ to mbedtls_xxx and psa_xxx 6# symbols. 7 8# Copyright The Mbed TLS Contributors 9# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 10 11use warnings; 12use File::Basename; 13 14my @public_files = map { basename($_) } glob("../tf-psa-crypto/include/mbedtls/*.h"); 15 16my $public_files_regex = join('|', map { quotemeta($_) } @public_files); 17 18my @private_files = map { basename($_) } glob("../tf-psa-crypto/include/mbedtls/private/*.h"); 19 20my $private_files_regex = join('|', map { quotemeta($_) } @private_files); 21 22while (<>) { 23 s!^(\s*#\s*include\s*[\"<])mbedtls/build_info.h!${1}libtestdriver1/include/mbedtls/build_info.h!; 24 s!^(\s*#\s*include\s*[\"<])mbedtls/mbedtls_config.h!${1}libtestdriver1/include/mbedtls/mbedtls_config.h!; 25 s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_x509.h!${1}libtestdriver1/include/mbedtls/config_adjust_x509.h!; 26 s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_ssl.h!${1}libtestdriver1/include/mbedtls/config_adjust_ssl.h!; 27 s!^(\s*#\s*include\s*[\"<])mbedtls/check_config.h!${1}libtestdriver1/include/mbedtls/check_config.h!; 28 # Files in include/mbedtls and drivers/builtin/include/mbedtls are both 29 # included in files via #include mbedtls/<file>.h, so when expanding to the 30 # full path make sure that files in include/mbedtls are not expanded 31 # to driver/builtin/include/mbedtls. 32 if ( $public_files_regex ) { 33 s!^(\s*#\s*include\s*[\"<])mbedtls/($public_files_regex)!${1}libtestdriver1/tf-psa-crypto/include/mbedtls/${2}!; 34 } 35 if ( $private_files_regex ) { 36 s!^(\s*#\s*include\s*[\"<])mbedtls/private/($private_files_regex)!${1}libtestdriver1/tf-psa-crypto/include/mbedtls/private/${2}!; 37 } 38 s!^(\s*#\s*include\s*[\"<])mbedtls/!${1}libtestdriver1/tf-psa-crypto/drivers/builtin/include/mbedtls/!; 39 s!^(\s*#\s*include\s*[\"<])psa/!${1}libtestdriver1/tf-psa-crypto/include/psa/!; 40 s!^(\s*#\s*include\s*[\"<])tf-psa-crypto/!${1}libtestdriver1/tf-psa-crypto/include/tf-psa-crypto/!; 41 if (/^\s*#\s*include/) { 42 print; 43 next; 44 } 45 s/\b(?=MBEDTLS_|PSA_|TF_PSA_CRYPTO_)/LIBTESTDRIVER1_/g; 46 s/\b(?=mbedtls_|psa_|tf_psa_crypto_)/libtestdriver1_/g; 47 print; 48} 49