From a3b21d2e4bacb34fdc8aa636bb0f34b1aeef9c91 Mon Sep 17 00:00:00 2001 From: Markus Kauppila Date: Wed, 22 Jun 2011 17:41:37 +0300 Subject: [PATCH] XML elements now support single attribute. Fixes here and there. --- test/test-automation/logger.c | 15 +++-------- test/test-automation/logger.h | 8 +++--- test/test-automation/plain_logger.c | 7 ++--- test/test-automation/plain_logger.h | 8 +++--- test/test-automation/xml.c | 40 ++++++++--------------------- test/test-automation/xml.h | 8 +++--- test/test-automation/xml_logger.c | 15 +++++------ test/test-automation/xml_logger.h | 7 ++--- 8 files changed, 43 insertions(+), 65 deletions(-) diff --git a/test/test-automation/logger.c b/test/test-automation/logger.c index a134a41d4..2060f2b07 100644 --- a/test/test-automation/logger.c +++ b/test/test-automation/logger.c @@ -27,13 +27,6 @@ LogFp Log = 0; int LogGenericOutput(const char *message) { - /* - int depth = indentDepth; - while(depth--) { - fprintf(stderr, " "); - } - */ - fprintf(stderr, "%s\n", message); fflush(stderr); } @@ -73,17 +66,17 @@ main(int argc, char *argv[]) Log = PlainLog; } - RunStarted(LogGenericOutput, "All the data from harness", 0); + RunStarted(LogGenericOutput, "some_data_here", 0); SuiteStarted("Suite data here", 0); - TestStarted("test1", "desc", 0); - TestEnded("test1", "desc", 0, 0, 0, 0); + TestStarted("test1", "suite", "desc", 0); + TestEnded("test1", "suite", 0, 0, 0, 0); //XMLTestStarted("test2", "desc", 0); //XMLTestEnded("test2", "desc", 0, 0, 0, 0); SuiteEnded(0, 0, 0, 0.0f, 0); - RunEnded(0, 0); + RunEnded(0, 0, 0, 0, 0, 0); return 0; } diff --git a/test/test-automation/logger.h b/test/test-automation/logger.h index db84e340f..917c1a757 100644 --- a/test/test-automation/logger.h +++ b/test/test-automation/logger.h @@ -32,14 +32,16 @@ typedef int (*LogOutputFp)(const char *); * */ 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 (*SuiteEndedFp)(int testsPassed, int testsFailed, int testsSkipped, double endTime, time_t totalRuntime); -typedef void (*TestStartedFp)(const char *testName, const char *testDescription, time_t startTime); -typedef void (*TestEndedFp)(const char *testName, const char *testDescription, int testResult, +typedef void (*TestStartedFp)(const char *testName, const char *suiteName, + 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); typedef void (*AssertFp)(const char *assertName, int assertResult, const char *assertMessage, diff --git a/test/test-automation/plain_logger.c b/test/test-automation/plain_logger.c index 8dd6f58a6..1da76e2da 100644 --- a/test/test-automation/plain_logger.c +++ b/test/test-automation/plain_logger.c @@ -16,7 +16,8 @@ PlainRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t event } 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 } @@ -35,12 +36,12 @@ PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped, } 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 -PlainTestEnded(const char *testName, const char *testDescription, +PlainTestEnded(const char *testName, const char *suiteName, int testResult, int numAsserts, time_t endTime, time_t totalRuntime) { printf("Asserts:%d\n", numAsserts); diff --git a/test/test-automation/plain_logger.h b/test/test-automation/plain_logger.h index 05e0f28ee..4bfb9226e 100644 --- a/test/test-automation/plain_logger.h +++ b/test/test-automation/plain_logger.h @@ -5,16 +5,18 @@ 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 PlainSuiteEnded(int testsPassed, int testsFailed, int testsSkipped, 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); void PlainAssert(const char *assertName, int assertResult, const char *assertMessage, diff --git a/test/test-automation/xml.c b/test/test-automation/xml.c index 7b675bfc2..83e647efa 100644 --- a/test/test-automation/xml.c +++ b/test/test-automation/xml.c @@ -18,10 +18,6 @@ 3. This notice may not be removed or altered from any source distribution. */ - -#ifndef _XML_C -#define _XML_C - #include #include #include @@ -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 '>' */ char *buffer = SDL_malloc(size); - snprintf(buffer, size, "%s%s%s", "<", rootTag, ">"); + snprintf(buffer, size, "<%s>", rootTag); logger(buffer); SDL_free(buffer); @@ -148,7 +144,7 @@ XMLOpenElement(const char *tag) { size_t size = SDL_strlen(tag) + 2 + 1; /* one extra for '\0', '<' */ char *buffer = SDL_malloc(size); - snprintf(buffer, size, "%s%s%s", "<", tag, ">"); + snprintf(buffer, size, "<%s>", tag); logger(buffer); SDL_free(buffer); @@ -157,32 +153,20 @@ XMLOpenElement(const char *tag) 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', '<' */ - char *buffer = SDL_malloc(size); + const int bufferSize = 1024; + 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); - SDL_free(buffer); 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 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 '>' */ char *buffer = SDL_malloc(size); - snprintf(buffer, size, "%s%s%s", "tag, ">"); + snprintf(buffer, size, "<%s>", openTag->tag); logger(buffer); SDL_free(buffer); @@ -226,5 +210,3 @@ XMLCloseElement(const char *tag) } } - -#endif diff --git a/test/test-automation/xml.h b/test/test-automation/xml.h index 646fa2e27..a848f5bce 100644 --- a/test/test-automation/xml.h +++ b/test/test-automation/xml.h @@ -23,6 +23,7 @@ #include "logger.h" +/*! Defines attribute for XML elements */ typedef struct Attribute { const char *attribute; const char *value; @@ -52,12 +53,9 @@ void XMLCloseDocument(); void XMLOpenElement(const char *tag); /*! - * Add attribute to currently open element. - * - * \param attribute Name of the attribute - * \param value Value of the given attribute + * Opens XML-element with given attributes */ -void XMLAddAttribute(const char *attribute, const char *value); +void XMLOpenElementWithAttribute(const char *tag, Attribute *attribute); /*! * Add content to currently open element. diff --git a/test/test-automation/xml_logger.c b/test/test-automation/xml_logger.c index fd063c282..db331dcbf 100644 --- a/test/test-automation/xml_logger.c +++ b/test/test-automation/xml_logger.c @@ -18,9 +18,6 @@ 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 "logger.h" @@ -37,7 +34,8 @@ XMLRunStarted(LogOutputFp outputFn, const char *runnerParameters, time_t eventTi } 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"); } @@ -60,11 +58,13 @@ XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped, } 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("name"); + Attribute attribute = {"test", "value"}; + + XMLOpenElementWithAttribute("name", &attribute); XMLAddContent(testName); XMLCloseElement("name"); @@ -78,7 +78,7 @@ XMLTestStarted(const char *testName, const char *testDescription, time_t startTi } 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) { XMLCloseElement("test"); @@ -108,4 +108,3 @@ XMLLog(const char *logMessage, time_t eventTime) XMLCloseElement("log"); } -#endif diff --git a/test/test-automation/xml_logger.h b/test/test-automation/xml_logger.h index 5c199bdeb..bd9c5d135 100644 --- a/test/test-automation/xml_logger.h +++ b/test/test-automation/xml_logger.h @@ -5,16 +5,17 @@ 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 XMLSuiteEnded(int testsPassed, int testsFailed, int testsSkipped, 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); void XMLAssert(const char *assertName, int assertResult, const char *assertMessage,