add_executable(mcds_decoder_skeleton_tests
  decoder_skeleton_test.cpp
)

target_link_libraries(mcds_decoder_skeleton_tests PRIVATE
  mcds_test_common
  Catch2::Catch2
)

catch_discover_tests(mcds_decoder_skeleton_tests)

add_executable(mcds_decoder_handle_tests
  test_decoder_handle.cpp
)

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

target_link_libraries(mcds_decoder_handle_tests PRIVATE
  mcds_test_common
  mcds_decoder
)

catch_discover_tests(mcds_decoder_handle_tests
  PROPERTIES LABELS UNIT
)

add_executable(mcds_decoder_characterization_tests
  test_decoder_characterization.cpp
)

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

target_compile_definitions(mcds_decoder_characterization_tests PRIVATE
  MCDS_BUILD_CONFIG="$<CONFIG>"
)

target_link_libraries(mcds_decoder_characterization_tests PRIVATE
  mcds_test_common
  mcds_decoder
)

catch_discover_tests(mcds_decoder_characterization_tests
  EXTRA_ARGS --data-dir "${CMAKE_SOURCE_DIR}/test/decoder"
  PROPERTIES LABELS UNIT
)

add_executable(mcds_decoder_factory_tests
  test_decoder_factory.cpp
)

target_include_directories(mcds_decoder_factory_tests PRIVATE
  "${CMAKE_SOURCE_DIR}/src/mcds"
  "${CMAKE_SOURCE_DIR}/include/mcds_libs"
)

target_link_libraries(mcds_decoder_factory_tests PRIVATE
  mcds_test_common
  mcds_decoder
)

catch_discover_tests(mcds_decoder_factory_tests
  PROPERTIES LABELS UNIT
)
