From cbf491a7b847ba337c0e7d777d917b82b5a5e7b5 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 24 May 2010 17:43:55 +0000 Subject: adding (missed) testbed to engines/, reverting TODO svn-id: r49197 --- engines/testbed/testbed.cpp | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 engines/testbed/testbed.cpp (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp new file mode 100644 index 0000000000..0d0e0c961c --- /dev/null +++ b/engines/testbed/testbed.cpp @@ -0,0 +1,83 @@ +#include "common/scummsys.h" + +#include "common/config-manager.h" +#include "common/debug.h" +#include "common/debug-channels.h" +#include "common/EventRecorder.h" +#include "common/file.h" +#include "common/fs.h" + +#include "engines/util.h" + +#include "testbed/testbed.h" + +namespace Quux { + +QuuxEngine::QuuxEngine(OSystem *syst) + : Engine(syst) { + // Put your engine in a sane state, but do nothing big yet; + // in particular, do not load data from files; rather, if you + // need to do such things, do them from init(). + + // Do not initialize graphics here + + // However this is the place to specify all default directories + const Common::FSNode gameDataDir(ConfMan.get("path")); + SearchMan.addSubDirectoryMatching(gameDataDir, "sound"); + + // Here is the right place to set up the engine specific debug levels + DebugMan.addDebugChannel(kQuuxDebugExample, "example", "this is just an example for a engine specific debug level"); + DebugMan.addDebugChannel(kQuuxDebugExample2, "example2", "also an example"); + + // Don't forget to register your random source + g_eventRec.registerRandomSource(_rnd, "quux"); + + printf("QuuxEngine::QuuxEngine\n"); +} + +QuuxEngine::~QuuxEngine() { + // Dispose your resources here + printf("QuuxEngine::~QuuxEngine\n"); + + // Remove all of our debug levels here + DebugMan.clearAllDebugChannels(); +} + +Common::Error QuuxEngine::run() { + // Initialize graphics using following: + initGraphics(320, 200, false); + + // You could use backend transactions directly as an alternative, + // but it isn't recommended, until you want to handle the error values + // from OSystem::endGFXTransaction yourself. + // This is just an example template: + //_system->beginGFXTransaction(); + // // This setup the graphics mode according to users seetings + // initCommonGFX(false); + // + // // Specify dimensions of game graphics window. + // // In this example: 320x200 + // _system->initSize(320, 200); + //FIXME: You really want to handle + //OSystem::kTransactionSizeChangeFailed here + //_system->endGFXTransaction(); + + // Create debugger console. It requires GFX to be initialized + _console = new Console(this); + + // Additional setup. + printf("QuuxEngine::init\n"); + + // Your main even loop should be (invoked from) here. + printf("QuuxEngine::go: Hello, World!\n"); + + // This test will show up if -d1 and --debugflags=example are specified on the commandline + debugC(1, kQuuxDebugExample, "Example debug call"); + + // This test will show up if --debugflags=example or --debugflags=example2 or both of them and -d3 are specified on the commandline + debugC(3, kQuuxDebugExample | kQuuxDebugExample2, "Example debug call two"); + + return Common::kNoError; +} + +} // End of namespace Quux -- cgit v1.2.3 From a8a8ea31df50d8c6078cb95a949e84a58314d5b9 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 31 May 2010 04:58:19 +0000 Subject: the basic testbed skeleton, removed any trace of quux svn-id: r49341 --- engines/testbed/testbed.cpp | 51 +++++++++++++-------------------------------- 1 file changed, 14 insertions(+), 37 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 0d0e0c961c..f941f0dab4 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -1,19 +1,13 @@ #include "common/scummsys.h" - -#include "common/config-manager.h" -#include "common/debug.h" -#include "common/debug-channels.h" -#include "common/EventRecorder.h" -#include "common/file.h" -#include "common/fs.h" +#include "common/system.h" #include "engines/util.h" #include "testbed/testbed.h" -namespace Quux { +namespace Testbed { -QuuxEngine::QuuxEngine(OSystem *syst) +TestbedEngine::TestbedEngine(OSystem *syst) : Engine(syst) { // Put your engine in a sane state, but do nothing big yet; // in particular, do not load data from files; rather, if you @@ -22,28 +16,18 @@ QuuxEngine::QuuxEngine(OSystem *syst) // Do not initialize graphics here // However this is the place to specify all default directories - const Common::FSNode gameDataDir(ConfMan.get("path")); - SearchMan.addSubDirectoryMatching(gameDataDir, "sound"); - - // Here is the right place to set up the engine specific debug levels - DebugMan.addDebugChannel(kQuuxDebugExample, "example", "this is just an example for a engine specific debug level"); - DebugMan.addDebugChannel(kQuuxDebugExample2, "example2", "also an example"); - // Don't forget to register your random source - g_eventRec.registerRandomSource(_rnd, "quux"); - - printf("QuuxEngine::QuuxEngine\n"); + printf("TestbedEngine::TestbedEngine()\n"); } -QuuxEngine::~QuuxEngine() { +TestbedEngine::~TestbedEngine() { // Dispose your resources here - printf("QuuxEngine::~QuuxEngine\n"); + printf("TestbedEngine::~TestbedEngine()\n"); // Remove all of our debug levels here - DebugMan.clearAllDebugChannels(); } - -Common::Error QuuxEngine::run() { + +Common::Error TestbedEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); @@ -62,22 +46,15 @@ Common::Error QuuxEngine::run() { //OSystem::kTransactionSizeChangeFailed here //_system->endGFXTransaction(); - // Create debugger console. It requires GFX to be initialized - _console = new Console(this); - // Additional setup. - printf("QuuxEngine::init\n"); + printf("TestbedEngine::init\n"); + + printf("Height: %d\n",_system->getHeight()); // Your main even loop should be (invoked from) here. - printf("QuuxEngine::go: Hello, World!\n"); - - // This test will show up if -d1 and --debugflags=example are specified on the commandline - debugC(1, kQuuxDebugExample, "Example debug call"); - - // This test will show up if --debugflags=example or --debugflags=example2 or both of them and -d3 are specified on the commandline - debugC(3, kQuuxDebugExample | kQuuxDebugExample2, "Example debug call two"); - + printf("TestbedEngine::go: Hello, World!\n"); + return Common::kNoError; } -} // End of namespace Quux +} // End of namespace Testbed -- cgit v1.2.3 From da1f5ee54c91cab0e8a7bf1523a7c8318ee63d1d Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 1 Jun 2010 18:06:31 +0000 Subject: created the basic testsuite class, will use it to create the GFX testsuite in graphics.h svn-id: r49379 --- engines/testbed/testbed.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index f941f0dab4..5c71c60a9e 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -49,7 +49,29 @@ Common::Error TestbedEngine::run() { // Additional setup. printf("TestbedEngine::init\n"); - printf("Height: %d\n",_system->getHeight()); + printf("Testing fullscreen mode\n"); + bool isFeaturePresent; + bool isFeatureEnabled; + + isFeaturePresent = _system->hasFeature(OSystem::kFeatureFullscreenMode); + isFeatureEnabled = _system->getFeatureState(OSystem::kFeatureFullscreenMode); + + printf("Testing Feature Presence.. \n"); + if (isFeaturePresent) { + //Toggle + printf("Supported\n"); + + _system->beginGFXTransaction(); + _system->setFeatureState(OSystem::kFeatureFullscreenMode, !isFeatureEnabled); + _system->endGFXTransaction(); + + _system->delayMillis(1000); + + _system->beginGFXTransaction(); + _system->setFeatureState(OSystem::kFeatureFullscreenMode, isFeatureEnabled); + _system->endGFXTransaction(); + } + // Your main even loop should be (invoked from) here. printf("TestbedEngine::go: Hello, World!\n"); -- cgit v1.2.3 From 5df3809d371c1d37d03dfd51689a58420cc337a6 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Wed, 2 Jun 2010 04:45:44 +0000 Subject: enhanced the basic testsuite class svn-id: r49390 --- engines/testbed/testbed.cpp | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 5c71c60a9e..6af17c888e 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -49,29 +49,6 @@ Common::Error TestbedEngine::run() { // Additional setup. printf("TestbedEngine::init\n"); - printf("Testing fullscreen mode\n"); - bool isFeaturePresent; - bool isFeatureEnabled; - - isFeaturePresent = _system->hasFeature(OSystem::kFeatureFullscreenMode); - isFeatureEnabled = _system->getFeatureState(OSystem::kFeatureFullscreenMode); - - printf("Testing Feature Presence.. \n"); - if (isFeaturePresent) { - //Toggle - printf("Supported\n"); - - _system->beginGFXTransaction(); - _system->setFeatureState(OSystem::kFeatureFullscreenMode, !isFeatureEnabled); - _system->endGFXTransaction(); - - _system->delayMillis(1000); - - _system->beginGFXTransaction(); - _system->setFeatureState(OSystem::kFeatureFullscreenMode, isFeatureEnabled); - _system->endGFXTransaction(); - } - // Your main even loop should be (invoked from) here. printf("TestbedEngine::go: Hello, World!\n"); -- cgit v1.2.3 From 91a8d25cea4eb44e55ac5e966b21c89bd044bc49 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Wed, 2 Jun 2010 13:56:04 +0000 Subject: completed the basic testsuite class svn-id: r49392 --- engines/testbed/testbed.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 6af17c888e..6cf69dc176 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -4,6 +4,7 @@ #include "engines/util.h" #include "testbed/testbed.h" +#include "testbed/graphics.h" namespace Testbed { @@ -49,7 +50,9 @@ Common::Error TestbedEngine::run() { // Additional setup. printf("TestbedEngine::init\n"); - + GFXTestSuite ts; + ts.execute(); + // Your main even loop should be (invoked from) here. printf("TestbedEngine::go: Hello, World!\n"); -- cgit v1.2.3 From 1819c8b23b0beac173ed61f777a3656879d020d1 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sun, 6 Jun 2010 14:06:51 +0000 Subject: polished the interface to interact with testsuites, added code to report test results svn-id: r49456 --- engines/testbed/testbed.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 6cf69dc176..4d178d80bd 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -50,11 +50,22 @@ Common::Error TestbedEngine::run() { // Additional setup. printf("TestbedEngine::init\n"); - GFXTestSuite ts; - ts.execute(); + // As of now we are using GUI::MessageDialog for interaction, Test if it works. + // interactive mode could also be modified by a config parameter "non-interactive=1" + // TODO: Implement that - // Your main even loop should be (invoked from) here. - printf("TestbedEngine::go: Hello, World!\n"); + bool interactive; + Common::String prompt("Welcome to the ScummVM testbed! \n \ + It is a framework to test the various ScummVM subsystems namely GFX, Sound, FS, events etc. \n \ + If you are seeing this correctly, it means interactive tests would run on this system :)"); + interactive = Testsuite::handleInteractiveInput(prompt); + + if (interactive) { + printf("Running tests in Interactive Mode\n"); + // Executing GFX Tests + GFXTestSuite ts; + ts.execute(); + } return Common::kNoError; } -- cgit v1.2.3 From 1032b69f51444fb48e9ba9313180e009513fa33e Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 10 Jun 2010 12:40:58 +0000 Subject: some minor changes in the testsuite structure, reduced no. of files per testsuite, fixed some formatting svn-id: r49571 --- engines/testbed/testbed.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 4d178d80bd..fb70acb9df 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -55,10 +55,13 @@ Common::Error TestbedEngine::run() { // TODO: Implement that bool interactive; - Common::String prompt("Welcome to the ScummVM testbed! \n \ - It is a framework to test the various ScummVM subsystems namely GFX, Sound, FS, events etc. \n \ - If you are seeing this correctly, it means interactive tests would run on this system :)"); - interactive = Testsuite::handleInteractiveInput(prompt); + Common::String prompt("Welcome to the ScummVM testbed!\n" + "It is a framework to test the various ScummVM subsystems namely GFX, Sound, FS, events etc.\n" + "If you see this, it means interactive tests would run on this system :)"); + + // To be set from config file + interactive = true; + Testsuite::displayMessage(prompt, "proceed?"); if (interactive) { printf("Running tests in Interactive Mode\n"); -- cgit v1.2.3 From f3dcd38c74c835b0046a849cefa7dafcf1844ccd Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 17 Jun 2010 11:23:51 +0000 Subject: few fixes in GFX tests, added template for FS tests svn-id: r49925 --- engines/testbed/testbed.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index fb70acb9df..789fe7c2ec 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -4,6 +4,7 @@ #include "engines/util.h" #include "testbed/testbed.h" +#include "testbed/fs.h" #include "testbed/graphics.h" namespace Testbed { @@ -60,16 +61,20 @@ Common::Error TestbedEngine::run() { "If you see this, it means interactive tests would run on this system :)"); // To be set from config file - interactive = true; - Testsuite::displayMessage(prompt, "proceed?"); + // XXX: disabling these as of now for fastly testing other tests + interactive = false; if (interactive) { - printf("Running tests in Interactive Mode\n"); + printf("Running Interactive tests as well\n"); + Testsuite::displayMessage(prompt, "proceed?"); // Executing GFX Tests - GFXTestSuite ts; - ts.execute(); + GFXTestSuite gts; + gts.execute(); } + FSTestSuite fts; + fts.execute(); + return Common::kNoError; } -- cgit v1.2.3 From 492f743d47ea47ee9e28368fce1b5505399c011e Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 19 Jun 2010 20:50:10 +0000 Subject: some more changes with GFX and FS tests svn-id: r50064 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 789fe7c2ec..242504ca11 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -62,7 +62,7 @@ Common::Error TestbedEngine::run() { // To be set from config file // XXX: disabling these as of now for fastly testing other tests - interactive = false; + interactive = true; if (interactive) { printf("Running Interactive tests as well\n"); -- cgit v1.2.3 From 0012b23e8471135c7c5dcff5311db60c0164a881 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 22 Jun 2010 14:39:51 +0000 Subject: modified the filesystem test, added a script to directly create the game-data-directory, no zip file required svn-id: r50140 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 242504ca11..789fe7c2ec 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -62,7 +62,7 @@ Common::Error TestbedEngine::run() { // To be set from config file // XXX: disabling these as of now for fastly testing other tests - interactive = true; + interactive = false; if (interactive) { printf("Running Interactive tests as well\n"); -- cgit v1.2.3 From b243a93932ae6111d676799ce891ae63a97b0c94 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 24 Jun 2010 15:27:28 +0000 Subject: added palette rotation test svn-id: r50220 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 789fe7c2ec..242504ca11 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -62,7 +62,7 @@ Common::Error TestbedEngine::run() { // To be set from config file // XXX: disabling these as of now for fastly testing other tests - interactive = false; + interactive = true; if (interactive) { printf("Running Interactive tests as well\n"); -- cgit v1.2.3 From 82bfb7b7bfce5fed14b8d0d1463a01f8cc8156fd Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Fri, 25 Jun 2010 21:03:53 +0000 Subject: added savegame tests svn-id: r50290 --- engines/testbed/testbed.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 242504ca11..8446bda574 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -3,9 +3,10 @@ #include "engines/util.h" -#include "testbed/testbed.h" #include "testbed/fs.h" #include "testbed/graphics.h" +#include "testbed/savegame.h" +#include "testbed/testbed.h" namespace Testbed { @@ -74,6 +75,9 @@ Common::Error TestbedEngine::run() { FSTestSuite fts; fts.execute(); + + SaveGameTestSuite sts; + sts.execute(); return Common::kNoError; } -- cgit v1.2.3 From ba36675351e40b801458cf5563abf5d419922e15 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 26 Jun 2010 12:30:57 +0000 Subject: completed the savefile tests svn-id: r50319 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 8446bda574..707873a307 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -63,7 +63,7 @@ Common::Error TestbedEngine::run() { // To be set from config file // XXX: disabling these as of now for fastly testing other tests - interactive = true; + interactive = false; if (interactive) { printf("Running Interactive tests as well\n"); -- cgit v1.2.3 From 3cc204f461bc08c16b6c8a0920c432355b4a4d74 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 26 Jun 2010 13:07:13 +0000 Subject: the ScummVM header included to all source files svn-id: r50320 --- engines/testbed/testbed.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 707873a307..372b2bf895 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -1,3 +1,27 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + #include "common/scummsys.h" #include "common/system.h" -- cgit v1.2.3 From e537ce48bbbdbb0e322370c984e5f906052db003 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 26 Jun 2010 14:29:50 +0000 Subject: split testsuite.h into testsuite.cpp svn-id: r50322 --- engines/testbed/testbed.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 372b2bf895..4f3acc45d8 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -80,16 +80,16 @@ Common::Error TestbedEngine::run() { // interactive mode could also be modified by a config parameter "non-interactive=1" // TODO: Implement that - bool interactive; Common::String prompt("Welcome to the ScummVM testbed!\n" "It is a framework to test the various ScummVM subsystems namely GFX, Sound, FS, events etc.\n" "If you see this, it means interactive tests would run on this system :)"); // To be set from config file + // By default Interactive tests are enabled // XXX: disabling these as of now for fastly testing other tests - interactive = false; + // Testsuite::isInteractive = false; - if (interactive) { + if (Testsuite::isInteractive) { printf("Running Interactive tests as well\n"); Testsuite::displayMessage(prompt, "proceed?"); // Executing GFX Tests -- cgit v1.2.3 From cf3d5c27742bf1591ea91b05eb18e600c6ce332c Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sun, 27 Jun 2010 21:09:57 +0000 Subject: added files for misc tests, implemented the datetime test svn-id: r50400 --- engines/testbed/testbed.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 4f3acc45d8..47509ec9fb 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -29,6 +29,7 @@ #include "testbed/fs.h" #include "testbed/graphics.h" +#include "testbed/misc.h" #include "testbed/savegame.h" #include "testbed/testbed.h" @@ -103,6 +104,9 @@ Common::Error TestbedEngine::run() { SaveGameTestSuite sts; sts.execute(); + MiscTestSuite mts; + mts.execute(); + return Common::kNoError; } -- cgit v1.2.3 From ef1ba0ea15435d178da7a834a487caf4ff8ef9e5 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 28 Jun 2010 12:58:14 +0000 Subject: added code to test timers and mutexes, some issues with mutexes present although svn-id: r50444 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 47509ec9fb..5731483c66 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -88,7 +88,7 @@ Common::Error TestbedEngine::run() { // To be set from config file // By default Interactive tests are enabled // XXX: disabling these as of now for fastly testing other tests - // Testsuite::isInteractive = false; + Testsuite::isInteractive = false; if (Testsuite::isInteractive) { printf("Running Interactive tests as well\n"); -- cgit v1.2.3 From 68d691bc3e5ee711daad2979c7db325c16e4c1f0 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 29 Jun 2010 22:46:56 +0000 Subject: removed all printfs, added logging feature in form of logPrintf svn-id: r50512 --- engines/testbed/testbed.cpp | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 5731483c66..3bb2490cf3 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -22,9 +22,10 @@ * $Id$ */ +#include "common/debug-channels.h" #include "common/scummsys.h" #include "common/system.h" - + #include "engines/util.h" #include "testbed/fs.h" @@ -32,6 +33,7 @@ #include "testbed/misc.h" #include "testbed/savegame.h" #include "testbed/testbed.h" +#include "testbed/testsuite.h" namespace Testbed { @@ -45,38 +47,21 @@ TestbedEngine::TestbedEngine(OSystem *syst) // However this is the place to specify all default directories - printf("TestbedEngine::TestbedEngine()\n"); + DebugMan.addDebugChannel(kTestbedLogOutput, "LOG", "Log of test results generated by testbed"); + DebugMan.addDebugChannel(kTestbedEngineDebug, "Debug", "Engine-specific debug statements"); + DebugMan.enableDebugChannel("LOG"); } TestbedEngine::~TestbedEngine() { - // Dispose your resources here - printf("TestbedEngine::~TestbedEngine()\n"); - + Testsuite::deleteWriteStream(); // Remove all of our debug levels here + DebugMan.clearAllDebugChannels(); } Common::Error TestbedEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); - // You could use backend transactions directly as an alternative, - // but it isn't recommended, until you want to handle the error values - // from OSystem::endGFXTransaction yourself. - // This is just an example template: - //_system->beginGFXTransaction(); - // // This setup the graphics mode according to users seetings - // initCommonGFX(false); - // - // // Specify dimensions of game graphics window. - // // In this example: 320x200 - // _system->initSize(320, 200); - //FIXME: You really want to handle - //OSystem::kTransactionSizeChangeFailed here - //_system->endGFXTransaction(); - - // Additional setup. - printf("TestbedEngine::init\n"); - // As of now we are using GUI::MessageDialog for interaction, Test if it works. // interactive mode could also be modified by a config parameter "non-interactive=1" // TODO: Implement that @@ -91,8 +76,8 @@ Common::Error TestbedEngine::run() { Testsuite::isInteractive = false; if (Testsuite::isInteractive) { - printf("Running Interactive tests as well\n"); - Testsuite::displayMessage(prompt, "proceed?"); + Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); + Testsuite::displayMessage(prompt, "Proceed?"); // Executing GFX Tests GFXTestSuite gts; gts.execute(); -- cgit v1.2.3 From 9a4bd4220fa000159cb300b2f66301b7150d0bd7 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 1 Jul 2010 12:30:56 +0000 Subject: testbed now keeps a list of executed testsuites svn-id: r50545 --- engines/testbed/testbed.cpp | 62 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 10 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 3bb2490cf3..76ad50baa1 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -33,7 +33,6 @@ #include "testbed/misc.h" #include "testbed/savegame.h" #include "testbed/testbed.h" -#include "testbed/testsuite.h" namespace Testbed { @@ -50,12 +49,55 @@ TestbedEngine::TestbedEngine(OSystem *syst) DebugMan.addDebugChannel(kTestbedLogOutput, "LOG", "Log of test results generated by testbed"); DebugMan.addDebugChannel(kTestbedEngineDebug, "Debug", "Engine-specific debug statements"); DebugMan.enableDebugChannel("LOG"); + + // Initialize testsuites here + // GFX + Testsuite *ts = new GFXTestSuite(); + _testsuiteList.push_back(ts); + // FS + ts = new FSTestSuite(); + _testsuiteList.push_back(ts); + // Savegames + ts = new SaveGameTestSuite(); + _testsuiteList.push_back(ts); + // Misc. + ts = new MiscTestSuite(); + _testsuiteList.push_back(ts); } TestbedEngine::~TestbedEngine() { Testsuite::deleteWriteStream(); // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); + + for (Common::Array::const_iterator i = _testsuiteList.begin(); i != _testsuiteList.end(); ++i) { + delete (*i); + } +} + +void TestbedEngine::enableTestsuite(const char *name, bool enable) { + Common::Array::const_iterator iter; + Common::String tsName(name); + + + for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { + if (tsName.equalsIgnoreCase((*iter)->getName())) { + (*iter)->enable(enable); + break; + } + } + + return; +} + +void TestbedEngine::invokeTestsuites() { + Common::Array::const_iterator iter; + + for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { + if ((*iter)->isEnabled()) { + (*iter)->execute(); + } + } } Common::Error TestbedEngine::run() { @@ -73,9 +115,9 @@ Common::Error TestbedEngine::run() { // To be set from config file // By default Interactive tests are enabled // XXX: disabling these as of now for fastly testing other tests - Testsuite::isInteractive = false; + Testsuite::isSessionInteractive = false; - if (Testsuite::isInteractive) { + if (Testsuite::isSessionInteractive) { Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); Testsuite::displayMessage(prompt, "Proceed?"); // Executing GFX Tests @@ -83,14 +125,14 @@ Common::Error TestbedEngine::run() { gts.execute(); } - FSTestSuite fts; - fts.execute(); - - SaveGameTestSuite sts; - sts.execute(); + // Enable the testsuites you want to execute + enableTestsuite("FS", true); + enableTestsuite("GFX", true); + enableTestsuite("savegames", true); + enableTestsuite("misc", true); + // invoke them + invokeTestsuites(); - MiscTestSuite mts; - mts.execute(); return Common::kNoError; } -- cgit v1.2.3 From 9aae29b8d31a960f9ae7d1a870e27049e40445b6 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 3 Jul 2010 21:14:44 +0000 Subject: added code for mouse and kbd events svn-id: r50633 --- engines/testbed/testbed.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 76ad50baa1..2f5d63dd4f 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -28,6 +28,7 @@ #include "engines/util.h" +#include "testbed/events.h" #include "testbed/fs.h" #include "testbed/graphics.h" #include "testbed/misc.h" @@ -63,6 +64,9 @@ TestbedEngine::TestbedEngine(OSystem *syst) // Misc. ts = new MiscTestSuite(); _testsuiteList.push_back(ts); + // Events + ts = new EventTestSuite(); + _testsuiteList.push_back(ts); } TestbedEngine::~TestbedEngine() { @@ -115,21 +119,20 @@ Common::Error TestbedEngine::run() { // To be set from config file // By default Interactive tests are enabled // XXX: disabling these as of now for fastly testing other tests - Testsuite::isSessionInteractive = false; + // Testsuite::isSessionInteractive = false; if (Testsuite::isSessionInteractive) { Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); Testsuite::displayMessage(prompt, "Proceed?"); - // Executing GFX Tests - GFXTestSuite gts; - gts.execute(); } // Enable the testsuites you want to execute - enableTestsuite("FS", true); - enableTestsuite("GFX", true); - enableTestsuite("savegames", true); - enableTestsuite("misc", true); + // enableTestsuite("FS", true); + // enableTestsuite("GFX", true); + // enableTestsuite("savegames", true); + // enableTestsuite("misc", true); + // enableTestsuite("misc", true); + enableTestsuite("events", true); // invoke them invokeTestsuites(); -- cgit v1.2.3 From f470baa3144115365881a64bbe9bd82ba0e2f506 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 5 Jul 2010 21:29:15 +0000 Subject: made Quit and RTL features working svn-id: r50711 --- engines/testbed/testbed.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 2f5d63dd4f..d6bf92d08a 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -37,6 +37,10 @@ namespace Testbed { +bool TestbedEngine::hasFeature(EngineFeature f) const { + return (f == kSupportsRTL) ? true : false; +} + TestbedEngine::TestbedEngine(OSystem *syst) : Engine(syst) { // Put your engine in a sane state, but do nothing big yet; @@ -128,10 +132,9 @@ Common::Error TestbedEngine::run() { // Enable the testsuites you want to execute // enableTestsuite("FS", true); - // enableTestsuite("GFX", true); + enableTestsuite("GFX", true); // enableTestsuite("savegames", true); // enableTestsuite("misc", true); - // enableTestsuite("misc", true); enableTestsuite("events", true); // invoke them invokeTestsuites(); -- cgit v1.2.3 From 333f704513aa59e9d92cae66a8db0d8235975175 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 8 Jul 2010 20:30:11 +0000 Subject: implemented rainbow palette rotation svn-id: r50748 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index d6bf92d08a..c7899002f6 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -135,7 +135,7 @@ Common::Error TestbedEngine::run() { enableTestsuite("GFX", true); // enableTestsuite("savegames", true); // enableTestsuite("misc", true); - enableTestsuite("events", true); + // enableTestsuite("events", true); // invoke them invokeTestsuites(); -- cgit v1.2.3 From 424c13e9f479a55a57213da9bf1b21621ce715b8 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 10 Jul 2010 19:24:12 +0000 Subject: switched testbed detection code to advance detector, doesn't bails out when game data not found svn-id: r50789 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index c7899002f6..ef241d66f8 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -131,7 +131,7 @@ Common::Error TestbedEngine::run() { } // Enable the testsuites you want to execute - // enableTestsuite("FS", true); + enableTestsuite("FS", true); enableTestsuite("GFX", true); // enableTestsuite("savegames", true); // enableTestsuite("misc", true); -- cgit v1.2.3 From 85958744a2314d5b2556bece162dbf6bc4d54505 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 13 Jul 2010 19:26:45 +0000 Subject: Added code to enable testsuite selection using checkboxes svn-id: r50850 --- engines/testbed/testbed.cpp | 66 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 51 insertions(+), 15 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index ef241d66f8..db1fe6045c 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -27,7 +27,8 @@ #include "common/system.h" #include "engines/util.h" - +#include "gui/options.h" + #include "testbed/events.h" #include "testbed/fs.h" #include "testbed/graphics.h" @@ -83,13 +84,11 @@ TestbedEngine::~TestbedEngine() { } } -void TestbedEngine::enableTestsuite(const char *name, bool enable) { +void TestbedEngine::enableTestsuite(const Common::String &name, bool enable) { Common::Array::const_iterator iter; - Common::String tsName(name); - for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { - if (tsName.equalsIgnoreCase((*iter)->getName())) { + if (name.equalsIgnoreCase((*iter)->getName())) { (*iter)->enable(enable); break; } @@ -108,6 +107,34 @@ void TestbedEngine::invokeTestsuites() { } } +TestbedOptionsDialog::TestbedOptionsDialog() : GUI::OptionsDialog("Select", 120, 120, 360, 200), _hOffset(15), _vOffset(15), _boxWidth(300), _boxHeight(10) { + new GUI::StaticTextWidget(this, _hOffset, _vOffset, _boxWidth, _boxHeight, "Select testsuites to Execute", Graphics::kTextAlignCenter); + _vOffset += 20; + addCheckbox("FS"); + addCheckbox("GFX"); + addCheckbox("Savegames"); + addCheckbox("Misc"); + addCheckbox("Events"); + new GUI::ButtonWidget(this, 80 , _vOffset + 10, 80, 25, "Continue", GUI::kOKCmd, 'C'); + new GUI::ButtonWidget(this, 200, _vOffset + 10, 80, 25, "Exit", GUI::kCloseCmd, 'X'); +} + +TestbedOptionsDialog::~TestbedOptionsDialog() {} + +void TestbedOptionsDialog::addCheckbox(const Common::String &tsName) { + _checkBoxes.push_back(new GUI::CheckboxWidget(this, _hOffset, _vOffset, _boxWidth, _boxHeight, tsName)); + _vOffset += 20; +} + +bool TestbedOptionsDialog::isEnabled(const Common::String &tsName) { + for (uint i = 0; i < _checkBoxes.size(); i++) { + if (_checkBoxes[i]->getLabel().equalsIgnoreCase(tsName)) { + return _checkBoxes[i]->getState(); + } + } + return false; +} + Common::Error TestbedEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); @@ -129,17 +156,26 @@ Common::Error TestbedEngine::run() { Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); Testsuite::displayMessage(prompt, "Proceed?"); } - - // Enable the testsuites you want to execute - enableTestsuite("FS", true); - enableTestsuite("GFX", true); - // enableTestsuite("savegames", true); - // enableTestsuite("misc", true); - // enableTestsuite("events", true); - // invoke them + + // Select testsuites using checkboxes + TestbedOptionsDialog tbd; + tbd.runModal(); + + // check if user wanted to exit. + if (shouldQuit()) { + return Common::kNoError; + } + + // Enable selected testsuites + Common::String tsName; + for (uint i = 0; i < _testsuiteList.size(); i++) { + tsName = _testsuiteList[i]->getName(); + if (tbd.isEnabled(tsName)) { + enableTestsuite(tsName, true); + } + } + invokeTestsuites(); - - return Common::kNoError; } -- cgit v1.2.3 From 0b3201e5e3449f90187938e5dd699535fdaadeb8 Mon Sep 17 00:00:00 2001 From: Jordi Vilalta Prat Date: Wed, 14 Jul 2010 14:12:42 +0000 Subject: Whitespace cleanup (mainly spaces and tabs at the end of line) svn-id: r50885 --- engines/testbed/testbed.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index db1fe6045c..762d67b156 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -35,23 +35,23 @@ #include "testbed/misc.h" #include "testbed/savegame.h" #include "testbed/testbed.h" - + namespace Testbed { - + bool TestbedEngine::hasFeature(EngineFeature f) const { return (f == kSupportsRTL) ? true : false; } -TestbedEngine::TestbedEngine(OSystem *syst) +TestbedEngine::TestbedEngine(OSystem *syst) : Engine(syst) { // Put your engine in a sane state, but do nothing big yet; // in particular, do not load data from files; rather, if you // need to do such things, do them from init(). - + // Do not initialize graphics here - + // However this is the place to specify all default directories - + DebugMan.addDebugChannel(kTestbedLogOutput, "LOG", "Log of test results generated by testbed"); DebugMan.addDebugChannel(kTestbedEngineDebug, "Debug", "Engine-specific debug statements"); DebugMan.enableDebugChannel("LOG"); @@ -73,12 +73,12 @@ TestbedEngine::TestbedEngine(OSystem *syst) ts = new EventTestSuite(); _testsuiteList.push_back(ts); } - + TestbedEngine::~TestbedEngine() { Testsuite::deleteWriteStream(); // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); - + for (Common::Array::const_iterator i = _testsuiteList.begin(); i != _testsuiteList.end(); ++i) { delete (*i); } @@ -93,13 +93,13 @@ void TestbedEngine::enableTestsuite(const Common::String &name, bool enable) { break; } } - + return; } void TestbedEngine::invokeTestsuites() { Common::Array::const_iterator iter; - + for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { if ((*iter)->isEnabled()) { (*iter)->execute(); @@ -138,7 +138,7 @@ bool TestbedOptionsDialog::isEnabled(const Common::String &tsName) { Common::Error TestbedEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); - + // As of now we are using GUI::MessageDialog for interaction, Test if it works. // interactive mode could also be modified by a config parameter "non-interactive=1" // TODO: Implement that @@ -153,7 +153,7 @@ Common::Error TestbedEngine::run() { // Testsuite::isSessionInteractive = false; if (Testsuite::isSessionInteractive) { - Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); + Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); Testsuite::displayMessage(prompt, "Proceed?"); } @@ -178,5 +178,5 @@ Common::Error TestbedEngine::run() { invokeTestsuites(); return Common::kNoError; } - + } // End of namespace Testbed -- cgit v1.2.3 From 555acf4ba17898c0192c262f9dae45ab43a47185 Mon Sep 17 00:00:00 2001 From: Jordi Vilalta Prat Date: Wed, 14 Jul 2010 19:44:51 +0000 Subject: Some code formatting fixes svn-id: r50893 --- engines/testbed/testbed.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 762d67b156..3898040a21 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -79,13 +79,13 @@ TestbedEngine::~TestbedEngine() { // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); - for (Common::Array::const_iterator i = _testsuiteList.begin(); i != _testsuiteList.end(); ++i) { + for (Common::Array::const_iterator i = _testsuiteList.begin(); i != _testsuiteList.end(); ++i) { delete (*i); } } void TestbedEngine::enableTestsuite(const Common::String &name, bool enable) { - Common::Array::const_iterator iter; + Common::Array::const_iterator iter; for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { if (name.equalsIgnoreCase((*iter)->getName())) { @@ -98,13 +98,13 @@ void TestbedEngine::enableTestsuite(const Common::String &name, bool enable) { } void TestbedEngine::invokeTestsuites() { - Common::Array::const_iterator iter; + Common::Array::const_iterator iter; for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { if ((*iter)->isEnabled()) { (*iter)->execute(); - } } + } } TestbedOptionsDialog::TestbedOptionsDialog() : GUI::OptionsDialog("Select", 120, 120, 360, 200), _hOffset(15), _vOffset(15), _boxWidth(300), _boxHeight(10) { -- cgit v1.2.3 From 407d65068a79693f42836c36d6394ef310b5238f Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Thu, 15 Jul 2010 18:51:56 +0000 Subject: separated testsuite configuration to another class svn-id: r50918 --- engines/testbed/testbed.cpp | 76 ++------------------------------------------- 1 file changed, 3 insertions(+), 73 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 3898040a21..bb3655a557 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -27,8 +27,8 @@ #include "common/system.h" #include "engines/util.h" -#include "gui/options.h" +#include "testbed/config.h" #include "testbed/events.h" #include "testbed/fs.h" #include "testbed/graphics.h" @@ -84,19 +84,6 @@ TestbedEngine::~TestbedEngine() { } } -void TestbedEngine::enableTestsuite(const Common::String &name, bool enable) { - Common::Array::const_iterator iter; - - for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { - if (name.equalsIgnoreCase((*iter)->getName())) { - (*iter)->enable(enable); - break; - } - } - - return; -} - void TestbedEngine::invokeTestsuites() { Common::Array::const_iterator iter; @@ -107,34 +94,6 @@ void TestbedEngine::invokeTestsuites() { } } -TestbedOptionsDialog::TestbedOptionsDialog() : GUI::OptionsDialog("Select", 120, 120, 360, 200), _hOffset(15), _vOffset(15), _boxWidth(300), _boxHeight(10) { - new GUI::StaticTextWidget(this, _hOffset, _vOffset, _boxWidth, _boxHeight, "Select testsuites to Execute", Graphics::kTextAlignCenter); - _vOffset += 20; - addCheckbox("FS"); - addCheckbox("GFX"); - addCheckbox("Savegames"); - addCheckbox("Misc"); - addCheckbox("Events"); - new GUI::ButtonWidget(this, 80 , _vOffset + 10, 80, 25, "Continue", GUI::kOKCmd, 'C'); - new GUI::ButtonWidget(this, 200, _vOffset + 10, 80, 25, "Exit", GUI::kCloseCmd, 'X'); -} - -TestbedOptionsDialog::~TestbedOptionsDialog() {} - -void TestbedOptionsDialog::addCheckbox(const Common::String &tsName) { - _checkBoxes.push_back(new GUI::CheckboxWidget(this, _hOffset, _vOffset, _boxWidth, _boxHeight, tsName)); - _vOffset += 20; -} - -bool TestbedOptionsDialog::isEnabled(const Common::String &tsName) { - for (uint i = 0; i < _checkBoxes.size(); i++) { - if (_checkBoxes[i]->getLabel().equalsIgnoreCase(tsName)) { - return _checkBoxes[i]->getState(); - } - } - return false; -} - Common::Error TestbedEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); @@ -143,37 +102,8 @@ Common::Error TestbedEngine::run() { // interactive mode could also be modified by a config parameter "non-interactive=1" // TODO: Implement that - Common::String prompt("Welcome to the ScummVM testbed!\n" - "It is a framework to test the various ScummVM subsystems namely GFX, Sound, FS, events etc.\n" - "If you see this, it means interactive tests would run on this system :)"); - - // To be set from config file - // By default Interactive tests are enabled - // XXX: disabling these as of now for fastly testing other tests - // Testsuite::isSessionInteractive = false; - - if (Testsuite::isSessionInteractive) { - Testsuite::logPrintf("Info! : Interactive tests are also being executed.\n"); - Testsuite::displayMessage(prompt, "Proceed?"); - } - - // Select testsuites using checkboxes - TestbedOptionsDialog tbd; - tbd.runModal(); - - // check if user wanted to exit. - if (shouldQuit()) { - return Common::kNoError; - } - - // Enable selected testsuites - Common::String tsName; - for (uint i = 0; i < _testsuiteList.size(); i++) { - tsName = _testsuiteList[i]->getName(); - if (tbd.isEnabled(tsName)) { - enableTestsuite(tsName, true); - } - } + TestbedConfigManager cfMan(_testsuiteList); + cfMan.selectTestsuites(); invokeTestsuites(); return Common::kNoError; -- cgit v1.2.3 From 07a9a03587ff0df916ac77b9518fdae97ecc4c64 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sun, 18 Jul 2010 07:53:05 +0000 Subject: a few more modifications in the testsuite selection widget svn-id: r50983 --- engines/testbed/testbed.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index bb3655a557..7785bd1a17 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -104,7 +104,12 @@ Common::Error TestbedEngine::run() { TestbedConfigManager cfMan(_testsuiteList); cfMan.selectTestsuites(); - + + // check if user wanted to exit. + if (Engine::shouldQuit()) { + return Common::kNoError; + } + invokeTestsuites(); return Common::kNoError; } -- cgit v1.2.3 From f3defb0de13026f37cd69025064513ffc3d63c11 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 19 Jul 2010 21:12:17 +0000 Subject: added code to display progress of the engine so far svn-id: r51038 --- engines/testbed/testbed.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 7785bd1a17..5702f0356f 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -86,9 +86,12 @@ TestbedEngine::~TestbedEngine() { void TestbedEngine::invokeTestsuites() { Common::Array::const_iterator iter; + uint count = 1; + Common::Point pt = Testsuite::getDisplayRegionCoordinates(); for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { if ((*iter)->isEnabled()) { + Testsuite::updateStats("Testsuite", (*iter)->getName(), count++, _testsuiteList.size(), pt); (*iter)->execute(); } } -- cgit v1.2.3 From 3f2527a48aab2d98bab252a4e77e55c7dcae0e67 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sat, 24 Jul 2010 16:05:19 +0000 Subject: Implemented selection of tests using a config file, config file layout resembles to that of .scummvmrc on linux svn-id: r51248 --- engines/testbed/testbed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 5702f0356f..c7c2fd219d 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -105,7 +105,7 @@ Common::Error TestbedEngine::run() { // interactive mode could also be modified by a config parameter "non-interactive=1" // TODO: Implement that - TestbedConfigManager cfMan(_testsuiteList); + TestbedConfigManager cfMan(_testsuiteList, "testbed.config"); cfMan.selectTestsuites(); // check if user wanted to exit. -- cgit v1.2.3 From 62e6780188748164b4c8422142a87a6961ddbda9 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sun, 25 Jul 2010 19:01:22 +0000 Subject: TESTBED: minor addition of code to enable logging svn-id: r51279 --- engines/testbed/testbed.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index c7c2fd219d..bdf8badaa5 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -107,6 +107,9 @@ Common::Error TestbedEngine::run() { TestbedConfigManager cfMan(_testsuiteList, "testbed.config"); cfMan.selectTestsuites(); + + // Init logging + Testsuite::initLogging(true); // check if user wanted to exit. if (Engine::shouldQuit()) { -- cgit v1.2.3 From 39780f4a6801091fc680c7d55d2a1f7a0a4356be Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Mon, 26 Jul 2010 20:59:50 +0000 Subject: TESTBED: implemented some sample beeps using PCSpeaker emulator for testing sound subsystem svn-id: r51333 --- engines/testbed/testbed.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index bdf8badaa5..7eeb33a70d 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -34,6 +34,7 @@ #include "testbed/graphics.h" #include "testbed/misc.h" #include "testbed/savegame.h" +#include "testbed/sound.h" #include "testbed/testbed.h" namespace Testbed { @@ -72,6 +73,9 @@ TestbedEngine::TestbedEngine(OSystem *syst) // Events ts = new EventTestSuite(); _testsuiteList.push_back(ts); + // Sound + ts = new SoundSubsystemTestSuite(); + _testsuiteList.push_back(ts); } TestbedEngine::~TestbedEngine() { -- cgit v1.2.3 From 26c0547e6741fd57ddce8c2cfcccbe6dd2b54322 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Tue, 27 Jul 2010 09:32:19 +0000 Subject: TESTBED: Updated the progress bar to show count of enabled test/testsuites instead of entire list size svn-id: r51351 --- engines/testbed/testbed.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index 7eeb33a70d..bb9d81d4e8 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -88,14 +88,15 @@ TestbedEngine::~TestbedEngine() { } } -void TestbedEngine::invokeTestsuites() { +void TestbedEngine::invokeTestsuites(TestbedConfigManager &cfMan) { Common::Array::const_iterator iter; uint count = 1; Common::Point pt = Testsuite::getDisplayRegionCoordinates(); + int numSuitesEnabled = cfMan.getNumSuitesEnabled(); for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { if ((*iter)->isEnabled()) { - Testsuite::updateStats("Testsuite", (*iter)->getName(), count++, _testsuiteList.size(), pt); + Testsuite::updateStats("Testsuite", (*iter)->getName(), count++, numSuitesEnabled, pt); (*iter)->execute(); } } @@ -120,7 +121,7 @@ Common::Error TestbedEngine::run() { return Common::kNoError; } - invokeTestsuites(); + invokeTestsuites(cfMan); return Common::kNoError; } -- cgit v1.2.3 From a6e84128c975a220f4c2800a1d937c37e34b6cec Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Fri, 30 Jul 2010 13:54:25 +0000 Subject: TESTBED: generalized the GUI, added code for the end text gui message and option to rerun tests svn-id: r51507 --- engines/testbed/testbed.cpp | 49 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 10 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index bb9d81d4e8..f75785c74e 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -28,7 +28,6 @@ #include "engines/util.h" -#include "testbed/config.h" #include "testbed/events.h" #include "testbed/fs.h" #include "testbed/graphics.h" @@ -39,6 +38,26 @@ namespace Testbed { +TestbedExitDialog::TestbedExitDialog() : TestbedInteractionDialog(80, 60, 400, 170), _rerun(false) { + _xOffset = 25; + _yOffset = 0; + Common::String text = "Here we will have the results of all the tests!"; + addText(350, 20, text, Graphics::kTextAlignCenter, _xOffset, 15); + addButton(200, 20, "Rerun Tests", kCmdRerunTestbed); + addButton(50, 20, "Close", GUI::kCloseCmd, 160, 15); + +} + +void TestbedExitDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) { + switch (cmd) { + case kCmdRerunTestbed : + _rerun = true; + GUI::Dialog::close(); + default: + GUI::Dialog::handleCommand(sender, cmd, data); + } +} + bool TestbedEngine::hasFeature(EngineFeature f) const { return (f == kSupportsRTL) ? true : false; } @@ -95,6 +114,7 @@ void TestbedEngine::invokeTestsuites(TestbedConfigManager &cfMan) { int numSuitesEnabled = cfMan.getNumSuitesEnabled(); for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) { + (*iter)->reset(); if ((*iter)->isEnabled()) { Testsuite::updateStats("Testsuite", (*iter)->getName(), count++, numSuitesEnabled, pt); (*iter)->execute(); @@ -111,17 +131,26 @@ Common::Error TestbedEngine::run() { // TODO: Implement that TestbedConfigManager cfMan(_testsuiteList, "testbed.config"); - cfMan.selectTestsuites(); - - // Init logging - Testsuite::initLogging(true); - // check if user wanted to exit. - if (Engine::shouldQuit()) { - return Common::kNoError; - } + // Keep running if rerun requested + TestbedExitDialog tbDialog; + + do { + Testsuite::clearEntireScreen(); + cfMan.selectTestsuites(); + // Init logging + Testsuite::initLogging(true); + // Check if user wanted to exit. + if (Engine::shouldQuit()) { + return Common::kNoError; + } + + invokeTestsuites(cfMan); + + tbDialog.run(); + + } while (tbDialog.rerunRequired()); - invokeTestsuites(cfMan); return Common::kNoError; } -- cgit v1.2.3 From 717e5f619b6a383cc96cbcd1d87f2584e0a89463 Mon Sep 17 00:00:00 2001 From: Neeraj Kumar Date: Sun, 1 Aug 2010 23:26:38 +0000 Subject: TESTBED: implemented the exit dialog using ListWidget svn-id: r51602 --- engines/testbed/testbed.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'engines/testbed/testbed.cpp') diff --git a/engines/testbed/testbed.cpp b/engines/testbed/testbed.cpp index f75785c74e..ef61cd7c13 100644 --- a/engines/testbed/testbed.cpp +++ b/engines/testbed/testbed.cpp @@ -38,14 +38,26 @@ namespace Testbed { -TestbedExitDialog::TestbedExitDialog() : TestbedInteractionDialog(80, 60, 400, 170), _rerun(false) { +void TestbedExitDialog::init() { _xOffset = 25; _yOffset = 0; - Common::String text = "Here we will have the results of all the tests!"; - addText(350, 20, text, Graphics::kTextAlignCenter, _xOffset, 15); - addButton(200, 20, "Rerun Tests", kCmdRerunTestbed); - addButton(50, 20, "Close", GUI::kCloseCmd, 160, 15); - + Common::String text = "Thank you for using ScummVM testbed! Here are yor summarized results:"; + addText(450, 20, text, Graphics::kTextAlignCenter, _xOffset, 15); + Common::Array strArray; + + for (Common::Array::const_iterator i = _testsuiteList.begin(); i != _testsuiteList.end(); ++i) { + strArray.push_back(Common::String::printf("%s (%d/%d tests failed)", (*i)->getName(), (*i)->getNumTestsFailed(), + (*i)->getNumTestsEnabled())); + } + + addList(0, _yOffset, 500, 200, strArray); + text = "More Details can be viewed in the Log file : " + Testsuite::getLogFile(); + addText(450, 20, text, Graphics::kTextAlignLeft, 0, 0); + text = "Directory : " + Testsuite::getLogDir(); + addText(500, 20, text, Graphics::kTextAlignLeft, 0, 0); + _yOffset += 5; + addButtonXY(_xOffset + 80, _yOffset, 120, 20, "Rerun Tests", kCmdRerunTestbed); + addButtonXY(_xOffset + 240, _yOffset, 60, 20, "Close", GUI::kCloseCmd); } void TestbedExitDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) { @@ -133,7 +145,7 @@ Common::Error TestbedEngine::run() { TestbedConfigManager cfMan(_testsuiteList, "testbed.config"); // Keep running if rerun requested - TestbedExitDialog tbDialog; + TestbedExitDialog tbDialog(_testsuiteList); do { Testsuite::clearEntireScreen(); @@ -146,7 +158,7 @@ Common::Error TestbedEngine::run() { } invokeTestsuites(cfMan); - + tbDialog.init(); tbDialog.run(); } while (tbDialog.rerunRequired()); -- cgit v1.2.3