[Scummvm-cvs-logs] SF.net SVN: scummvm:[51841] scummvm/branches/gsoc2010-testbed/engines/ testbed/fs.cpp
sud03r at users.sourceforge.net
sud03r at users.sourceforge.net
Sat Aug 7 23:01:31 CEST 2010
Revision: 51841
http://scummvm.svn.sourceforge.net/scummvm/?rev=51841&view=rev
Author: sud03r
Date: 2010-08-07 21:01:31 +0000 (Sat, 07 Aug 2010)
Log Message:
-----------
TESTBED: added checks to make sure the object is acquired before use, fixed a typo
Modified Paths:
--------------
scummvm/branches/gsoc2010-testbed/engines/testbed/fs.cpp
Modified: scummvm/branches/gsoc2010-testbed/engines/testbed/fs.cpp
===================================================================
--- scummvm/branches/gsoc2010-testbed/engines/testbed/fs.cpp 2010-08-07 20:35:50 UTC (rev 51840)
+++ scummvm/branches/gsoc2010-testbed/engines/testbed/fs.cpp 2010-08-07 21:01:31 UTC (rev 51841)
@@ -68,8 +68,8 @@
Common::FSDirectory gameRoot(path);
int numFailed = 0;
- if (!gameRoot.getFSNode().isDirectory()) {
- Testsuite::logDetailedPrintf("game Path should be a directory");
+ if (!gameRoot.getFSNode().exists() || !gameRoot.getFSNode().isDirectory()) {
+ Testsuite::logDetailedPrintf("game Path should be an existing directory");
return false;
}
@@ -81,6 +81,11 @@
Common::String fileName = file[i];
Common::FSDirectory *directory = gameRoot.getSubDirectory(dirName);
+ if (!directory) {
+ Testsuite::logDetailedPrintf("Failed to open directory %s during FS tests\n", dirName.c_str());
+ return false;
+ }
+
if (!readDataFromFile(directory, fileName.c_str())) {
Testsuite::logDetailedPrintf("Reading from %s/%s failed\n", dirName.c_str(), fileName.c_str());
numFailed++;
@@ -90,7 +95,12 @@
fileName.toLowercase();
delete directory;
directory = gameRoot.getSubDirectory(dirName);
-
+
+ if (!directory) {
+ Testsuite::logDetailedPrintf("Failed to open directory %s during FS tests\n", dirName.c_str());
+ return false;
+ }
+
if (!readDataFromFile(directory, fileName.c_str())) {
Testsuite::logDetailedPrintf("Reading from %s/%s failed\n", dirName.c_str(), fileName.c_str());
numFailed++;
@@ -100,7 +110,12 @@
fileName.toUppercase();
delete directory;
directory = gameRoot.getSubDirectory(dirName);
-
+
+ if (!directory) {
+ Testsuite::logDetailedPrintf("Failed to open directory %s during FS tests\n", dirName.c_str());
+ return false;
+ }
+
if (!readDataFromFile(directory, fileName.c_str())) {
Testsuite::logDetailedPrintf("Reading from %s/%s failed\n", dirName.c_str(), fileName.c_str());
numFailed++;
@@ -119,6 +134,10 @@
bool FStests::testWriteFile() {
const Common::String &path = ConfMan.get("path");
Common::FSNode gameRoot(path);
+ if (!gameRoot.exists()) {
+ Testsuite::logPrintf("Couldn't open the game data directory %s", path.c_str());
+ return false;
+ }
Common::FSNode fileToWrite = gameRoot.getChild("testbed.out");
@@ -134,6 +153,10 @@
delete ws;
Common::SeekableReadStream *rs = fileToWrite.createReadStream();
+ if (!rs) {
+ Testsuite::logDetailedPrintf("Can't open recently written file testbed.out in game data dir\n");
+ return false;
+ }
Common::String readFromFile = rs->readLine();
delete rs;
@@ -159,6 +182,9 @@
logPrintf("WARNING! : Game Data not found. Skipping FS tests\n");
_isGameDataFound = false;
Testsuite::enable(false);
+ } else {
+ _isGameDataFound = true;
+ Testsuite::enable(true);
}
addTest("ReadingFile", &FStests::testReadFile, false);
addTest("WritingFile", &FStests::testWriteFile, false);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list