Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed the interface between tests suites and logger.
Browse files Browse the repository at this point in the history
Note: breaks the linux build.
  • Loading branch information
mkauppila committed Jul 6, 2011
1 parent aeb42ca commit f6258ac
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 645 deletions.
14 changes: 2 additions & 12 deletions test/test-automation/SDL_test.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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++;
Expand Down Expand Up @@ -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++;
Expand All @@ -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++;
Expand Down
4 changes: 3 additions & 1 deletion test/test-automation/SDL_test.h
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
54 changes: 0 additions & 54 deletions test/test-automation/logger.c
Expand Up @@ -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;
}
1 change: 1 addition & 0 deletions test/test-automation/logger.h
Expand Up @@ -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;
Expand Down
2 changes: 0 additions & 2 deletions test/test-automation/plain_logger.c
Expand Up @@ -9,8 +9,6 @@
#include "logger_helpers.h"
#include "plain_logger.h"



static int indentLevel;

/*!
Expand Down
54 changes: 48 additions & 6 deletions test/test-automation/runner.c
Expand Up @@ -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);

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
}

Expand All @@ -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);

Expand Down Expand Up @@ -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) {
Expand All @@ -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();
Expand Down

0 comments on commit f6258ac

Please sign in to comment.