[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