cmvr-es/test/CMakeLists.txt

54 lines
1.8 KiB
CMake
Raw Normal View History

get_property(_cmvr_quic_test_library_dirs DIRECTORY PROPERTY LINK_DIRECTORIES)
list(PREPEND _cmvr_quic_test_library_dirs
"${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/cmvr_compiler_runtime")
list(REMOVE_DUPLICATES _cmvr_quic_test_library_dirs)
list(JOIN _cmvr_quic_test_library_dirs ":" CMVR_QUIC_TEST_LIBRARY_PATH)
add_subdirectory(quic_gateway)
if(NOT BUILD_TESTING)
return()
endif()
find_program(CMVR_OPENSSL_EXECUTABLE NAMES openssl)
if(NOT CMVR_OPENSSL_EXECUTABLE)
message(WARNING
"The openssl command was not found; QUIC loopback integration "
"tests that require a temporary TLS certificate are skipped")
return()
endif()
set(CMVR_QUIC_TEST_CERTIFICATE_DIR
"${CMAKE_CURRENT_BINARY_DIR}/certs")
set(CMVR_QUIC_TEST_CERTIFICATE
"${CMVR_QUIC_TEST_CERTIFICATE_DIR}/server.crt")
set(CMVR_QUIC_TEST_PRIVATE_KEY
"${CMVR_QUIC_TEST_CERTIFICATE_DIR}/server.key")
add_custom_command(
OUTPUT
"${CMVR_QUIC_TEST_CERTIFICATE}"
"${CMVR_QUIC_TEST_PRIVATE_KEY}"
COMMAND "${CMAKE_COMMAND}" -E make_directory
"${CMVR_QUIC_TEST_CERTIFICATE_DIR}"
COMMAND "${CMVR_OPENSSL_EXECUTABLE}" req
-x509
-newkey rsa:2048
-nodes
-keyout "${CMVR_QUIC_TEST_PRIVATE_KEY}"
-out "${CMVR_QUIC_TEST_CERTIFICATE}"
-days 7
-subj "/CN=127.0.0.1"
-addext "subjectAltName=IP:127.0.0.1"
VERBATIM
COMMENT "Generating a development-only loopback QUIC certificate")
add_custom_target(cmvr_quic_test_certificate
DEPENDS
"${CMVR_QUIC_TEST_CERTIFICATE}"
"${CMVR_QUIC_TEST_PRIVATE_KEY}")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/e2e/CMakeLists.txt")
add_subdirectory(e2e)
endif()