#include "Test.h"
BEGIN_NAMESPACE
UnitTestBase *g_testListHead = 0;
UnitTestBase::UnitTestBase(const char* name, int a_verbosity)
: testName(name), passCount(0), failCount(0), verbose(a_verbosity), nextTest(g_testListHead)
{
g_testListHead = this;
}
void UnitTestBase::checkHelper(bool res, const char* str, const char* file, int line)
{
if (!res) {
printf("%s(%i): error: Failure in %s: %s\n", file, line, testName, str);
failCount++;
} else {
if (verbose)
printf("Pass in %s: %s\n", testName, str);
passCount++;
}
}
void runUnitTests(int a_verbosity)
{
int totalTestPass = 0;
int totalTestFail = 0;
UnitTestBase* test = g_testListHead;
while (test)
{
if (a_verbosity > test->verbose)
test->verbose = a_verbosity;
test->runTest();
if (test->failCount)
printf("%s Pass/Fail: %i/%i\n", test->testName, test->passCount, test->failCount);
totalTestPass += test->passCount;
totalTestFail += test->failCount;
test = test->nextTest;
}
printf("Total test results, Pass/Fail: %i/%i\n", totalTestPass, totalTestFail);
}
END_NAMESPACE