From 1137c57572f5fff46e9317241be441c695d94ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Franch?= Date: Tue, 13 Oct 2026 13:44:07 +0200 Subject: [PATCH] ci(windows): build only the execution tests that run without a Vulkan device Co-Authored-By: Claude --- .github/workflows/build.yml | 2 +- core/libs/prx/libSceAgcDriver/CMakeLists.txt | 9 +++++++++ .../prx/libSceAgcDriver/tests/ExecutionTestNotBuilt.cpp | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 core/libs/prx/libSceAgcDriver/tests/ExecutionTestNotBuilt.cpp diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7cf3ca20e..2d6ed5992 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -304,7 +304,7 @@ jobs: save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} evict-old-files: job - shell: cmd - run: cmake -S . -B build %CONFIGURE% + run: cmake -S . -B build %CONFIGURE% "-DANYPS5_AGC_EXECUTION_TESTS=F64FmaSubnormals;RegistrationPrepareShutdown" - name: Check that every test executable is registered with ctest shell: cmd run: python tools/check_test_registration.py build diff --git a/core/libs/prx/libSceAgcDriver/CMakeLists.txt b/core/libs/prx/libSceAgcDriver/CMakeLists.txt index 339fcfac0..f09cff694 100644 --- a/core/libs/prx/libSceAgcDriver/CMakeLists.txt +++ b/core/libs/prx/libSceAgcDriver/CMakeLists.txt @@ -1081,10 +1081,14 @@ add_dependencies(agc_driver_mesh_tests agc_trace_revision) set_target_properties(agc_driver_mesh_tests PROPERTIES CXX_EXTENSIONS OFF) configure_windows_unwind(agc_driver_mesh_tests) +set(ANYPS5_AGC_EXECUTION_TESTS "" CACHE STRING "tests/execution sources to build, by file name without extension; the others build a stub that reports a skip. Empty builds all") file(GLOB agcExecutionTestSources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tests/execution/*.cpp) set(agcExecutionTests) foreach(agcExecutionTestSource IN LISTS agcExecutionTestSources) get_filename_component(agcExecutionTestName ${agcExecutionTestSource} NAME_WE) + if(ANYPS5_AGC_EXECUTION_TESTS AND NOT agcExecutionTestName IN_LIST ANYPS5_AGC_EXECUTION_TESTS) + set(agcExecutionTestSource ${CMAKE_CURRENT_SOURCE_DIR}/tests/ExecutionTestNotBuilt.cpp) + endif() string(REGEX REPLACE "([a-z0-9])([A-Z])" "\\1_\\2" agcExecutionTestName "${agcExecutionTestName}") string(TOLOWER "agc_driver_${agcExecutionTestName}_tests" agcExecutionTest) add_test_executable(${agcExecutionTest} EXCLUDE_FROM_ALL ${agcExecutionTestSource}) @@ -1099,6 +1103,11 @@ foreach(agcExecutionTestSource IN LISTS agcExecutionTestSources) configure_windows_unwind(${agcExecutionTest}) list(APPEND agcExecutionTests ${agcExecutionTest}) endforeach() +foreach(agcExecutionTestName IN LISTS ANYPS5_AGC_EXECUTION_TESTS) + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/tests/execution/${agcExecutionTestName}.cpp) + message(FATAL_ERROR "ANYPS5_AGC_EXECUTION_TESTS names ${agcExecutionTestName}, which has no source in tests/execution") + endif() +endforeach() target_link_libraries(agc_driver_gpu_map_on_fiber_tests PRIVATE libSceFiber) diff --git a/core/libs/prx/libSceAgcDriver/tests/ExecutionTestNotBuilt.cpp b/core/libs/prx/libSceAgcDriver/tests/ExecutionTestNotBuilt.cpp new file mode 100644 index 000000000..d385028db --- /dev/null +++ b/core/libs/prx/libSceAgcDriver/tests/ExecutionTestNotBuilt.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + std::puts("skipped, this build leaves the test out with ANYPS5_AGC_EXECUTION_TESTS"); + return 77; +}