diff options
-rw-r--r-- | engines/testbed/config.cpp | 12 | ||||
-rw-r--r-- | engines/testbed/fs.cpp | 16 | ||||
-rw-r--r-- | engines/testbed/fs.h | 3 | ||||
-rw-r--r-- | engines/testbed/testsuite.cpp | 2 |
4 files changed, 24 insertions, 9 deletions
diff --git a/engines/testbed/config.cpp b/engines/testbed/config.cpp index 1cfb1bc395..e8f7c71272 100644 --- a/engines/testbed/config.cpp +++ b/engines/testbed/config.cpp @@ -78,12 +78,18 @@ void TestbedOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, case GUI::kListItemDoubleClickedCmd: ts = _testSuiteArray[_testListDisplay->getSelected()]; if (ts) { + // Toggle status if (ts->isEnabled()) { ts->enable(false); - _testListDisplay->markAsDeselected(_testListDisplay->getSelected()); } else { ts->enable(true); + } + + // Now render status + if (ts->isEnabled()) { _testListDisplay->markAsSelected(_testListDisplay->getSelected()); + } else { + _testListDisplay->markAsDeselected(_testListDisplay->getSelected()); } } break; @@ -181,7 +187,6 @@ void TestbedConfigManager::writeTestbedConfigToStream(Common::WriteStream *ws) { } } _configFileInterface.saveToStream(*ws); - _configFileInterface.clear(); ws->flush(); } @@ -287,6 +292,9 @@ void TestbedConfigManager::selectTestsuites() { TestbedOptionsDialog tbd(_testsuiteList, this); tbd.runModal(); } + + // Clear it to remove entries before next rerun + _configFileInterface.clear(); } } // End of namespace Testbed diff --git a/engines/testbed/fs.cpp b/engines/testbed/fs.cpp index 6bd67022ee..7cae7ef6c1 100644 --- a/engines/testbed/fs.cpp +++ b/engines/testbed/fs.cpp @@ -149,21 +149,23 @@ bool FStests::testWriteFile() { FSTestSuite::FSTestSuite() { - addTest("ReadingFile", &FStests::testReadFile, false); - addTest("WritingFile", &FStests::testWriteFile, false); -} - -void FSTestSuite::enable(bool flag) { + // FS tests depend on Game Data files. + // If those are not found. Disable this testsuite. const Common::String &path = ConfMan.get("path"); Common::FSNode gameRoot(path); Common::FSNode gameIdentificationFile = gameRoot.getChild("TESTBED"); if (!gameIdentificationFile.exists()) { logPrintf("WARNING! : Game Data not found. Skipping FS tests\n"); + _isGameDataFound = false; Testsuite::enable(false); - return; } - Testsuite::enable(flag); + addTest("ReadingFile", &FStests::testReadFile, false); + addTest("WritingFile", &FStests::testWriteFile, false); +} + +void FSTestSuite::enable(bool flag) { + Testsuite::enable(_isGameDataFound & flag); } } // End of namespace Testbed diff --git a/engines/testbed/fs.h b/engines/testbed/fs.h index a5e79c10ce..9977369176 100644 --- a/engines/testbed/fs.h +++ b/engines/testbed/fs.h @@ -67,6 +67,9 @@ public: return "File system tests (Navigation, Read/Write)"; } void enable(bool flag); + +private: + bool _isGameDataFound; }; } // End of namespace Testbed diff --git a/engines/testbed/testsuite.cpp b/engines/testbed/testsuite.cpp index efd31c051d..76d9049a39 100644 --- a/engines/testbed/testsuite.cpp +++ b/engines/testbed/testsuite.cpp @@ -93,6 +93,7 @@ void Testsuite::logPrintf(const char *fmt, ...) { if (_ws) { _ws->writeString(buffer); + _ws->flush(); debugCN(kTestbedLogOutput, "%s", buffer); } else { debugCN(kTestbedLogOutput, "%s", buffer); @@ -110,6 +111,7 @@ void Testsuite::logDetailedPrintf(const char *fmt, ...) { if (_ws) { _ws->writeString(buffer); + _ws->flush(); debugCN(1, kTestbedLogOutput, "%s", buffer); } else { debugCN(1, kTestbedLogOutput, "%s", buffer); |