2026-09-06 21:28:55 -07:00
|
|
|
# Dependency-free CTest targets (see test_util.h for why there is no gtest).
|
|
|
|
|
|
|
|
|
|
function(stplugin_add_test name)
|
|
|
|
|
add_executable(${name} ${name}.cpp)
|
|
|
|
|
target_link_libraries(${name} PRIVATE stplugin_core)
|
|
|
|
|
target_include_directories(${name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
if(WIN32)
|
|
|
|
|
# loopback_server.h needs Winsock for the real-backend tests.
|
|
|
|
|
target_link_libraries(${name} PRIVATE ws2_32)
|
|
|
|
|
endif()
|
|
|
|
|
add_test(NAME ${name} COMMAND ${name})
|
|
|
|
|
# Nothing here should ever take a minute; a hang is a failure, not a
|
|
|
|
|
# reason for CI to sit for its default 1500s.
|
|
|
|
|
set_tests_properties(${name} PROPERTIES TIMEOUT 120)
|
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
|
stplugin_add_test(test_core)
|
|
|
|
|
stplugin_add_test(test_json)
|
|
|
|
|
stplugin_add_test(test_api_client)
|
2026-09-06 21:39:49 -07:00
|
|
|
stplugin_add_test(test_session)
|
|
|
|
|
|
|
|
|
|
# End-to-end against a REAL LiveKit room: publishes a synthetic camera with
|
|
|
|
|
# the same SDK and subscribes to it through LiveKitSession. Skips (exit 0)
|
|
|
|
|
# unless STPLUGIN_IT_* is set, so the three build runners -- which have no
|
|
|
|
|
# LiveKit server -- stay green. See scripts/livekit-dev-room.py.
|
|
|
|
|
stplugin_add_test(test_integration_livekit)
|
|
|
|
|
set_tests_properties(test_integration_livekit PROPERTIES TIMEOUT 300)
|
2026-09-06 21:22:14 -07:00
|
|
|
|
|
|
|
|
# Smoke test for the LiveKit SDK link: initialize()/shutdown() must succeed
|
|
|
|
|
# in-process. This is the cheapest possible proof that LiveKit::livekit is
|
|
|
|
|
# not just linked but loadable and callable (it dlopen-chains into
|
|
|
|
|
# liblivekit_ffi, which is where a broken RPATH would show up).
|
2026-09-06 21:28:55 -07:00
|
|
|
stplugin_add_test(test_livekit_smoke)
|
|
|
|
|
target_compile_definitions(test_livekit_smoke PRIVATE
|
2026-09-06 21:22:14 -07:00
|
|
|
STPLUGIN_EXPECTED_LIVEKIT_VERSION="${LIVEKIT_SDK_VERSION_RESOLVED}"
|
|
|
|
|
)
|