Remove the per-array type category so arrays can mix types like structs. Add 13 passing and 125 expected-failure duskscript test fixtures with a table-driven runner. Also includes the in-progress entity/physics and archive moves from the working tree. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
39 lines
1.4 KiB
CMake
39 lines
1.4 KiB
CMake
# Copyright (c) 2026 Dominic Masters
|
|
#
|
|
# This software is released under the MIT License.
|
|
# https://opensource.org/licenses/MIT
|
|
|
|
include(dusktest)
|
|
|
|
dusktest(test_duskscript.c)
|
|
|
|
# Scripts are loaded through the asset system (see scriptLoadHandler in
|
|
# src/dusk/script/script.c), not the real filesystem, so the fixtures are
|
|
# packed into a small test.dsk with the same tools.asset.pack used for the
|
|
# game's own dusk.dsk - this exercises the real compiler -> pack -> asset ->
|
|
# runtime -> consolePrint pipeline rather than a shortcut around it.
|
|
set(DUSKSCRIPT_TEST_ASSETS_DIR ${CMAKE_CURRENT_LIST_DIR}/assets)
|
|
file(GLOB DUSKSCRIPT_TEST_FIXTURES CONFIGURE_DEPENDS ${DUSKSCRIPT_TEST_ASSETS_DIR}/*.ds)
|
|
set(DUSKSCRIPT_TEST_DSK ${CMAKE_CURRENT_BINARY_DIR}/test.dsk)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${DUSKSCRIPT_TEST_DSK}
|
|
COMMAND ${Python3_EXECUTABLE} -m tools.asset.pack
|
|
--input ${DUSKSCRIPT_TEST_ASSETS_DIR}
|
|
--output ${DUSKSCRIPT_TEST_DSK}
|
|
--duskscriptcc "$<TARGET_FILE:duskscriptcc>"
|
|
WORKING_DIRECTORY ${DUSK_ROOT_DIR}
|
|
DEPENDS
|
|
duskscriptcc
|
|
${DUSKSCRIPT_TEST_FIXTURES}
|
|
COMMENT "Packing duskscript test fixtures"
|
|
)
|
|
add_custom_target(duskscript_test_fixture DEPENDS ${DUSKSCRIPT_TEST_DSK})
|
|
add_dependencies(test_duskscript duskscript_test_fixture)
|
|
|
|
target_compile_definitions(test_duskscript PRIVATE
|
|
DUSKSCRIPT_TEST_DSK="${DUSKSCRIPT_TEST_DSK}"
|
|
DUSKSCRIPT_TEST_FIXTURE="fixture.dsb"
|
|
DUSKSCRIPT_TEST_NUMBERS="fixture_numbers.dsb"
|
|
)
|