# mars_parse tests: unit suite always; real-data oracle check only when SOTS_DATA_DIR is set # at configure time (it needs the owner's extracted game data; never committed). add_executable(mars_parse_unit_tests canon.cpp test_main.cpp test_value.cpp test_blocks.cpp test_effect.cpp) target_link_libraries(mars_parse_unit_tests PRIVATE mars_parse) target_include_directories(mars_parse_unit_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_options(mars_parse_unit_tests PRIVATE -Wall -Wextra -Wpedantic) add_test(NAME mars_parse_unit COMMAND mars_parse_unit_tests) add_executable(mars_parse_oracle_check canon.cpp oracle_check.cpp) target_link_libraries(mars_parse_oracle_check PRIVATE mars_parse) target_include_directories(mars_parse_oracle_check PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) if(DEFINED ENV{SOTS_DATA_DIR}) # Parses every brace-block/.effect file under the data root (no Python cross-check here; # run tests/mars_parse/build_and_run.sh for the full oracle comparison). add_test(NAME mars_parse_realdata COMMAND mars_parse_oracle_check "$ENV{SOTS_DATA_DIR}") endif()