Files
cuframes/libcuframes/tests/CMakeLists.txt
T
gx a21812d3f6 tools+examples+test: end-to-end pipeline ready (Steps 9-10)
cuframes-rtsp-source — standalone bridge между RTSP/file и cuframes IPC.
Декодирует на CUDA (nvdec), копирует D2D в pre-allocated pool (EXTERNAL
ownership), публикует через cuframes. --realtime для pacing файлового
ввода, --loop для зацикливания. Альтернатива FFmpeg-фильтра до v0.2
(filter требует patch FFmpeg, конфликтует с Frigate's bundled build).

examples/sub_count — reference subscriber на raw C API: counts frames,
trackit gaps, выходит clean при disconnect/timeout/SIGINT.

test_stress (4 subscribers × 2000 frames @ 120fps) — PASS на RTX 5090.
0 torn frames у всех consumers (включая 2 slow с 5ms sleep).

Smoke-проверено: testsrc 25fps → cuframes-rtsp-source → cuframes IPC
→ sub_count (отдельный процесс) → 200/200 frames, 0 gaps, avg_fps=25.2.
2026-05-14 23:39:01 +01:00

25 lines
1011 B
CMake

find_package(CUDAToolkit REQUIRED)
# Standalone test executables (без catch2 — простой ctest)
add_executable(test_pingpong test_pingpong.cu)
target_link_libraries(test_pingpong PRIVATE cuframes CUDA::cudart)
target_include_directories(test_pingpong PRIVATE
${CMAKE_SOURCE_DIR}/include)
add_test(NAME pingpong_basic COMMAND test_pingpong)
set_tests_properties(pingpong_basic PROPERTIES TIMEOUT 60)
add_executable(test_multi test_multi.cu)
target_link_libraries(test_multi PRIVATE cuframes CUDA::cudart)
target_include_directories(test_multi PRIVATE
${CMAKE_SOURCE_DIR}/include)
add_test(NAME multi_consumer COMMAND test_multi)
set_tests_properties(multi_consumer PROPERTIES TIMEOUT 60)
add_executable(test_stress test_stress.cu)
target_link_libraries(test_stress PRIVATE cuframes CUDA::cudart)
target_include_directories(test_stress PRIVATE
${CMAKE_SOURCE_DIR}/include)
add_test(NAME stress_4consumer COMMAND test_stress)
set_tests_properties(stress_4consumer PROPERTIES TIMEOUT 120)