add_executable(product_vamp_test ../src/vamp_pico/http_client.cpp ../src/vamp_pico/input.cpp ../src/vamp_pico/remote_display.cpp ../src/vamp_pico/screen.cpp test.cpp test_catalog_runtime.cpp test_health.cpp test_menu.cpp test_pico.cpp test_control_artwork.cpp test_performance.cpp test_score_loader.cpp test_touch_input.cpp test_ui.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_PYTHON="${Python3_EXECUTABLE}" VAMP_TEST_ASSETS_DIR="${CMAKE_BINARY_DIR}/generated_assets" VAMP_TEST_PERFORMANCE_ASSETS_DIR="${CMAKE_CURRENT_BINARY_DIR}/performance_assets" VAMP_TEST_UI_DIR="${CMAKE_CURRENT_BINARY_DIR}/ui_previews" ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ui_previews/static.p4 COMMAND ${VAMP_PYTHON_COMMAND} -m generator.pico_artwork --static-output ${CMAKE_CURRENT_BINARY_DIR}/ui_previews/static.p4 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} DEPENDS ${CMAKE_SOURCE_DIR}/generator/pico_artwork.py ${CMAKE_SOURCE_DIR}/package/assets/fonts/petaluma/PetalumaScript.otf VERBATIM ) add_custom_target(vamp_ui_test_assets DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ui_previews/static.p4) add_dependencies(product_vamp_test vamp_ui_test_assets) file(GLOB_RECURSE VAMP_PERFORMANCE_TEST_INPUTS CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/generator/*.py) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/performance_assets/score.json COMMAND ${VAMP_PYTHON_COMMAND} -m tests.test_performance --fixture ${CMAKE_CURRENT_BINARY_DIR}/performance_assets WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} DEPENDS test_performance.py test_musicxml.py ${VAMP_PERFORMANCE_TEST_INPUTS} VERBATIM ) add_custom_target(vamp_performance_test_assets DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/performance_assets/score.json) add_dependencies(product_vamp_test vamp_performance_test_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 ${VAMP_PYTHON_COMMAND} -m unittest discover -s tests -p test_*.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) # Complete deterministic phrase searches make this suite CPU-sensitive; # leave headroom for concurrent asset generation on development machines. set_tests_properties(product_vamp_generator PROPERTIES TIMEOUT 600) 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)