cmvr-es/test/CMakeLists.txt
xtkuang 428ee328de feat: complete QUIC edge integration
Vendor MsQuic with build and install support, add DeviceManager status to configurable heartbeats, and report only enabled devices.

Add the local QUIC gateway, protocol coverage, real MsQuic E2E tests, process smoke tests, and updated integration documentation.
2026-07-24 12:35:04 +08:00

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()