litespeed-quic/tests/CMakeLists.txt

162 lines
4.4 KiB
CMake
Raw Permalink Normal View History

2022-05-06 16:49:46 +00:00
# Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE.
INCLUDE_DIRECTORIES(../src/liblsquic)
2018-03-30 14:57:17 +00:00
2019-01-30 20:28:35 +00:00
ENABLE_TESTING()
2018-03-30 18:05:18 +00:00
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQUIC_TEST=1")
2019-01-30 20:28:35 +00:00
IF (MSVC)
SET(LIB_FLAGS "-FORCE:MULTIPLE")
ELSE()
2019-01-30 20:28:35 +00:00
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-value")
IF (CMAKE_C_COMPILER_ID STREQUAL GNU)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-override-init")
ENDIF()
IF (CMAKE_C_COMPILER_ID STREQUAL Clang)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-initializer-overrides")
ENDIF()
ENDIF()
include_directories(../src/liblsquic/ls-qpack)
INCLUDE_DIRECTORIES(../src/lshpack)
2019-01-30 20:28:35 +00:00
SET(TESTS
ack
2019-01-30 20:28:35 +00:00
ackgen_gquic_be
ackparse_gquic_be
ackparse_ietf
2019-01-30 20:28:35 +00:00
alarmset
alt_svc_ver
2019-01-30 20:28:35 +00:00
arr
attq
blocked_gquic_be
bw_sampler
2019-01-30 20:28:35 +00:00
conn_close_gquic_be
crypto_gen
2019-01-30 20:28:35 +00:00
cubic
dec
di_nocopy
elision
engine_ctor
export_key
frame_chop
frame_reader
frame_writer
goaway_gquic_be
hkdf
hpi
2019-01-30 20:28:35 +00:00
lsquic_hash
packet_out
packet_resize
2019-01-30 20:28:35 +00:00
packno_len
parse_packet_in
purga
qlog
2019-01-30 20:28:35 +00:00
quic_be_floats
reg_pkt_headergen
rst_stream_gquic_be
rtt
send_headers
2019-01-30 20:28:35 +00:00
senhist
set
sfcw
shi
2019-01-30 20:28:35 +00:00
spi
stop_waiting_gquic_be
streamgen
streamparse
tokgen
trapa
varint
2019-01-30 20:28:35 +00:00
ver_nego
wuf_gquic_be
)
IF (CMAKE_SYSTEM_NAME STREQUAL "Linux")
# Linux has fmemopen
SET(TESTS ${TESTS} frame_rw)
ENDIF()
2018-03-30 14:57:17 +00:00
IF (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
# No regexes on Windows
SET(TESTS ${TESTS} ack_merge)
2020-06-03 04:13:30 +00:00
# No open_memstream() on Windows
SET(TESTS ${TESTS} hcsi_reader)
# Takes forever on Windows, for whatever reason. Or maybe it's the
# MS C compilers. Something to investigate... later.
LIST(APPEND TESTS h3_framing)
ENDIF()
2019-01-30 20:28:35 +00:00
FOREACH(TEST_NAME ${TESTS})
ADD_EXECUTABLE(test_${TEST_NAME} test_${TEST_NAME}.c ${ADDL_SOURCES})
IF(NOT MSVC)
TARGET_LINK_LIBRARIES(test_${TEST_NAME} ${LIBS} ${LIB_FLAGS})
ELSE()
TARGET_LINK_LIBRARIES(test_${TEST_NAME} ${LIBS} ${GETOPT_LIB} ${LIB_FLAGS})
# copy any dependencies local to the tests
#IF (${CMAKE_VERSION} VERSION_LESS "3.21.0")
ADD_CUSTOM_COMMAND(TARGET test_${TEST_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy \"$ENV{VCPKG_ROOT}/installed/x64-windows$<$<CONFIG:Debug>:/debug>/bin/getopt.dll\" \"$<TARGET_FILE_DIR:test_${TEST_NAME}>\"
COMMAND_EXPAND_LISTS
)
#ELSE()
# ADD_CUSTOM_COMMAND(TARGET test_${TEST_NAME} POST_BUILD
# COMMAND if not \"\"=="$<TARGET_RUNTIME_DLLS:test_${TEST_NAME}>" ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:test_${TEST_NAME}> $<TARGET_FILE_DIR:test_${TEST_NAME}>
# COMMAND_EXPAND_LISTS
# )
#ENDIF()
ENDIF()
2019-01-30 20:28:35 +00:00
ADD_TEST(${TEST_NAME} test_${TEST_NAME})
ENDFOREACH()
ADD_EXECUTABLE(test_stream test_stream.c ${ADDL_SOURCES})
TARGET_LINK_LIBRARIES(test_stream ${LIBS} ${LIB_FLAGS})
IF(MSVC)
TARGET_LINK_LIBRARIES(test_stream ${GETOPT_LIB})
ENDIF()
2019-01-30 20:28:35 +00:00
ADD_TEST(stream test_stream)
ADD_TEST(stream_hash test_stream -h)
ADD_TEST(stream_A test_stream -A)
ADD_TEST(stream_hash_A test_stream -A -h)
2020-06-03 04:13:30 +00:00
IF(NOT MSVC)
2019-01-30 20:28:35 +00:00
ADD_EXECUTABLE(graph_cubic graph_cubic.c ${ADDL_SOURCES})
TARGET_LINK_LIBRARIES(graph_cubic ${LIBS})
ADD_EXECUTABLE(mini_parse mini_parse.c ${ADDL_SOURCES})
TARGET_LINK_LIBRARIES(mini_parse ${LIBS})
2020-06-03 04:13:30 +00:00
ENDIF()
ADD_EXECUTABLE(test_min_heap test_min_heap.c ../src/liblsquic/lsquic_min_heap.c)
ADD_TEST(min_heap test_min_heap)
2020-06-03 04:13:30 +00:00
SET(MALO_SRC test_malo.c ../src/liblsquic/lsquic_malo.c)
ADD_EXECUTABLE(test_malo_pooled ${MALO_SRC})
2020-06-03 04:13:30 +00:00
IF(MSVC)
TARGET_LINK_LIBRARIES(test_malo_pooled ${GETOPT_LIB})
2020-06-03 04:13:30 +00:00
ENDIF()
SET_TARGET_PROPERTIES(test_malo_pooled
PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -DLSQUIC_USE_POOLS=1")
ADD_TEST(malo_pooled test_malo_pooled)
2020-06-03 04:13:30 +00:00
ADD_EXECUTABLE(test_malo_nopool ${MALO_SRC})
IF(MSVC)
TARGET_LINK_LIBRARIES(test_malo_nopool ${GETOPT_LIB})
ENDIF()
SET_TARGET_PROPERTIES(test_malo_nopool
PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -DLSQUIC_USE_POOLS=0")
ADD_TEST(malo_nopool test_malo_nopool)
ADD_EXECUTABLE(test_minmax test_minmax.c ../src/liblsquic/lsquic_minmax.c)
IF(MSVC)
TARGET_LINK_LIBRARIES(test_minmax ${GETOPT_LIB})
ENDIF()
ADD_TEST(minmax test_minmax)
ADD_EXECUTABLE(test_rechist test_rechist.c ../src/liblsquic/lsquic_rechist.c)
ADD_TEST(rechist test_rechist)
ADD_EXECUTABLE(test_trechist test_trechist.c ../src/liblsquic/lsquic_trechist.c)
ADD_TEST(trechist test_trechist)