54 lines
1.8 KiB
CMake
54 lines
1.8 KiB
CMake
|
|
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()
|