From 19d620dec5d91ae42c86e99a0373a3bb54a5c65b Mon Sep 17 00:00:00 2001 From: Dean Galvin Date: Sat, 10 Oct 2026 15:36:07 +1300 Subject: [PATCH] test(videoout): skip the output mode test without a display guest_video_out_output_mode (#1496) opens VideoOut directly, which needs a Vulkan-capable SDL window, and aborts on the CI runners that have none. Skip with 77 like the other VideoOut window tests, unless ANYPS5_REQUIRE_DISPLAY is set. --- core/libs/prx/libSceVideoOut/CMakeLists.txt | 2 +- core/libs/tests/GuestVideoOutOutputMode.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/libs/prx/libSceVideoOut/CMakeLists.txt b/core/libs/prx/libSceVideoOut/CMakeLists.txt index 7bc8fe889..0a19b3040 100644 --- a/core/libs/prx/libSceVideoOut/CMakeLists.txt +++ b/core/libs/prx/libSceVideoOut/CMakeLists.txt @@ -89,7 +89,7 @@ if(BUILD_TESTING) target_link_libraries(guest_video_out_output_mode_tests PRIVATE libSceVideoOut libSceAgcDriver libkernel libc) configure_windows_unwind(guest_video_out_output_mode_tests) add_test(NAME guest_video_out_output_mode COMMAND guest_video_out_output_mode_tests) - set_tests_properties(guest_video_out_output_mode PROPERTIES TIMEOUT 20) + set_tests_properties(guest_video_out_output_mode PROPERTIES TIMEOUT 20 SKIP_RETURN_CODE 77) if(WIN32) set_tests_properties(guest_video_out_output_mode PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$") diff --git a/core/libs/tests/GuestVideoOutOutputMode.cpp b/core/libs/tests/GuestVideoOutOutputMode.cpp index 6762cd446..ed026953a 100644 --- a/core/libs/tests/GuestVideoOutOutputMode.cpp +++ b/core/libs/tests/GuestVideoOutOutputMode.cpp @@ -2,6 +2,7 @@ #include "prx/libc/include/Shutdown.hpp" #include #include +#include #include #include #include @@ -39,7 +40,14 @@ int main() { Require(sceVideoOutIsOutputSupported(handle, 2, nullptr, &options, 1) == INVALID_HANDLE); } - const int handle = sceVideoOutOpen(SYSTEM_USER, MAIN_BUS, 0, nullptr); + int handle = 0; + try { + handle = sceVideoOutOpen(SYSTEM_USER, MAIN_BUS, 0, nullptr); + } catch (const std::runtime_error& error) { + if (std::getenv("ANYPS5_REQUIRE_DISPLAY") != nullptr) throw; + std::printf("skipped, no display or Vulkan device: %s\n", error.what()); + return 77; + } Require(handle > 0); Require(sceVideoOutIsOutputSupported(handle, 1, &options, nullptr, 0) == 1); Require(sceVideoOutIsOutputSupported(handle, 1, nullptr, nullptr, 0) == 1);