cmake_minimum_required(VERSION 3.20)
project(psx_playtest_diagnostics_tests LANGUAGES C CXX)
enable_testing()
find_package(Threads REQUIRED)
foreach(_test writer boundary player)
    if(_test STREQUAL "writer")
        set(_source ../test_playtest_diagnostic_writer.cpp)
    else()
        set(_source ../test_playtest_diagnostics.cpp)
    endif()
    add_executable(playtest_${_test}_test ${_source})
    target_compile_features(playtest_${_test}_test PRIVATE cxx_std_17)
    target_include_directories(playtest_${_test}_test PRIVATE ../../include)
    target_link_libraries(playtest_${_test}_test PRIVATE Threads::Threads)
    if(NOT _test STREQUAL "writer")
        target_sources(playtest_${_test}_test PRIVATE ../../src/psx_sha256_file.cpp ../../src/psx_sha256.c)
        target_compile_definitions(playtest_${_test}_test PRIVATE PSX_SHA256_FILE_PORTABLE=1)
    endif()
    if(_test STREQUAL "player")
        target_compile_definitions(playtest_${_test}_test PRIVATE PSX_NO_DEBUG_TOOLS=1)
    endif()
    add_test(NAME playtest_${_test}_test COMMAND playtest_${_test}_test
        "${CMAKE_CURRENT_BINARY_DIR}/${_test}-evidence")
    set_tests_properties(playtest_${_test}_test PROPERTIES TIMEOUT 20)
endforeach()
find_package(Python3 COMPONENTS Interpreter)
if(Python3_FOUND)
    add_test(NAME replay_diagnostics_prepare_test
        COMMAND "${Python3_EXECUTABLE}" -I
        "${CMAKE_CURRENT_SOURCE_DIR}/../../../tools/tests/test_replay_diagnostics.py")
endif()
