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/misc.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++++ engines/testbed/misc.h | 65 +++++++++++++++++++++++++++++++++ engines/testbed/module.mk | 1 + engines/testbed/testbed.cpp | 4 ++ 4 files changed, 159 insertions(+) create mode 100644 engines/testbed/misc.cpp create mode 100644 engines/testbed/misc.h (limited to 'engines/testbed') diff --git a/engines/testbed/misc.cpp b/engines/testbed/misc.cpp new file mode 100644 index 0000000000..9c722e41a3 --- /dev/null +++ b/engines/testbed/misc.cpp @@ -0,0 +1,89 @@ +/* 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 "testbed/misc.h" + +namespace Testbed { + +void MiscTests::getHumanReadableFormat(TimeDate &td, Common::String &date) { + // XXX: can use snprintf? + char strDate[100]; + snprintf(strDate, 100, "%d:%d:%d on %d/%d/%d (dd/mm/yy)", td.tm_hour, td.tm_min, td.tm_sec, td.tm_mday, td.tm_mon, td.tm_year); + date = strDate; + return; +} + +bool MiscTests::testDateTime() { + TimeDate t1, t2; + g_system->getTimeAndDate(t1); + printf("LOG: Current Time and Date: "); + Common::String dateTimeNow; + getHumanReadableFormat(t1, dateTimeNow); + printf("%s\n", dateTimeNow.c_str()); + + if (Testsuite::isInteractive) { + // Directly verify date + dateTimeNow = "We expect the current date time to be " + dateTimeNow; + Testsuite::clearScreen(); + if (Testsuite::handleInteractiveInput(dateTimeNow, "Correct!", "Wrong", kOptionRight)) { + return false; + } + } + + // Now, Put some delay + g_system->delayMillis(2000); + g_system->getTimeAndDate(t2); + printf("LOG: Time and Date 2s later: "); + getHumanReadableFormat(t2, dateTimeNow); + printf("%s\n", dateTimeNow.c_str()); + + if (t1.tm_year == t2.tm_year && t1.tm_mon == t2.tm_mon && t1.tm_mday == t2.tm_mday) { + if (t1.tm_mon == t2.tm_mon && t1.tm_year == t2.tm_year){ + // Ignore lag due to processing time + if (t1.tm_sec + 2 == t2.tm_sec) { + return true; + } + } + } + return false; +} + +bool MiscTests::testTimers() { + return true; +} + +bool MiscTests::testMutexes() { + return true; +} + +MiscTestSuite::MiscTestSuite() { + addTest("Date/time", &MiscTests::testDateTime); + addTest("Timers", &MiscTests::testTimers); + addTest("Mutexes", &MiscTests::testMutexes); +} +const char *MiscTestSuite::getName() const { + return "Misc. Tests: Datetime/Timer/Mutextes"; +} + +} // End of namespace Testbed diff --git a/engines/testbed/misc.h b/engines/testbed/misc.h new file mode 100644 index 0000000000..7568ce34f3 --- /dev/null +++ b/engines/testbed/misc.h @@ -0,0 +1,65 @@ +/* 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$ + */ + +#ifndef TESTBED_MISC_H +#define TESTBED_MISC_H + +#include "testbed/testsuite.h" + + +namespace Testbed { + +namespace MiscTests { + +// Miscellaneous tests include testing datetime, timers and mutexes + +// Helper functions for Misc tests +void getHumanReadableFormat(TimeDate &td, Common::String &date); + +// will contain function declarations for Misc tests +bool testDateTime(); +bool testTimers(); +bool testMutexes(); +// add more here +} + +class MiscTestSuite : public Testsuite { +public: + /** + * The constructor for the MiscTestSuite + * For every test to be executed one must: + * 1) Create a function that would invoke the test + * 2) Add that test to list by executing addTest() + * + * @see addTest() + */ + MiscTestSuite(); + ~MiscTestSuite(){} + const char *getName() const; + +}; + +} // End of namespace Testbed + +#endif diff --git a/engines/testbed/module.mk b/engines/testbed/module.mk index 252064b1b4..d491f601a8 100644 --- a/engines/testbed/module.mk +++ b/engines/testbed/module.mk @@ -4,6 +4,7 @@ MODULE_OBJS := \ detection.o \ fs.o \ graphics.o \ + misc.o \ savegame.o \ testbed.o \ testsuite.o 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