Skip to content

Commit 99226e9

Browse files
cmake: Generate test_keys.h and test_certs.h in the build tree
Signed-off-by: Ronald Cron <[email protected]>
1 parent 81a674e commit 99226e9

8 files changed

+39
-27
lines changed

CMakeLists.txt

+10-6
Original file line numberDiff line numberDiff line change
@@ -420,20 +420,22 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
420420
if(GEN_FILES)
421421
add_custom_command(
422422
OUTPUT
423-
${MBEDTLS_FRAMEWORK_DIR}/tests/src/test_keys.h
423+
${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_keys.h
424+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tests/include/test
424425
COMMAND
425426
"${MBEDTLS_PYTHON_EXECUTABLE}"
426427
"${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_keys.py"
427428
"--output"
428-
"${MBEDTLS_FRAMEWORK_DIR}/tests/src/test_keys.h"
429+
"${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_keys.h"
429430
DEPENDS
430431
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_keys.py
431432
)
432433
add_custom_target(mbedtls_test_keys_header
433-
DEPENDS ${MBEDTLS_FRAMEWORK_DIR}/tests/src/test_keys.h)
434+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_keys.h)
434435
add_dependencies(mbedtls_test mbedtls_test_keys_header)
435436
endif()
436437
target_include_directories(mbedtls_test
438+
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/tests/include
437439
PRIVATE ${MBEDTLS_FRAMEWORK_DIR}/tests/include
438440
PRIVATE tests/include
439441
PRIVATE include
@@ -454,20 +456,22 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
454456
if(GEN_FILES)
455457
add_custom_command(
456458
OUTPUT
457-
${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h
459+
${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_certs.h
460+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tests/include/test
458461
COMMAND
459462
"${MBEDTLS_PYTHON_EXECUTABLE}"
460463
"${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_cert_macros.py"
461464
"--output"
462-
"${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h"
465+
"${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_certs.h"
463466
DEPENDS
464467
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_cert_macros.py
465468
)
466469
add_custom_target(mbedtls_test_certs_header
467-
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h)
470+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tests/include/test/test_certs.h)
468471
add_dependencies(mbedtls_test_helpers mbedtls_test_certs_header)
469472
endif()
470473
target_include_directories(mbedtls_test_helpers
474+
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/tests/include
471475
PRIVATE ${MBEDTLS_FRAMEWORK_DIR}/tests/include
472476
PRIVATE tests/include
473477
PRIVATE include

scripts/generate_visualc_files.pl

+7
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
my $crypto_source_dir = 'tf-psa-crypto/drivers/builtin/src';
4343
my $tls_test_source_dir = 'tests/src';
4444
my $tls_test_header_dir = 'tests/include/test';
45+
my $crypto_test_source_dir = 'tf-psa-crypto/tests/src';
46+
my $crypto_test_header_dir = 'tf-psa-crypto/tests/include/test';
4547
my $test_source_dir = 'framework/tests/src';
4648
my $test_header_dir = 'framework/tests/include/test';
4749
my $test_drivers_header_dir = 'framework/tests/include/test/drivers';
@@ -68,6 +70,7 @@
6870
tf-psa-crypto/drivers/everest/include/everest/vs2013
6971
tf-psa-crypto/drivers/everest/include/everest/kremlib
7072
tests/include
73+
tf-psa-crypto/tests/include
7174
framework/tests/include
7275
framework/tests/programs
7376
);
@@ -131,9 +134,11 @@ sub check_dirs {
131134
&& -d $crypto_source_dir
132135
&& -d $test_source_dir
133136
&& -d $tls_test_source_dir
137+
&& -d $crypto_test_source_dir
134138
&& -d $test_drivers_source_dir
135139
&& -d $test_header_dir
136140
&& -d $tls_test_header_dir
141+
&& -d $crypto_test_header_dir
137142
&& -d $test_drivers_header_dir
138143
&& -d $mbedtls_programs_dir
139144
&& -d $framework_programs_dir
@@ -300,6 +305,7 @@ sub main {
300305
$psa_header_dir,
301306
$test_header_dir,
302307
$tls_test_header_dir,
308+
$crypto_test_header_dir,
303309
$test_drivers_header_dir,
304310
$tls_source_dir,
305311
$crypto_core_source_dir,
@@ -314,6 +320,7 @@ sub main {
314320
$crypto_source_dir,
315321
$test_source_dir,
316322
$tls_test_source_dir,
323+
$crypto_test_source_dir,
317324
$test_drivers_source_dir,
318325
@thirdparty_source_dirs,
319326
);

scripts/make_generated_files.bat

+8-8
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,12 @@
77
@rem the "CC" environment variable must point to a C compiler.
88

99
@rem @@@@ library\** @@@@
10-
@rem psa_crypto_driver_wrappers.h needs to be generated prior to
11-
@rem generate_visualc_files.pl being invoked.
1210
python tf-psa-crypto\scripts\generate_driver_wrappers.py || exit /b 1
1311
perl scripts\generate_errors.pl || exit /b 1
1412
perl scripts\generate_query_config.pl || exit /b 1
1513
perl scripts\generate_features.pl || exit /b 1
1614
python framework\scripts\generate_ssl_debug_helpers.py || exit /b 1
1715

18-
@rem @@@@ Build @@@@
19-
perl scripts\generate_visualc_files.pl || exit /b 1
20-
2116
@rem @@@@ programs\** @@@@
2217
cd tf-psa-crypto
2318
python scripts\generate_psa_constants.py || exit /b 1
@@ -29,8 +24,13 @@ python framework\scripts\generate_bignum_tests.py --directory tf-psa-crypto\test
2924
python framework\scripts\generate_config_tests.py || exit /b 1
3025
python framework\scripts\generate_ecp_tests.py --directory tf-psa-crypto\tests\suites || exit /b 1
3126
python framework\scripts\generate_psa_tests.py --directory tf-psa-crypto\tests\suites || exit /b 1
32-
python framework\scripts\generate_test_keys.py --output framework\tests\include\test\test_keys.h || exit /b 1
33-
python tf-psa-crypto\framework\scripts\generate_test_keys.py --output tf-psa-crypto\framework\tests\include\test\test_keys.h || exit /b 1
34-
python framework\scripts\generate_test_cert_macros.py --output tests\src\test_certs.h || exit /b 1
27+
python framework\scripts\generate_test_keys.py --output tests\include\test\test_keys.h || exit /b 1
28+
python tf-psa-crypto\framework\scripts\generate_test_keys.py --output tf-psa-crypto\tests\include\test\test_keys.h || exit /b 1
29+
python framework\scripts\generate_test_cert_macros.py --output tests\include\test\test_certs.h || exit /b 1
3530
python framework\scripts\generate_tls_handshake_tests.py || exit /b 1
3631
python framework\scripts\generate_tls13_compat_tests.py || exit /b 1
32+
33+
@rem @@@@ Build @@@@
34+
@rem Call generate_visualc_files.pl last to be sure everything else has been
35+
@rem generated before.
36+
perl scripts\generate_visualc_files.pl || exit /b 1

tests/.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@
2222
/opt-testcases/tls13-compat.sh
2323
/suites/*.generated.data
2424
/suites/test_suite_config.mbedtls_boolean.data
25-
/src/test_keys.h
26-
/src/test_certs.h
25+
/include/test/test_keys.h
26+
/include/test/test_certs.h
2727
###END_GENERATED_FILES###

tests/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ function(add_test_suite suite_name)
176176
# files are automatically included because the library targets declare
177177
# them as PUBLIC.
178178
target_include_directories(test_suite_${data_name}
179+
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include
179180
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
180181
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../framework/tests/include
181182
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../library

tests/Makefile

+8-8
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ endif
6464
GENERATED_CRYPTO_DATA_FILES += $(GENERATED_PSA_DATA_FILES)
6565

6666
GENERATED_FILES = $(GENERATED_DATA_FILES) $(GENERATED_CRYPTO_DATA_FILES)
67-
GENERATED_FILES += ../framework/tests/include/test/test_keys.h \
68-
../tf-psa-crypto/framework/tests/include/test/test_keys.h \
69-
src/test_certs.h
67+
GENERATED_FILES += include/test/test_keys.h \
68+
../tf-psa-crypto/tests/include/test/test_keys.h \
69+
include/test/test_certs.h
7070

7171
# Generated files needed to (fully) run ssl-opt.sh
7272
.PHONY: ssl-opt
@@ -184,16 +184,16 @@ all: $(BINARIES) $(CRYPTO_BINARIES)
184184

185185
mbedtls_test: $(MBEDTLS_TEST_OBJS)
186186

187-
src/test_certs.h: ../framework/scripts/generate_test_cert_macros.py \
187+
include/test/test_certs.h: ../framework/scripts/generate_test_cert_macros.py \
188188
$($(PYTHON) ../framework/scripts/generate_test_cert_macros.py --list-dependencies)
189189
echo " Gen $@"
190190
$(PYTHON) ../framework/scripts/generate_test_cert_macros.py --output $@
191191

192-
../framework/tests/include/test/test_keys.h: ../framework/scripts/generate_test_keys.py
192+
include/test/test_keys.h: ../framework/scripts/generate_test_keys.py
193193
echo " Gen $@"
194194
$(PYTHON) ../framework/scripts/generate_test_keys.py --output $@
195195

196-
../tf-psa-crypto/framework/tests/include/test/test_keys.h: ../tf-psa-crypto/framework/scripts/generate_test_keys.py
196+
../tf-psa-crypto/tests/include/test/test_keys.h: ../tf-psa-crypto/framework/scripts/generate_test_keys.py
197197
echo " Gen $@"
198198
$(PYTHON) ../tf-psa-crypto/framework/scripts/generate_test_keys.py --output $@
199199

@@ -204,8 +204,8 @@ ifdef RECORD_PSA_STATUS_COVERAGE_LOG
204204
# therefore the wildcard enumeration above doesn't include it.
205205
TEST_OBJS_DEPS += ../framework/tests/include/test/instrument_record_status.h
206206
endif
207-
TEST_OBJS_DEPS += src/test_certs.h ../framework/tests/include/test/test_keys.h \
208-
../tf-psa-crypto/framework/tests/include/test/test_keys.h
207+
TEST_OBJS_DEPS += include/test/test_certs.h include/test/test_keys.h \
208+
../tf-psa-crypto/tests/include/test/test_keys.h
209209

210210
# Rule to compile common test C files in framework
211211
../framework/tests/src/%.o : ../framework/tests/src/%.c $(TEST_OBJS_DEPS)

tests/scripts/check-generated-files.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ else
171171
check framework/scripts/generate_psa_wrappers.py tests/include/test/psa_test_wrappers.h tests/src/psa_test_wrappers.c
172172
fi
173173

174-
check framework/scripts/generate_test_keys.py framework/tests/include/test/test_keys.h
174+
check framework/scripts/generate_test_keys.py tests/include/test/test_keys.h
175175

176176
# Additional checks for Mbed TLS only
177177
if in_mbedtls_repo; then
@@ -181,7 +181,7 @@ if in_mbedtls_repo; then
181181
check framework/scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated.c
182182
check framework/scripts/generate_tls_handshake_tests.py tests/opt-testcases/handshake-generated.sh
183183
check framework/scripts/generate_tls13_compat_tests.py tests/opt-testcases/tls13-compat.sh
184-
check framework/scripts/generate_test_cert_macros.py tests/src/test_certs.h
184+
check framework/scripts/generate_test_cert_macros.py tests/include/test/test_certs.h
185185
# generate_visualc_files enumerates source files (library/*.c). It doesn't
186186
# care about their content, but the files must exist. So it must run after
187187
# the step that creates or updates these files.

tests/src/certs.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
#include "mbedtls/pk.h"
1515

16-
#include "test_certs.h"
16+
#include "test/test_certs.h"
1717

1818
/*
1919
*

0 commit comments

Comments
 (0)