TestExitStatus SaveGametests::testErrorMessages() { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); saveFileMan->clearError(); // Try opening a non existing file readAndVerifyData("tBedSomeNonExistentSaveFile.0", "File doesn't exists!"); Common::Error err = saveFileMan->getError(); if (err.getCode() == Common::kNoError) { // blunder! how come? Testsuite::logDetailedPrintf("SaveFileMan.getError() failed\n"); return kTestFailed; } // Can't actually predict whether which error, kInvalidPath or kPathDoesNotExist or some other? // So just return kTestPassed if some error Testsuite::logDetailedPrintf("getError returned : %s\n", saveFileMan->getErrorDesc().c_str()); return kTestPassed; }
TestExitStatus SaveGametests::testListingSavefile() { Common::SaveFileManager *saveFileMan = g_system->getSavefileManager(); saveFileMan->clearError(); // create some savefiles const char *savefileName[] = {"tBedSavefileToList.0", "tBedSavefileToList.1", "tBedSavefileToList.2"}; writeDataToFile("tBedSavefileToList.0", "Save me!"); writeDataToFile("tBedSavefileToList.1", "Save me!"); writeDataToFile("tBedSavefileToList.2", "Save me!"); Common::Error error = saveFileMan->getError(); if (error != Common::kNoError) { // Abort. Some Error in writing files Testsuite::logDetailedPrintf("Error while creating savefiles: %s\n", Common::errorToString(error)); return kTestFailed; } Common::StringArray savefileList = saveFileMan->listSavefiles("tBedSavefileToList.?"); if (savefileList.size() == ARRAYSIZE(savefileName)) { // Match them exactly // As the order of savefileList may be platform specific, match them exhaustively for (uint i = 0; i < ARRAYSIZE(savefileName); i++) { for (uint j = 0; j < savefileList.size(); j++) { if (savefileList[j].equals(savefileName[i])) { break; } if (savefileList.size() == j) { // A match for this name not found Testsuite::logDetailedPrintf("Listed Names don't match\n"); return kTestFailed; } } } return kTestPassed; } else { Testsuite::logDetailedPrintf("listing Savefiles failed!\n"); return kTestFailed; } return kTestFailed; }