add_executable(product-vamp-test
  ../src/vamp_pico/http_client.cpp
  ../src/vamp_pico/input.cpp
  ../src/vamp_pico/remote_display.cpp
  test.cpp
  test_catalogue_runtime.cpp
  test_health.cpp
  test_pico.cpp
  test_score_loader.cpp
  test_touch_input.cpp
)
target_include_directories(product-vamp-test PRIVATE
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}/fixtures/pico_sdk
)
target_link_libraries(product-vamp-test PRIVATE
  vamp-zero-core
  modulus::raylib
)
target_compile_features(product-vamp-test PRIVATE cxx_std_23)
target_compile_definitions(product-vamp-test PRIVATE
  VAMP_ZERO_HOST="192.168.42.1"
  VAMP_ZERO_PORT=8080
  VAMP_TEST_SOURCE_DIR="${CMAKE_SOURCE_DIR}"
  VAMP_TEST_ASSETS_DIR="${CMAKE_BINARY_DIR}/generated-assets"
)
add_test(NAME product-vamp COMMAND product-vamp-test)
set_tests_properties(product-vamp PROPERTIES TIMEOUT 180)
add_test(
  NAME product-vamp-generator
  COMMAND ${Python3_EXECUTABLE} -m unittest discover -s tests -p test_*.py
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
set_tests_properties(product-vamp-generator PROPERTIES TIMEOUT 180)
add_custom_target(check
  COMMAND ${CMAKE_CTEST_COMMAND}
    --test-dir ${CMAKE_BINARY_DIR}
    -R ^product-vamp
    --output-on-failure
    --timeout 60
  USES_TERMINAL
)
add_dependencies(check product-vamp-test)
