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)

# v0.2 — packet ring tests (host-only, без CUDA в test-коде)
add_executable(test_packet_ring test_packet_ring.c)
target_link_libraries(test_packet_ring PRIVATE cuframes)
target_include_directories(test_packet_ring PRIVATE
    ${CMAKE_SOURCE_DIR}/include)
add_test(NAME packet_ring_basic COMMAND test_packet_ring)
set_tests_properties(packet_ring_basic PROPERTIES TIMEOUT 120)
