test(libSceSysmodule): verify handle and symbol resolution for libSceAudioPropagation

This commit is contained in:
Kikoarl 2026-10-12 00:08:15 +02:00
parent 5d298b6d95
commit 7cf2ee844a
2 changed files with 14 additions and 1 deletions

View File

@ -12,9 +12,11 @@ if(BUILD_TESTING)
add_custom_target(guest_sysmodule_runtime
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
"$<TARGET_FILE:libSceFiber>" "${guestSysmoduleRun}/libs/libSceFiber.prx"
COMMAND "${CMAKE_COMMAND}" -E copy_if_different
"$<TARGET_FILE:libSceAudioPropagation>" "${guestSysmoduleRun}/libs/libSceAudioPropagation.prx"
VERBATIM
)
add_dependencies(guest_sysmodule_runtime libSceFiber)
add_dependencies(guest_sysmodule_runtime libSceFiber libSceAudioPropagation)
add_dependencies(guest_sysmodule_tests guest_sysmodule_runtime)
add_test(NAME guest_sysmodule COMMAND guest_sysmodule_tests)
set_tests_properties(guest_sysmodule PROPERTIES WORKING_DIRECTORY ${guestSysmoduleRun})

View File

@ -149,9 +149,20 @@ int main() {
Require(sceSysmoduleGetModuleHandleInternal(kFiberModuleId, &handle) == kModuleUnloaded);
constexpr std::uint16_t kAudioPropagationModuleId = 0x0120;
std::int32_t audioPropagationHandle = -1;
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == kModuleUnloaded);
Require(audioPropagationHandle == -1);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == kModuleUnloaded);
Require(sceSysmoduleLoadModule(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == 0);
Require(audioPropagationHandle >= 0);
void* audioPropagationSymbol = nullptr;
Require(sceKernelDlsym(audioPropagationHandle, "sceAudioPropagationSystemCreate", &audioPropagationSymbol) == 0);
Require(audioPropagationSymbol != nullptr);
Require(sceSysmoduleUnloadModule(kAudioPropagationModuleId) == 0);
Require(sceSysmoduleIsLoaded(kAudioPropagationModuleId) == kModuleUnloaded);
Require(sceSysmoduleGetModuleHandleInternal(kAudioPropagationModuleId, &audioPropagationHandle) == kModuleUnloaded);
}