add_executable(mcds_integration_tests
  test_recorder_hw.cpp
  test_round_trip.cpp
)

target_include_directories(mcds_integration_tests PRIVATE
  "${CMAKE_SOURCE_DIR}/include/mcds_libs"
  ${tas_client_api_INCLUDE_DIRS}
)

target_link_libraries(mcds_integration_tests PRIVATE
  mcds_test_common
  mcds_recorder
  mcds_configurator
  mcds_decoder
  tas_client_api::tas_client
)

catch_discover_tests(mcds_integration_tests
  EXTRA_ARGS --device localhost
  PROPERTIES
    LABELS "HARDWARE"
    RUN_SERIAL TRUE
)

# Recorder handle lifecycle tests (no hardware required)
add_executable(mcds_recorder_handle_tests
  test_recorder_handle.cpp
)

target_include_directories(mcds_recorder_handle_tests PRIVATE
  "${CMAKE_SOURCE_DIR}/include/mcds_libs"
)

target_link_libraries(mcds_recorder_handle_tests PRIVATE
  mcds_test_common
  mcds_recorder
)

catch_discover_tests(mcds_recorder_handle_tests)

# Multi-instance and thread-safety tests (no hardware required)
add_executable(mcds_multi_instance_tests
  test_multi_instance.cpp
)

target_include_directories(mcds_multi_instance_tests PRIVATE
  "${CMAKE_SOURCE_DIR}/include/mcds_libs"
)

target_link_libraries(mcds_multi_instance_tests PRIVATE
  mcds_test_common
  mcds_configurator
  mcds_decoder
  mcds_recorder
)

catch_discover_tests(mcds_multi_instance_tests)
