From 58b660c66ad0280a3ff931f1e2796ab45d15c17d Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 10 May 2024 14:23:16 +0100 Subject: [PATCH 1/3] Move test generated files to main CMakeLists.txt Move the generation of tests/src/test_certs.h and tests/src/test_keys.h to the main CMakeLists.txt. This is required because these files are needed both by tests and programs, whereas tests/CMakeLists.txt is only included when ENABLE_TESTING is on. Signed-off-by: David Horstmann --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ tests/CMakeLists.txt | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a56ecdc0c9..306cf0261d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,6 +316,34 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS) ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/drivers/*.c) add_library(mbedtls_test OBJECT ${MBEDTLS_TEST_FILES}) if(GEN_FILES) + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/tests + COMMAND + "${MBEDTLS_PYTHON_EXECUTABLE}" + "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_keys.py" + "--output" + "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h" + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_keys.py + ) + add_custom_target(test_keys_header DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h) + add_custom_command( + OUTPUT + ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/tests + COMMAND + "${MBEDTLS_PYTHON_EXECUTABLE}" + "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_cert_macros.py" + "--output" + "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h" + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/generate_test_cert_macros.py + ) + add_custom_target(test_certs_header DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h) add_dependencies(mbedtls_test test_keys_header test_certs_header) endif() target_include_directories(mbedtls_test diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 531404fc1d..589643a806 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -74,34 +74,6 @@ foreach(file ${base_psa_generated_data_files}) endforeach() if(GEN_FILES) - add_custom_command( - OUTPUT - ${CMAKE_CURRENT_SOURCE_DIR}/src/test_keys.h - WORKING_DIRECTORY - ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND - "${MBEDTLS_PYTHON_EXECUTABLE}" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_keys.py" - "--output" - "${CMAKE_CURRENT_SOURCE_DIR}/src/test_keys.h" - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_keys.py - ) - add_custom_target(test_keys_header DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/test_keys.h) - add_custom_command( - OUTPUT - ${CMAKE_CURRENT_SOURCE_DIR}/src/test_certs.h - WORKING_DIRECTORY - ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND - "${MBEDTLS_PYTHON_EXECUTABLE}" - "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_cert_macros.py" - "--output" - "${CMAKE_CURRENT_SOURCE_DIR}/src/test_certs.h" - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_cert_macros.py - ) - add_custom_target(test_certs_header DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/test_certs.h) add_custom_command( OUTPUT ${bignum_generated_data_files} From 90dddc68b93b4e92e00ade903b68f398ffef0a23 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 10 May 2024 14:37:48 +0100 Subject: [PATCH 2/3] Add all.sh component for programs without tests Check that we can build under CMake with ENABLE_TESTING=OFF but ENABLE_PROGRAMS=ON. Signed-off-by: David Horstmann --- tests/scripts/all.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b8eb3a259b..1ceeff84da 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -6339,6 +6339,14 @@ support_build_cmake_custom_config_file () { support_test_cmake_out_of_source } +component_build_cmake_programs_no_testing () { + msg "build: cmake with -DENABLE_PROGRAMS=ON and -DENABLE_TESTING=OFF" + cmake -DENABLE_PROGRAMS=ON -DENABLE_TESTING=OFF . + make +} +support_build_cmake_programs_no_testing () { + support_test_cmake_out_of_source +} component_build_zeroize_checks () { msg "build: check for obviously wrong calls to mbedtls_platform_zeroize()" From df097d3b3832506151d6c1f04ffca37d41cda3ee Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 10 May 2024 15:37:57 +0100 Subject: [PATCH 3/3] Add note explaining component purpose We are testing that we don't break OSS-Fuzz, primarily. Signed-off-by: David Horstmann --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1ceeff84da..bfc57668b2 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -6340,6 +6340,7 @@ support_build_cmake_custom_config_file () { } component_build_cmake_programs_no_testing () { + # Verify that the type of builds performed by oss-fuzz don't get accidentally broken msg "build: cmake with -DENABLE_PROGRAMS=ON and -DENABLE_TESTING=OFF" cmake -DENABLE_PROGRAMS=ON -DENABLE_TESTING=OFF . make