XML elements now support single attribute. Fixes here and there.
This commit is contained in:
parent
94c6ae4eab
commit
a3b21d2e4b
8 changed files with 43 additions and 65 deletions
|
@ -27,13 +27,6 @@ LogFp Log = 0;
|
||||||
int
|
int
|
||||||
LogGenericOutput(const char *message)
|
LogGenericOutput(const char *message)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
int depth = indentDepth;
|
|
||||||
while(depth--) {
|
|
||||||
fprintf(stderr, " ");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
fprintf(stderr, "%s\n", message);
|
fprintf(stderr, "%s\n", message);
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
|
@ -73,17 +66,17 @@ main(int argc, char *argv[])
|
||||||
Log = PlainLog;
|
Log = PlainLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
RunStarted(LogGenericOutput, "All the data from harness", 0);
|
RunStarted(LogGenericOutput, "some_data_here", 0);
|
||||||
SuiteStarted("Suite data here", 0);
|
SuiteStarted("Suite data here", 0);
|
||||||
|
|
||||||
TestStarted("test1", "desc", 0);
|
TestStarted("test1", "suite", "desc", 0);
|
||||||
TestEnded("test1", "desc", 0, 0, 0, 0);
|
TestEnded("test1", "suite", 0, 0, 0, 0);
|
||||||
|
|
||||||
//XMLTestStarted("test2", "desc", 0);
|
//XMLTestStarted("test2", "desc", 0);
|
||||||
//XMLTestEnded("test2", "desc", 0, 0, 0, 0);
|
//XMLTestEnded("test2", "desc", 0, 0, 0, 0);
|
||||||
|
|
||||||
SuiteEnded(0, 0, 0, 0.0f, 0);
|
SuiteEnded(0, 0, 0, 0.0f, 0);
|
||||||
RunEnded(0, 0);
|
RunEnded(0, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,14 +32,16 @@ typedef int (*LogOutputFp)(const char *);
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
typedef void (*RunStartedFp)(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
typedef void (*RunStartedFp)(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
||||||
typedef void (*RunEndedFp)(time_t endTime, time_t totalRuntime);
|
typedef void (*RunEndedFp)(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
typedef void (*SuiteStartedFp)(const char *suiteName, time_t eventTime);
|
typedef void (*SuiteStartedFp)(const char *suiteName, time_t eventTime);
|
||||||
typedef void (*SuiteEndedFp)(int testsPassed, int testsFailed, int testsSkipped,
|
typedef void (*SuiteEndedFp)(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
double endTime, time_t totalRuntime);
|
double endTime, time_t totalRuntime);
|
||||||
|
|
||||||
typedef void (*TestStartedFp)(const char *testName, const char *testDescription, time_t startTime);
|
typedef void (*TestStartedFp)(const char *testName, const char *suiteName,
|
||||||
typedef void (*TestEndedFp)(const char *testName, const char *testDescription, int testResult,
|
const char *testDescription, time_t startTime);
|
||||||
|
typedef void (*TestEndedFp)(const char *testName, const char *suiteName, int testResult,
|
||||||
int numAsserts, time_t endTime, time_t totalRuntime);
|
int numAsserts, time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
typedef void (*AssertFp)(const char *assertName, int assertResult, const char *assertMessage,
|
typedef void (*AssertFp)(const char *assertName, int assertResult, const char *assertMessage,
|
||||||
|
|
|
@ -16,7 +16,8 @@ PlainRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t event
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlainRunEnded(time_t endTime, time_t totalRuntime)
|
PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
|
time_t endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
// \todo add total number of tests, suites, pass/failure test count
|
// \todo add total number of tests, suites, pass/failure test count
|
||||||
}
|
}
|
||||||
|
@ -35,12 +36,12 @@ PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlainTestStarted(const char *testName, const char *testDescription, time_t startTime)
|
PlainTestStarted(const char *testName, const char *suiteName, const char *testDescription, time_t startTime)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PlainTestEnded(const char *testName, const char *testDescription,
|
PlainTestEnded(const char *testName, const char *suiteName,
|
||||||
int testResult, int numAsserts, time_t endTime, time_t totalRuntime)
|
int testResult, int numAsserts, time_t endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
printf("Asserts:%d\n", numAsserts);
|
printf("Asserts:%d\n", numAsserts);
|
||||||
|
|
|
@ -5,16 +5,18 @@
|
||||||
|
|
||||||
void PlainRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
void PlainRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
||||||
|
|
||||||
void PlainRunEnded(time_t endTime, time_t totalRuntime);
|
void PlainRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void PlainSuiteStarted(const char *suiteName, time_t eventTime);
|
void PlainSuiteStarted(const char *suiteName, time_t eventTime);
|
||||||
|
|
||||||
void PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
void PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
double endTime, time_t totalRuntime);
|
double endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void PlainTestStarted(const char *testName, const char *testDescription, time_t startTime);
|
void PlainTestStarted(const char *testName, const char *suiteName,
|
||||||
|
const char *testDescription, time_t startTime);
|
||||||
|
|
||||||
void PlainTestEnded(const char *testName, const char *testDescription,
|
void PlainTestEnded(const char *testName, const char *suiteName,
|
||||||
int testResult, int numAsserts, time_t endTime, time_t totalRuntime);
|
int testResult, int numAsserts, time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
|
void PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
|
||||||
|
|
|
@ -18,10 +18,6 @@
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef _XML_C
|
|
||||||
#define _XML_C
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -111,7 +107,7 @@ PrintOpenTags()
|
||||||
/*
|
/*
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Functions to handle XML creation
|
Functions to handle creation of XML elements
|
||||||
|
|
||||||
===================
|
===================
|
||||||
*/
|
*/
|
||||||
|
@ -128,7 +124,7 @@ XMLOpenDocument(const char *rootTag, LogOutputFp log)
|
||||||
|
|
||||||
size_t size = SDL_strlen(rootTag) + 3 + 1; /* one extra for '\0', '<' and '>' */
|
size_t size = SDL_strlen(rootTag) + 3 + 1; /* one extra for '\0', '<' and '>' */
|
||||||
char *buffer = SDL_malloc(size);
|
char *buffer = SDL_malloc(size);
|
||||||
snprintf(buffer, size, "%s%s%s", "<", rootTag, ">");
|
snprintf(buffer, size, "<%s>", rootTag);
|
||||||
logger(buffer);
|
logger(buffer);
|
||||||
SDL_free(buffer);
|
SDL_free(buffer);
|
||||||
|
|
||||||
|
@ -148,7 +144,7 @@ XMLOpenElement(const char *tag)
|
||||||
{
|
{
|
||||||
size_t size = SDL_strlen(tag) + 2 + 1; /* one extra for '\0', '<' */
|
size_t size = SDL_strlen(tag) + 2 + 1; /* one extra for '\0', '<' */
|
||||||
char *buffer = SDL_malloc(size);
|
char *buffer = SDL_malloc(size);
|
||||||
snprintf(buffer, size, "%s%s%s", "<", tag, ">");
|
snprintf(buffer, size, "<%s>", tag);
|
||||||
logger(buffer);
|
logger(buffer);
|
||||||
SDL_free(buffer);
|
SDL_free(buffer);
|
||||||
|
|
||||||
|
@ -157,32 +153,20 @@ XMLOpenElement(const char *tag)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLOpenElementWithAttribute(const char *tag, Attribute attribute)
|
XMLOpenElementWithAttribute(const char *tag, Attribute *attribute)
|
||||||
{
|
{
|
||||||
size_t size = SDL_strlen(tag) + 2 + 1; /* one extra for '\0', '<' */
|
const int bufferSize = 1024;
|
||||||
char *buffer = SDL_malloc(size);
|
char buffer[bufferSize];
|
||||||
|
memset(buffer, 0, bufferSize);
|
||||||
|
|
||||||
|
snprintf(buffer, bufferSize, "<%s %s='%s'>", tag,
|
||||||
|
attribute->attribute, attribute->value);
|
||||||
|
|
||||||
snprintf(buffer, size, "%s%s", "<", tag);
|
|
||||||
logger(buffer);
|
logger(buffer);
|
||||||
SDL_free(buffer);
|
|
||||||
|
|
||||||
AddOpenTag(tag);
|
AddOpenTag(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
//! \todo make this static and remove from interface?
|
|
||||||
void
|
|
||||||
XMLAddAttribute(const char *attribute, const char *value)
|
|
||||||
{
|
|
||||||
size_t attributeSize = SDL_strlen(attribute);
|
|
||||||
size_t valueSize = SDL_strlen(value);
|
|
||||||
|
|
||||||
size_t size = 1 + attributeSize + 3 + valueSize + 1;
|
|
||||||
char *buffer = SDL_malloc(size); // 1 for '='
|
|
||||||
snprintf(buffer, size, " %s%s\"%s\"", attribute, "=", value);
|
|
||||||
logger(buffer);
|
|
||||||
SDL_free(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLAddContent(const char *content)
|
XMLAddContent(const char *content)
|
||||||
{
|
{
|
||||||
|
@ -203,7 +187,7 @@ XMLCloseElement(const char *tag)
|
||||||
|
|
||||||
size_t size = SDL_strlen(openTag->tag) + 4 + 1; /* one extra for '\0', '<', '/' and '>' */
|
size_t size = SDL_strlen(openTag->tag) + 4 + 1; /* one extra for '\0', '<', '/' and '>' */
|
||||||
char *buffer = SDL_malloc(size);
|
char *buffer = SDL_malloc(size);
|
||||||
snprintf(buffer, size, "%s%s%s", "</", openTag->tag, ">");
|
snprintf(buffer, size, "<%s>", openTag->tag);
|
||||||
logger(buffer);
|
logger(buffer);
|
||||||
SDL_free(buffer);
|
SDL_free(buffer);
|
||||||
|
|
||||||
|
@ -226,5 +210,3 @@ XMLCloseElement(const char *tag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
|
/*! Defines attribute for XML elements */
|
||||||
typedef struct Attribute {
|
typedef struct Attribute {
|
||||||
const char *attribute;
|
const char *attribute;
|
||||||
const char *value;
|
const char *value;
|
||||||
|
@ -52,12 +53,9 @@ void XMLCloseDocument();
|
||||||
void XMLOpenElement(const char *tag);
|
void XMLOpenElement(const char *tag);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Add attribute to currently open element.
|
* Opens XML-element with given attributes
|
||||||
*
|
|
||||||
* \param attribute Name of the attribute
|
|
||||||
* \param value Value of the given attribute
|
|
||||||
*/
|
*/
|
||||||
void XMLAddAttribute(const char *attribute, const char *value);
|
void XMLOpenElementWithAttribute(const char *tag, Attribute *attribute);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Add content to currently open element.
|
* Add content to currently open element.
|
||||||
|
|
|
@ -18,9 +18,6 @@
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _XML_LOGGER_C
|
|
||||||
#define _XML_LOGGER_C
|
|
||||||
|
|
||||||
#include "xml.h"
|
#include "xml.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
|
@ -37,7 +34,8 @@ XMLRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTi
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLRunEnded(time_t endTime, time_t totalRuntime)
|
XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
|
time_t endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
XMLCloseDocument("testlog");
|
XMLCloseDocument("testlog");
|
||||||
}
|
}
|
||||||
|
@ -60,11 +58,13 @@ XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLTestStarted(const char *testName, const char *testDescription, time_t startTime)
|
XMLTestStarted(const char *testName, const char *suiteName, const char *testDescription, time_t startTime)
|
||||||
{
|
{
|
||||||
XMLOpenElement("test");
|
XMLOpenElement("test");
|
||||||
|
|
||||||
XMLOpenElement("name");
|
Attribute attribute = {"test", "value"};
|
||||||
|
|
||||||
|
XMLOpenElementWithAttribute("name", &attribute);
|
||||||
XMLAddContent(testName);
|
XMLAddContent(testName);
|
||||||
XMLCloseElement("name");
|
XMLCloseElement("name");
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ XMLTestStarted(const char *testName, const char *testDescription, time_t startTi
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XMLTestEnded(const char *testName, const char *testDescription,
|
XMLTestEnded(const char *testName, const char *suiteName,
|
||||||
int testResult, int numAsserts, time_t endTime, time_t totalRuntime)
|
int testResult, int numAsserts, time_t endTime, time_t totalRuntime)
|
||||||
{
|
{
|
||||||
XMLCloseElement("test");
|
XMLCloseElement("test");
|
||||||
|
@ -108,4 +108,3 @@ XMLLog(const char *logMessage, time_t eventTime)
|
||||||
XMLCloseElement("log");
|
XMLCloseElement("log");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -5,16 +5,17 @@
|
||||||
|
|
||||||
void XMLRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
void XMLRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTime);
|
||||||
|
|
||||||
void XMLRunEnded(time_t endTime, time_t totalRuntime);
|
void XMLRunEnded(int testCount, int suiteCount, int testPassCount, int testFailCount,
|
||||||
|
time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void XMLSuiteStarted(const char *suiteName, time_t eventTime);
|
void XMLSuiteStarted(const char *suiteName, time_t eventTime);
|
||||||
|
|
||||||
void XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
void XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped,
|
||||||
double endTime, time_t totalRuntime);
|
double endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void XMLTestStarted(const char *testName, const char *testDescription, time_t startTime);
|
void XMLTestStarted(const char *testName, const char *suiteName, const char *testDescription, time_t startTime);
|
||||||
|
|
||||||
void XMLTestEnded(const char *testName, const char *testDescription,
|
void XMLTestEnded(const char *testName, const char *suiteName,
|
||||||
int testResult, int numAsserts, time_t endTime, time_t totalRuntime);
|
int testResult, int numAsserts, time_t endTime, time_t totalRuntime);
|
||||||
|
|
||||||
void XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
|
void XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue