Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Fixed the interface between tests suites and logger.

Note: breaks the linux build.
  • Loading branch information
mkauppila committed Jul 6, 2011
1 parent aeb42ca commit f6258acb619e000fef4c7a6b98d7d7dc6a25cafd
@@ -39,16 +39,8 @@ int _testAssertsFailed;
int _testAssertsPassed;

void
_TestCaseInit(const int enableXMLLogging)
_TestCaseInit()
{
// setup logging functions
// rather afwul way to do it, but function pointers didn't work
if(enableXMLLogging) {
SetupXMLLogger();
} else {
SetupPlainLogger();
}

_testReturnValue = 0;
_testAssertsFailed = 0;
_testAssertsPassed = 0;
@@ -82,7 +74,7 @@ AssertEquals(Uint32 expected, Uint32 actual, char* message, ...)
_testReturnValue = 1;
_testAssertsFailed++;
} else {
AssertWithValues("AssertEquals", 1, "AssertEquals passed",
AssertWithValues("AssertEquals", 1, "AssertEquals passed",
actual, expected, time(0));

_testAssertsPassed++;
@@ -122,7 +114,6 @@ AssertPass(char *message, ...)
SDL_vsnprintf( buf, sizeof(buf), message, args );
va_end( args );

//printf("AssertPass: %s\n", buf);
Assert("AssertPass", 1, buf, time(0));

_testAssertsPassed++;
@@ -138,7 +129,6 @@ AssertFail(char *message, ...)
SDL_vsnprintf( buf, sizeof(buf), message, args );
va_end( args );

//printf("AssertFail: %s\n", buf);
Assert("AssertFail", 0, buf, time(0));

_testAssertsFailed++;
@@ -29,6 +29,8 @@ extern int _testReturnValue;
extern int _testAssertsFailed;
extern int _testAssertsPassed;

extern AssertFp testAssert;

// \todo Should these be consts?
#define TEST_ENABLED 1
#define TEST_DISABLED 0
@@ -56,7 +58,7 @@ typedef struct TestCaseReference {
*
* \param enableXMLLogging Whether or not enable xml logging
*/
void _TestCaseInit(const int enableXMLLogging);
void _TestCaseInit();

/*!
* Deinitializes and exits the test case
@@ -10,58 +10,4 @@
#include "xml_logger.h"
#include "plain_logger.h"

//! Pointers to selected logger implementation
RunStartedFp RunStarted = 0;
RunEndedFp RunEnded = 0;
SuiteStartedFp SuiteStarted = 0;
SuiteEndedFp SuiteEnded = 0;
TestStartedFp TestStarted = 0;
TestEndedFp TestEnded = 0;
AssertFp Assert = 0;
AssertWithValuesFp AssertWithValues = 0;
AssertSummaryFp AssertSummary = 0;
LogFp Log = 0;

/*!
* Sets up the XML logger
*/
int
SetupXMLLogger()
{
RunStarted = XMLRunStarted;
RunEnded = XMLRunEnded;

SuiteStarted = XMLSuiteStarted;
SuiteEnded = XMLSuiteEnded;

TestStarted = XMLTestStarted;
TestEnded = XMLTestEnded;

Assert = XMLAssert;
AssertWithValues = XMLAssertWithValues;
AssertSummary = XMLAssertSummary;

Log = XMLLog;
}

/*!
* Sets up the plain logger
*/
int
SetupPlainLogger()
{
RunStarted = PlainRunStarted;
RunEnded = PlainRunEnded;

SuiteStarted = PlainSuiteStarted;
SuiteEnded = PlainSuiteEnded;

TestStarted = PlainTestStarted;
TestEnded = PlainTestEnded;

Assert = PlainAssert;
AssertWithValues = PlainAssertWithValues;
AssertSummary = PlainAssertSummary;

Log = PlainLog;
}
@@ -55,6 +55,7 @@ typedef void (*LogFp)(const char *logMessage, time_t eventTime);


/*! Function pointers to actual logging function implementations */

extern RunStartedFp RunStarted;
extern RunEndedFp RunEnded;
extern SuiteStartedFp SuiteStarted;
@@ -9,8 +9,6 @@
#include "logger_helpers.h"
#include "plain_logger.h"



static int indentLevel;

/*!
@@ -31,12 +31,15 @@
#include "config.h"

#include "SDL_test.h"

#include "plain_logger.h"
#include "xml_logger.h"
#include "logger.h"

//!< Function pointer to a test case function
typedef void (*TestCaseFp)(void *arg);
//!< Function pointer to a test case init function
typedef void (*TestCaseInitFp)(const int);
typedef void (*TestCaseInitFp)(void);
//!< Function pointer to a test case quit function
typedef int (*TestCaseQuitFp)(void);

@@ -117,6 +120,18 @@ TestCaseInitFp LoadTestCaseInitFunction(void *suite);
TestCaseQuitFp LoadTestCaseQuitFunction(void *suite);
TestCaseReference **QueryTestCaseReferences(void *library);

/*! Pointers to selected logger implementation */
RunStartedFp RunStarted = NULL;
RunEndedFp RunEnded = NULL;
SuiteStartedFp SuiteStarted = NULL;
SuiteEndedFp SuiteEnded = NULL;
TestStartedFp TestStarted = NULL;
TestEndedFp TestEnded = NULL;
AssertFp Assert = NULL;
AssertWithValuesFp AssertWithValues = NULL;
AssertSummaryFp AssertSummary = NULL;
LogFp Log = NULL;


/*!
* Goes through the previously loaded test suites and
@@ -501,7 +516,8 @@ HandleChildProcessReturnValue(int stat_lock)
returnValue = WEXITSTATUS(stat_lock);
} else if(WIFSIGNALED(stat_lock)) {
int signal = WTERMSIG(stat_lock);
fprintf(stderr, "FAILURE: test was aborted due to signal no %d\n", signal);
// \todo add this to logger
//fprintf(stderr, "FAILURE: test was aborted due to signal no %d\n", signal);
returnValue = 1;
}

@@ -520,15 +536,15 @@ int
ExecuteTest(TestCase *testItem) {
int retVal = 1;
if(execute_inproc) {
testItem->testCaseInit(xml_enabled);
testItem->testCaseInit();

testItem->testCase(0x0);

retVal = testItem->testCaseQuit();
} else {
int childpid = fork();
if(childpid == 0) {
testItem->testCaseInit(xml_enabled);
testItem->testCaseInit();

testItem->testCase(0x0);

@@ -692,7 +708,20 @@ main(int argc, char *argv[])

void *loggerData = NULL;
if(xml_enabled) {
SetupXMLLogger();
RunStarted = XMLRunStarted;
RunEnded = XMLRunEnded;

SuiteStarted = XMLSuiteStarted;
SuiteEnded = XMLSuiteEnded;

TestStarted = XMLTestStarted;
TestEnded = XMLTestEnded;

Assert = XMLAssert;
AssertWithValues = XMLAssertWithValues;
AssertSummary = XMLAssertSummary;

Log = XMLLog;

char *sheet = NULL;
if(xsl_enabled) {
@@ -705,7 +734,20 @@ main(int argc, char *argv[])

loggerData = sheet;
} else {
SetupPlainLogger();
RunStarted = PlainRunStarted;
RunEnded = PlainRunEnded;

SuiteStarted = PlainSuiteStarted;
SuiteEnded = PlainSuiteEnded;

TestStarted = PlainTestStarted;
TestEnded = PlainTestEnded;

Assert = PlainAssert;
AssertWithValues = PlainAssertWithValues;
AssertSummary = PlainAssertSummary;

Log = PlainLog;
}

const Uint32 startTicks = SDL_GetTicks();

0 comments on commit f6258ac

Please sign in to comment.