mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
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:
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
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in new issue
Block a user