Newer
Older
Import / research / ui / toolkit / src / Test.cpp
#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) {
    DEBUG_PRINT("%s(%i): error: Failure in %s: %s\n", file, line, testName, str);
    failCount++;
  } else {
    if (verbose)
      DEBUG_PRINT("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)
      DEBUG_PRINT("%s Pass/Fail: %i/%i\n", test->testName, test->passCount, test->failCount);
    totalTestPass += test->passCount;
    totalTestFail += test->failCount;
    test = test->nextTest;
  }
  DEBUG_PRINT("Total test results, Pass/Fail: %i/%i\n", totalTestPass, totalTestFail);
}


END_NAMESPACE