73 lines
2.8 KiB
CMake
73 lines
2.8 KiB
CMake
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_playback.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_PLAYBACK_ASSETS_DIR="${CMAKE_CURRENT_BINARY_DIR}/playback_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_PLAYBACK_TEST_INPUTS CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/generator/*.py)
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/playback_assets/score.json
|
|
COMMAND ${VAMP_PYTHON_COMMAND} -m tests.test_playback --fixture ${CMAKE_CURRENT_BINARY_DIR}/playback_assets
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
DEPENDS test_playback.py test_musicxml.py ${VAMP_PLAYBACK_TEST_INPUTS}
|
|
VERBATIM
|
|
)
|
|
add_custom_target(vamp_playback_test_assets DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/playback_assets/score.json)
|
|
add_dependencies(product_vamp_test vamp_playback_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)
|