Merge pull request #10295 from al3w0f205/test/savedata-convert-null-struct-validation

test(libSceSaveData.native): cover null convert struct and directory name validation
This commit is contained in:
Dean authored and GitHub committed 2026-10-26 19:59:27 +13:00
commit a0ca5bdc71
2 files changed
+14

No files matched your search

@@ -26,6 +26,7 @@ if(BUILD_TESTING)
add_test_executable(guest_savedata_convert_tests ${LIBS_INCLUDE_DIR}/tests/GuestSaveDataConvert.cpp)
target_include_directories(guest_savedata_convert_tests PRIVATE ${LIBS_INCLUDE_DIR})
target_link_libraries(guest_savedata_convert_tests PRIVATE libSceSaveData.native libc)
configure_windows_unwind(guest_savedata_convert_tests)
add_test(NAME guest_savedata_convert COMMAND guest_savedata_convert_tests)
if(WIN32)
set_tests_properties(guest_savedata_convert PROPERTIES ENVIRONMENT_MODIFICATION
+13
View File
@@ -8,6 +8,7 @@
#include <fstream>
#include <iterator>
#include <random>
#include <stdexcept>
#include <string>
#include <system_error>
#include <vector>
@@ -26,6 +27,15 @@ void Check(bool condition, const std::string& what) {
++failures;
}
bool Throws(const SaveDataConvert* convert) {
try {
sceSaveDataConvert(convert);
} catch (const std::runtime_error&) {
return true;
}
return false;
}
int Convert(const char* data, std::size_t size) {
SceSaveDataDirName name{};
std::memcpy(name.data, data, size);
@@ -53,6 +63,9 @@ int main() {
float progress = 0.0f;
Check(sceSaveDataGetConvertProgress(&progress) == SaveDataErrorNotInitialized, "query before initialize fails with not initialized");
Check(Throws(nullptr), "null convert pointer throws");
SaveDataConvert nullDir{};
Check(Throws(&nullDir), "null dir_name throws");
Check(sceSaveDataInitialize3(nullptr) == 0, "SaveData initializes");
Check(sceSaveDataGetConvertProgress(&progress) == 0, "get convert progress succeeds");
Check(progress == 0.0f, "convert progress reports 0.0f initially");