Newer
Older
Import / research / ui / TweakableProperties / 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) {
		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