blob: 36143b0cafcaec8ab11005b7479224dab5e5914c [file] [log] [blame]
Felix Conway1ef121c2025-04-09 09:51:13 +01001#!/usr/bin/env perl
Felix Conwaye6605f92025-04-08 14:26:29 +01002
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
Ben Taylord5607992025-07-28 15:09:14 +010018my @private_files = map { basename($_) } glob("../tf-psa-crypto/include/mbedtls/private/*.h");
19
20my $private_files_regex = join('|', map { quotemeta($_) } @private_files);
21
Felix Conwaye6605f92025-04-08 14:26:29 +010022while (<>) {
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!;
Anton Matkin4e091782025-07-04 15:07:15 +020025 s!^(\s*#\s*include\s*[\"<])mbedtls/private/config_adjust_x509.h!${1}libtestdriver1/include/mbedtls/private/config_adjust_x509.h!;
26 s!^(\s*#\s*include\s*[\"<])mbedtls/private/config_adjust_ssl.h!${1}libtestdriver1/include/mbedtls/private/config_adjust_ssl.h!;
Felix Conwaye6605f92025-04-08 14:26:29 +010027 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 }
Ben Taylord5607992025-07-28 15:09:14 +010035 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 }
Felix Conwaye6605f92025-04-08 14:26:29 +010038 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}