test(libSceAudioOut): cover null state pointer in sceAudioOutGetPortState

This commit is contained in:
slopgobblercobbler committed 2026-11-01 16:15:21 +01:00
1 parent e450145140
commit ea179774da
2 files changed
+32

No files matched your search

@@ -317,6 +317,16 @@ if(BUILD_TESTING)
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceAudioOut>")
endif()
add_test_executable(guest_audio_out_tests ${LIBS_INCLUDE_DIR}/tests/GuestAudioOut.cpp)
target_include_directories(guest_audio_out_tests PRIVATE ${LIBS_INCLUDE_DIR})
target_link_libraries(guest_audio_out_tests PRIVATE libSceAudioOut libc)
configure_windows_unwind(guest_audio_out_tests)
add_test(NAME guest_audio_out COMMAND guest_audio_out_tests)
if(WIN32)
set_tests_properties(guest_audio_out PROPERTIES ENVIRONMENT_MODIFICATION
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceAudioOut>")
endif()
add_test_executable(audio_out2_context_handles_tests tests/AudioOut2ContextHandles.cpp)
target_include_directories(audio_out2_context_handles_tests PRIVATE ${LIBS_INCLUDE_DIR})
target_link_libraries(audio_out2_context_handles_tests PRIVATE libSceAudioOut libc)
+22
View File
@@ -0,0 +1,22 @@
#include "prx/libSceAudioOut/include/AudioOut.hpp"
#include "SceTypes.hpp"
#include "prx/libc/include/Shutdown.hpp"
#include <cstdlib>
static void Require(bool value) {
if (!value) {
std::abort();
}
}
int main() {
constexpr int invalidPointer = static_cast<int>(0x80260004);
constexpr int invalidHandle = static_cast<int>(0x80260001);
Require(sceAudioOutInit() == 0);
Require(sceAudioOutGetPortState(invalidHandle, nullptr) == invalidPointer);
Require(sceAudioOutGetPortState(0, nullptr) == invalidPointer);
LibcRunShutdown_nid_postfix();
return 0;
}