Commit 7494225e authored by Markus Kauppila's avatar Markus Kauppila

Plain logger refined.

parent fd3b97e2
...@@ -57,7 +57,6 @@ _TestCaseInit(const int enable_xml_logging) ...@@ -57,7 +57,6 @@ _TestCaseInit(const int enable_xml_logging)
int int
_TestCaseQuit() _TestCaseQuit()
{ {
//printf("Asserts: passed %d, failed %d\n", _testAssertsPassed, _testAssertsFailed);
AssertSummary(_testAssertsFailed + _testAssertsPassed, AssertSummary(_testAssertsFailed + _testAssertsPassed,
_testAssertsFailed, _testAssertsPassed, time(0)); _testAssertsFailed, _testAssertsPassed, time(0));
...@@ -78,14 +77,13 @@ AssertEquals(Uint32 expected, Uint32 actual, char* message, ...) ...@@ -78,14 +77,13 @@ AssertEquals(Uint32 expected, Uint32 actual, char* message, ...)
va_start( args, message ); va_start( args, message );
SDL_vsnprintf( buf, sizeof(buf), message, args ); SDL_vsnprintf( buf, sizeof(buf), message, args );
va_end( args ); va_end( args );
//printf("AssertEquals failed: expected %d, got %d; %s\n", expected, actual, buf); AssertWithValues("AssertEquals", 0, buf, actual, expected, time(0));
Assert("AssertEquals", 0, buf, time(0));
_testReturnValue = 1; _testReturnValue = 1;
_testAssertsFailed++; _testAssertsFailed++;
} else { } else {
//printf("AssertEquals passed\n"); AssertWithValues("AssertEquals", 1, "AssertEquals passed",
Assert("AssertEquals", 1, "AssertEquals passed", time(0)); actual, expected, time(0));
_testAssertsPassed++; _testAssertsPassed++;
} }
......
...@@ -18,6 +18,7 @@ SuiteEndedFp SuiteEnded = 0; ...@@ -18,6 +18,7 @@ SuiteEndedFp SuiteEnded = 0;
TestStartedFp TestStarted = 0; TestStartedFp TestStarted = 0;
TestEndedFp TestEnded = 0; TestEndedFp TestEnded = 0;
AssertFp Assert = 0; AssertFp Assert = 0;
AssertWithValuesFp AssertWithValues = 0;
AssertSummaryFp AssertSummary = 0; AssertSummaryFp AssertSummary = 0;
LogFp Log = 0; LogFp Log = 0;
...@@ -34,6 +35,7 @@ SetupXMLLogger() ...@@ -34,6 +35,7 @@ SetupXMLLogger()
TestEnded = XMLTestEnded; TestEnded = XMLTestEnded;
Assert = XMLAssert; Assert = XMLAssert;
AssertWithValues = XMLAssertWithValues;
AssertSummary = XMLAssertSummary; AssertSummary = XMLAssertSummary;
Log = XMLLog; Log = XMLLog;
...@@ -52,11 +54,45 @@ SetupPlainLogger() ...@@ -52,11 +54,45 @@ SetupPlainLogger()
TestEnded = PlainTestEnded; TestEnded = PlainTestEnded;
Assert = PlainAssert; Assert = PlainAssert;
AssertWithValues = PlainAssertWithValues;
AssertSummary = PlainAssertSummary; AssertSummary = PlainAssertSummary;
Log = PlainLog; Log = PlainLog;
} }
char *IntToString(const int integer) {
static char buffer[sizeof(int) * 8 + 1]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%d", integer);
return buffer;
}
char *DoubleToString(const double decimal) {
static char buffer[sizeof(double) * 8 + 1]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%.5f", decimal);
return buffer;
}
char *TimestampToString(const time_t timestamp) {
static char buffer[1024];
//char *buffer = SDL_malloc(1024);
memset(buffer, 0, 1024);
time_t copy = timestamp;
struct tm *local = localtime(&copy);
strftime(buffer, 1024, "%a %Y-%m-%d %H:%M:%S %Z", local);
return buffer;
}
#if 0 #if 0
/*! /*!
* Test app for logging functionality * Test app for logging functionality
......
...@@ -46,10 +46,14 @@ typedef void (*TestEndedFp)(const char *testName, const char *suiteName, int tes ...@@ -46,10 +46,14 @@ typedef void (*TestEndedFp)(const char *testName, const char *suiteName, int tes
*/ */
typedef void (*AssertFp)(const char *assertName, int assertResult, typedef void (*AssertFp)(const char *assertName, int assertResult,
const char *assertMessage, time_t eventTime); const char *assertMessage, time_t eventTime);
typedef void (*AssertWithValuesFp)(const char *assertName, int assertResult,
const char *assertMessage, int actualValue, int excpected,
time_t eventTime);
typedef void (*AssertSummaryFp)(int numAsserts, int numAssertsFailed, typedef void (*AssertSummaryFp)(int numAsserts, int numAssertsFailed,
int numAssertsPass, time_t eventTime); int numAssertsPass, time_t eventTime);
typedef void (*LogFp)(const char *logMessage, time_t eventTime); typedef void (*LogFp)(const char *logMessage, time_t eventTime);
...@@ -60,7 +64,34 @@ extern SuiteEndedFp SuiteEnded; ...@@ -60,7 +64,34 @@ extern SuiteEndedFp SuiteEnded;
extern TestStartedFp TestStarted; extern TestStartedFp TestStarted;
extern TestEndedFp TestEnded; extern TestEndedFp TestEnded;
extern AssertFp Assert; extern AssertFp Assert;
extern AssertWithValuesFp AssertWithValues;
extern AssertSummaryFp AssertSummary; extern AssertSummaryFp AssertSummary;
extern LogFp Log; extern LogFp Log;
/*!
* Helper functions. Turns the given integer in to a string
*
* \param integer The converted integer
* \returns Given integer as string
*/
char *IntToString(const int integer);
/*!
* Helper functions. Turns the given double value in to a string
*
* \param integer The converted double value
* \returns Given double value as string
*/
char *DoubleToString(const double decimal);
/*!
* Converts unix timestamp to it's ascii presentation
*
* \param timestamp Timestamp
* \return Ascii presentation
*/
char *TimestampToString(const time_t timestamp);
#endif #endif
...@@ -10,8 +10,9 @@ ...@@ -10,8 +10,9 @@
/*! /*!
* Pritns out the output of the logger * Prints out the output of the logger
* \return Possible error value (\todo) *
* \param message The message to be printed out
*/ */
int int
Output(const char *message, ...) Output(const char *message, ...)
...@@ -22,22 +23,30 @@ Output(const char *message, ...) ...@@ -22,22 +23,30 @@ Output(const char *message, ...)
char buffer[1024]; char buffer[1024];
SDL_vsnprintf(buffer, sizeof(buffer), message, list); SDL_vsnprintf(buffer, sizeof(buffer), message, list);
fprintf(stderr, "%s\n", buffer); fprintf(stdout, "%s\n", buffer);
fflush(stderr); fflush(stdout);
} }
void void
PlainRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime) PlainRunStarted(int parameterCount, char *runnerParameters[], time_t eventTime)
{ {
Output("Test run started"); /*
Output("Given command line options: %s", "add options"); Output("Test run started with following parameters\n");
int counter = 0;
for(counter = 0; counter < parameterCount; counter++) {
char *parameter = runnerParameters[counter];
Output("\t%s", parameter);
}
*/
} }
void void
PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount, PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
time_t endTime, double totalRuntime) time_t endTime, double totalRuntime)
{ {
Output("Ran %d tests in %0.5f seconds.", testCount, totalRuntime); Output("\nRan %d tests in %0.5f seconds from %d suites.",
testCount, totalRuntime, suiteCount);
Output("%d tests passed", testPassCount); Output("%d tests passed", testPassCount);
Output("%d tests failed", testFailCount); Output("%d tests failed", testFailCount);
...@@ -46,7 +55,7 @@ PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCoun ...@@ -46,7 +55,7 @@ PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCoun
void void
PlainSuiteStarted(const char *suiteName, time_t eventTime) PlainSuiteStarted(const char *suiteName, time_t eventTime)
{ {
Output("Executing tests in %s", suiteName); Output("Executing tests from %s", suiteName);
} }
void void
...@@ -59,19 +68,35 @@ PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped, ...@@ -59,19 +68,35 @@ PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
void void
PlainTestStarted(const char *testName, const char *suiteName, const char *testDescription, time_t startTime) PlainTestStarted(const char *testName, const char *suiteName, const char *testDescription, time_t startTime)
{ {
Output("test %s (in %s) started", testName, suiteName); Output("%s (in %s) started", testName, suiteName);
} }
void void
PlainTestEnded(const char *testName, const char *suiteName, PlainTestEnded(const char *testName, const char *suiteName,
int testResult, time_t endTime, double totalRuntime) int testResult, time_t endTime, double totalRuntime)
{ {
if(testResult) {
if(testResult == 2) {
Output("%s: failed -> no assert");
} else {
Output("%s: failed");
}
} else {
Output("%s: ok", testName); Output("%s: ok", testName);
}
} }
void void
PlainAssert(const char *assertName, int assertResult, const char *assertMessage, PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime) time_t eventTime)
{
const char *result = (assertResult) ? "passed" : "failed";
Output("%s: %s", assertName, assertMessage);
}
void
PlainAssertWithValues(const char *assertName, int assertResult, const char *assertMessage,
int actualValue, int excpected, time_t eventTime)
{ {
const char *result = (assertResult) ? "passed" : "failed"; const char *result = (assertResult) ? "passed" : "failed";
Output("%s %d: %s", assertName, assertResult, assertMessage); Output("%s %d: %s", assertName, assertResult, assertMessage);
...@@ -80,7 +105,8 @@ PlainAssert(const char *assertName, int assertResult, const char *assertMessage, ...@@ -80,7 +105,8 @@ PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
void void
PlainAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime) PlainAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime)
{ {
Output("Asserts:%d", numAsserts); Output("Assert summary: %d failed, %d passed (total: %d)",
numAssertsFailed, numAssertsPass, numAsserts);
} }
void void
......
...@@ -23,6 +23,9 @@ void PlainTestEnded(const char *testName, const char *suiteName, ...@@ -23,6 +23,9 @@ void PlainTestEnded(const char *testName, const char *suiteName,
void PlainAssert(const char *assertName, int assertResult, const char *assertMessage, void PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime); time_t eventTime);
void PlainAssertWithValues(const char *assertName, int assertResult, const char *assertMessage,
int actualValue, int excpected, time_t eventTime);
void PlainAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime); void PlainAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime);
......
...@@ -29,55 +29,6 @@ ...@@ -29,55 +29,6 @@
#include "xml_logger.h" #include "xml_logger.h"
/*!
* Helper functions. Turns the given integer in to a string
*
* \param integer The converted integer
* \returns Given integer as string
*/
char *IntToString(const int integer) {
static char buffer[sizeof(int) * 8 + 1]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%d", integer);
return buffer;
}
/*!
* Helper functions. Turns the given double value in to a string
*
* \param integer The converted double value
* \returns Given double value as string
*/
char *DoubleToString(const double decimal) {
static char buffer[sizeof(double) * 8 + 1]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%.5f", decimal);
return buffer;
}
/*!
* Converts unix timestamp to it's ascii presentation
*
* \param timestamp Timestamp
* \return Ascii presentation
*/
char *TimestampToString(const time_t timestamp) {
static char buffer[1024];
//char *buffer = SDL_malloc(1024);
memset(buffer, 0, 1024);
time_t copy = timestamp;
struct tm *local = localtime(&copy);
strftime(buffer, 1024, "%a %Y-%m-%d %H:%M:%S %Z", local);
return buffer;
}
static int indentLevel; static int indentLevel;
//! Constants for XMLOuputters EOL parameter //! Constants for XMLOuputters EOL parameter
...@@ -397,7 +348,7 @@ XMLTestEnded(const char *testName, const char *suiteName, ...@@ -397,7 +348,7 @@ XMLTestEnded(const char *testName, const char *suiteName,
if(testResult) { if(testResult) {
if(testResult == 2) { if(testResult == 2) {
output = XMLAddContent("failed -> no assert"); output = XMLAddContent("failed. No assert");
} else { } else {
output = XMLAddContent("failed"); output = XMLAddContent("failed");
} }
...@@ -439,9 +390,6 @@ XMLTestEnded(const char *testName, const char *suiteName, ...@@ -439,9 +390,6 @@ XMLTestEnded(const char *testName, const char *suiteName,
XMLOutputter(--indentLevel, YES, output); XMLOutputter(--indentLevel, YES, output);
SDL_free(output); SDL_free(output);
//! \todo add endTime and TotalRuntime
output = XMLCloseElement("test"); output = XMLCloseElement("test");
XMLOutputter(--indentLevel, YES, output); XMLOutputter(--indentLevel, YES, output);
SDL_free(output); SDL_free(output);
...@@ -499,6 +447,59 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage, ...@@ -499,6 +447,59 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
SDL_free(output); SDL_free(output);
} }
void
XMLAssertWithValues(const char *assertName, int assertResult, const char *assertMessage,
int actualValue, int excpected, time_t eventTime)
{
char *output = XMLOpenElement("assert");
XMLOutputter(indentLevel++, YES, output);
SDL_free(output);
// log assert result
output = XMLOpenElement("result");
XMLOutputter(indentLevel++, NO, output);
SDL_free(output);
output = XMLAddContent((assertResult) ? "pass" : "failure");
XMLOutputter(indentLevel, NO, output);
SDL_free(output);
output = XMLCloseElement("result");
XMLOutputter(--indentLevel, YES, output);
SDL_free(output);
// log assert message
output = XMLOpenElement("message");
XMLOutputter(indentLevel++, NO, output);
SDL_free(output);
output = XMLAddContent(assertMessage);
XMLOutputter(indentLevel, NO, output);
SDL_free(output);
output = XMLCloseElement("message");
XMLOutputter(--indentLevel, YES, output);
SDL_free(output);
// log event time
output = XMLOpenElement("eventTime");
XMLOutputter(indentLevel++, NO, output);
SDL_free(output);
output = XMLAddContent(TimestampToString(eventTime));
XMLOutputter(indentLevel, NO, output);
SDL_free(output);
output = XMLCloseElement("eventTime");
XMLOutputter(--indentLevel, YES, output);
SDL_free(output);
output = XMLCloseElement("assert");
XMLOutputter(--indentLevel, YES, output);
SDL_free(output);
}
void void
XMLAssertSummary(int numAsserts, int numAssertsFailed, XMLAssertSummary(int numAsserts, int numAssertsFailed,
int numAssertsPass, time_t eventTime) int numAssertsPass, time_t eventTime)
......
...@@ -21,6 +21,10 @@ void XMLTestEnded(const char *testName, const char *suiteName, ...@@ -21,6 +21,10 @@ void XMLTestEnded(const char *testName, const char *suiteName,
void XMLAssert(const char *assertName, int assertResult, const char *assertMessage, void XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime); time_t eventTime);
void XMLAssertWithValues(const char *assertName, int assertResult, const char *assertMessage,
int actualValue, int excpected, time_t eventTime);
void XMLAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime); void XMLAssertSummary(int numAsserts, int numAssertsFailed, int numAssertsPass, time_t eventTime);
void XMLLog(const char *logMessage, time_t eventTime); void XMLLog(const char *logMessage, time_t eventTime);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment