Refining the output of XML logger.
This commit is contained in:
parent
2a486b279b
commit
7236f2ab89
7 changed files with 222 additions and 62 deletions
|
@ -23,14 +23,11 @@
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
// Function pointer to function which handles to output
|
|
||||||
typedef int (*LogOutputFp)(const char *, ...);
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Generic logger interface
|
* Generic logger interface
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
typedef void (*RunStartedFp)(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
typedef void (*RunStartedFp)(int parameterCount, char *runnerParameters[], time_t eventTime);
|
||||||
typedef void (*RunEndedFp)(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
typedef void (*RunEndedFp)(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
time_t endTime, time_t totalRuntime);
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
|
@ -54,7 +51,6 @@ typedef void (*AssertSummaryFp)(int numAsserts, int numAssertsFailed, int numAss
|
||||||
|
|
||||||
typedef void (*LogFp)(const char *logMessage, time_t eventTime);
|
typedef void (*LogFp)(const char *logMessage, time_t eventTime);
|
||||||
|
|
||||||
int Output(const char *message, ...);
|
|
||||||
|
|
||||||
extern RunStartedFp RunStarted;
|
extern RunStartedFp RunStarted;
|
||||||
extern RunEndedFp RunEnded;
|
extern RunEndedFp RunEnded;
|
||||||
|
|
|
@ -27,7 +27,7 @@ Output(const char *message, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlainRunStarted(const char *runnerParameters, time_t eventTime)
|
PlainRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime)
|
||||||
{
|
{
|
||||||
Output("Test run started");
|
Output("Test run started");
|
||||||
Output("Given command line options: %s", "add options");
|
Output("Given command line options: %s", "add options");
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
void PlainRunStarted(const char *runnerParameters, time_t eventTime);
|
void PlainRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime);
|
||||||
|
|
||||||
void PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
void PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
time_t endTime, time_t totalRuntime);
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
|
@ -220,19 +220,19 @@ LoadTestCases(TestSuiteReference *suites)
|
||||||
item->testCaseQuit = testCaseQuit;
|
item->testCaseQuit = testCaseQuit;
|
||||||
|
|
||||||
// copy suite name
|
// copy suite name
|
||||||
int length = strlen(suiteReference->name) + 1;
|
int length = SDL_strlen(suiteReference->name) + 1;
|
||||||
item->suiteName = SDL_malloc(length);
|
item->suiteName = SDL_malloc(length);
|
||||||
strcpy(item->suiteName, suiteReference->name);
|
strncpy(item->suiteName, suiteReference->name, length);
|
||||||
|
|
||||||
// copy test name
|
// copy test name
|
||||||
length = strlen(testReference->name) + 1;
|
length = SDL_strlen(testReference->name) + 1;
|
||||||
item->testName = SDL_malloc(length);
|
item->testName = SDL_malloc(length);
|
||||||
strcpy(item->testName, testReference->name);
|
strncpy(item->testName, testReference->name, length);
|
||||||
|
|
||||||
// copy test description
|
// copy test description
|
||||||
length = strlen(testReference->description) + 1;
|
length = SDL_strlen(testReference->description) + 1;
|
||||||
item->description = SDL_malloc(length);
|
item->description = SDL_malloc(length);
|
||||||
strcpy(item->testName, testReference->name);
|
strncpy(item->description, testReference->description, length);
|
||||||
|
|
||||||
item->requirements = testReference->requirements;
|
item->requirements = testReference->requirements;
|
||||||
item->timeout = testReference->timeout;
|
item->timeout = testReference->timeout;
|
||||||
|
@ -637,7 +637,8 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
// print: Testing against SDL version fuu (rev: bar) if verbose == true
|
// print: Testing against SDL version fuu (rev: bar) if verbose == true
|
||||||
|
|
||||||
int failureCount = 0, passCount = 0;
|
int totalTestfailureCount = 0, totalTestPassCount = 0;
|
||||||
|
int testFailureCount = 0, testPassCount = 0, testSkipCount = 0;
|
||||||
char *testSuiteName = NULL;
|
char *testSuiteName = NULL;
|
||||||
int suiteCounter = 0;
|
int suiteCounter = 0;
|
||||||
|
|
||||||
|
@ -670,7 +671,7 @@ main(int argc, char *argv[])
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
RunStarted(Output, NULL, 0);
|
RunStarted(argc, argv, 0);
|
||||||
|
|
||||||
char *currentSuiteName = NULL;
|
char *currentSuiteName = NULL;
|
||||||
|
|
||||||
|
@ -679,50 +680,50 @@ main(int argc, char *argv[])
|
||||||
if(currentSuiteName == NULL) {
|
if(currentSuiteName == NULL) {
|
||||||
currentSuiteName = testItem->suiteName;
|
currentSuiteName = testItem->suiteName;
|
||||||
SuiteStarted(currentSuiteName, 0);
|
SuiteStarted(currentSuiteName, 0);
|
||||||
|
|
||||||
|
testFailureCount = testPassCount = 0;
|
||||||
|
|
||||||
|
suiteCounter++;
|
||||||
|
}
|
||||||
|
else if(strncmp(currentSuiteName, testItem->suiteName, NAME_BUFFER_SIZE) != 0) {
|
||||||
|
SuiteEnded(testPassCount, testFailureCount, testSkipCount, 0.0f, 0);
|
||||||
|
|
||||||
|
currentSuiteName = testItem->suiteName;
|
||||||
|
SuiteStarted(currentSuiteName, 0);
|
||||||
|
|
||||||
|
testFailureCount = testPassCount = 0;
|
||||||
|
|
||||||
|
suiteCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
TestStarted(testItem->testName, testItem->suiteName,
|
TestStarted(testItem->testName, testItem->suiteName,
|
||||||
testItem->description, 0);
|
testItem->description, 0);
|
||||||
|
|
||||||
int retVal = ExecuteTest(testItem);
|
int retVal = ExecuteTest(testItem);
|
||||||
|
|
||||||
if(retVal) {
|
if(retVal) {
|
||||||
failureCount++;
|
totalTestfailureCount++;
|
||||||
if(retVal == 2) {
|
testFailureCount++;
|
||||||
//printf("%s (in %s): FAILED -> No asserts\n", testItem->testName, testItem->suiteName);
|
|
||||||
} else {
|
} else {
|
||||||
//printf("%s (in %s): FAILED\n", testItem->testName, testItem->suiteName);
|
totalTestPassCount++;
|
||||||
}
|
testPassCount++;
|
||||||
} else {
|
|
||||||
passCount++;
|
|
||||||
//printf("%s (in %s): ok\n", testItem->testName, testItem->suiteName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TestEnded(testItem->testName, testItem->suiteName, retVal, 0, 0);
|
TestEnded(testItem->testName, testItem->suiteName, retVal, 0, 0);
|
||||||
|
|
||||||
if(strncmp(currentSuiteName, testItem->suiteName, 100) != 0) {
|
|
||||||
SuiteEnded(0, 0, 0, 0.0f, 0);
|
|
||||||
|
|
||||||
currentSuiteName = testItem->suiteName;
|
|
||||||
SuiteStarted(currentSuiteName, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SuiteEnded(0, 0, 0, 0.0f, 0);
|
if(currentSuiteName) {
|
||||||
|
// \todo if no test are run, this will case incorrect nesting with
|
||||||
|
// xml output
|
||||||
|
SuiteEnded(testPassCount, testFailureCount, testSkipCount, 0.0f, 0);
|
||||||
|
}
|
||||||
|
|
||||||
UnloadTestCases(testCases);
|
UnloadTestCases(testCases);
|
||||||
UnloadTestSuites(suites);
|
UnloadTestSuites(suites);
|
||||||
|
|
||||||
const Uint32 endTicks = SDL_GetTicks();
|
const Uint32 endTicks = SDL_GetTicks();
|
||||||
|
|
||||||
RunEnded(passCount + failureCount, 1 /*add suiteCount */,
|
RunEnded(totalTestPassCount + totalTestfailureCount, suiteCounter,
|
||||||
passCount, failureCount, 0, 0);
|
totalTestPassCount, totalTestfailureCount, 0, 0);
|
||||||
/*
|
|
||||||
printf("Ran %d tests in %0.5f seconds.\n", (passCount + failureCount), (endTicks-startTicks)/1000.0f);
|
|
||||||
|
|
||||||
printf("%d tests passed\n", passCount);
|
|
||||||
printf("%d tests failed\n", failureCount);
|
|
||||||
*/
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
|
|
||||||
/*! Points the function which handles the output */
|
|
||||||
static LogOutputFp logger = 0;
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Defines structure used for "counting" open XML-tags
|
* Defines structure used for "counting" open XML-tags
|
||||||
*/
|
*/
|
||||||
|
@ -88,13 +85,6 @@ RemoveOpenTag(const char *tag)
|
||||||
TagList *openTag = openTags;
|
TagList *openTag = openTags;
|
||||||
SDL_free((char *)openTag->tag);
|
SDL_free((char *)openTag->tag);
|
||||||
|
|
||||||
/*
|
|
||||||
int counter = 0;
|
|
||||||
for(; counter < strlen(buffer); ++counter) {
|
|
||||||
buffer[counter] = tolower(buffer[counter]);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
openTags = openTags->next;
|
openTags = openTags->next;
|
||||||
SDL_free(openTag);
|
SDL_free(openTag);
|
||||||
} else {
|
} else {
|
||||||
|
@ -188,7 +178,6 @@ ToLowerCase(const char *string)
|
||||||
strncpy(ret, string, size);
|
strncpy(ret, string, size);
|
||||||
ret[size] = '\0';
|
ret[size] = '\0';
|
||||||
|
|
||||||
// turn the tag to lower case for case-insensitive comparation
|
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for(; counter < size; ++counter) {
|
for(; counter < size; ++counter) {
|
||||||
ret[counter] = tolower(ret[counter]);
|
ret[counter] = tolower(ret[counter]);
|
||||||
|
@ -283,6 +272,9 @@ XMLCloseElement(const char *tag)
|
||||||
char *ret = SDL_malloc(bufferSize);
|
char *ret = SDL_malloc(bufferSize);
|
||||||
memset(ret, 0, bufferSize);
|
memset(ret, 0, bufferSize);
|
||||||
|
|
||||||
|
// \todo check that element we're trying is actually open,
|
||||||
|
// otherwise it'll case nesting problems
|
||||||
|
|
||||||
// Close the open tags with proper nesting. Closes tags until it finds
|
// Close the open tags with proper nesting. Closes tags until it finds
|
||||||
// the given tag which is the last tag that will be closed
|
// the given tag which is the last tag that will be closed
|
||||||
TagList *openTag = openTags;
|
TagList *openTag = openTags;
|
||||||
|
|
|
@ -60,10 +60,10 @@ static int prevEOL = YES;
|
||||||
* \param the XML element itself
|
* \param the XML element itself
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void XMLOutputter(const int il, int EOL, const char *message) {
|
void XMLOutputter(const int currentIdentLevel, int EOL, const char *message) {
|
||||||
int ident = 0;
|
int ident = 0;
|
||||||
for( ; ident < il && prevEOL; ++ident) {
|
for( ; ident < currentIdentLevel && prevEOL; ++ident) {
|
||||||
printf(" ");
|
printf("\t");
|
||||||
}
|
}
|
||||||
|
|
||||||
prevEOL = EOL;
|
prevEOL = EOL;
|
||||||
|
@ -73,33 +73,141 @@ void XMLOutputter(const int il, int EOL, const char *message) {
|
||||||
} else {
|
} else {
|
||||||
printf("%s", message);
|
printf("%s", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLRunStarted(const char *runnerParameters, time_t eventTime)
|
XMLRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime)
|
||||||
{
|
{
|
||||||
char *output = XMLOpenDocument("testlog");
|
char *output = XMLOpenDocument("testlog");
|
||||||
XMLOutputter(indentLevel++, YES, output);
|
XMLOutputter(indentLevel++, YES, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
output = XMLOpenElement("parameters");
|
output = XMLOpenElement("parameters");
|
||||||
|
XMLOutputter(indentLevel++, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
int counter = 0;
|
||||||
|
for(counter = 0; counter < parameterCount; counter++) {
|
||||||
|
char *parameter = runnerParameters[counter];
|
||||||
|
|
||||||
|
output = XMLOpenElement("parameter");
|
||||||
XMLOutputter(indentLevel++, NO, output);
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
output = XMLAddContent("Add: runner parameter");
|
output = XMLAddContent(parameter);
|
||||||
XMLOutputter(indentLevel, NO, output);
|
XMLOutputter(indentLevel, NO, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("parameter");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
}
|
||||||
|
|
||||||
output = XMLCloseElement("parameters");
|
output = XMLCloseElement("parameters");
|
||||||
XMLOutputter(--indentLevel, YES, output);
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLOpenElement("eventTime");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(eventTime));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("eventTime");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
time_t endTime, time_t totalRuntime)
|
time_t endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
char *output = XMLCloseDocument("testlog");
|
// log suite count
|
||||||
|
char *output = XMLOpenElement("numSuites");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(suiteCount));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("numSuites");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log test count
|
||||||
|
output = XMLOpenElement("numTest");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testCount));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("numTest");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log passed test count
|
||||||
|
output = XMLOpenElement("numPassedTests");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testPassCount));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("numPassedTests");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log failed test count
|
||||||
|
output = XMLOpenElement("numFailedTests");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testFailCount));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("numFailedTests");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
|
||||||
|
// log end timte
|
||||||
|
output = XMLOpenElement("endTime");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(endTime));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("endTime");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log total runtime
|
||||||
|
output = XMLOpenElement("totalRuntime");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(totalRuntime));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("totalRuntime");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
output = XMLCloseDocument("testlog");
|
||||||
XMLOutputter(--indentLevel, YES, output);
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
}
|
}
|
||||||
|
@ -128,11 +236,75 @@ void
|
||||||
XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
double endTime, time_t totalRuntime)
|
double endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
char *output = XMLCloseElement("suite");
|
// log tests passed
|
||||||
|
char *output = XMLOpenElement("testsPassed");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testsPassed));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("testsPassed");
|
||||||
XMLOutputter(--indentLevel, YES, output);
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
//! \todo endTime and totalRuntiem
|
// log tests failed
|
||||||
|
output = XMLOpenElement("testsFailed");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testsFailed));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("testsFailed");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log tests skipped
|
||||||
|
output = XMLOpenElement("testsSkipped");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(testsSkipped));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("testsSkipped");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log tests skipped
|
||||||
|
output = XMLOpenElement("endTime");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(endTime));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("endTime");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
// log total runtime
|
||||||
|
output = XMLOpenElement("totalRuntime");
|
||||||
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLAddContent(IntToString(totalRuntime));
|
||||||
|
XMLOutputter(indentLevel, NO, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
output = XMLCloseElement("totalRuntime");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
|
|
||||||
|
|
||||||
|
output = XMLCloseElement("suite");
|
||||||
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
|
SDL_free(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -156,7 +328,6 @@ XMLTestStarted(const char *testName, const char *suiteName, const char *testDesc
|
||||||
XMLOutputter(--indentLevel, YES, output);
|
XMLOutputter(--indentLevel, YES, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
||||||
|
|
||||||
output = XMLOpenElement("description");
|
output = XMLOpenElement("description");
|
||||||
XMLOutputter(indentLevel++, NO, output);
|
XMLOutputter(indentLevel++, NO, output);
|
||||||
SDL_free(output);
|
SDL_free(output);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
void XMLRunStarted(const char *runnerParameters, time_t eventTime);
|
void XMLRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime);
|
||||||
|
|
||||||
void XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
void XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
time_t endTime, time_t totalRuntime);
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue