diff --git a/test/test-automation/xml.c b/test/test-automation/xml.c index 11be3c892..b94ef4bc5 100644 --- a/test/test-automation/xml.c +++ b/test/test-automation/xml.c @@ -197,6 +197,9 @@ XMLOpenDocument(const char *rootTag) { const char *doctype = "\n"; + //! \todo make this optional (and let the user supply the filename?) + const char *style = "\n"; + memset(buffer, 0, bufferSize); snprintf(buffer, bufferSize, "<%s>", rootTag); @@ -205,16 +208,18 @@ XMLOpenDocument(const char *rootTag) root = rootTag; // it's fine, as long as rootTag points to static memory? const int doctypeSize = SDL_strlen(doctype); + const int styleSize = SDL_strlen(style); const int tagSize = SDL_strlen(buffer); - const int size = doctypeSize + tagSize + 1; // extra byte for '\0' - char *ret = SDL_malloc(size); - // copy doctype - strncpy(ret, doctype, doctypeSize); - // copy tag - strncpy(ret + doctypeSize, buffer, tagSize); - ret[size] = '\0'; - return ret; + const int size = doctypeSize + styleSize + tagSize + 1; // extra byte for '\0' + char *retBuf = SDL_malloc(size); + + // fill in the previous allocated retBuf + strcat(retBuf, doctype); + strcat(retBuf, style); + strcat(retBuf, buffer); + + return retBuf; } char * diff --git a/test/test-automation/xml_logger.c b/test/test-automation/xml_logger.c index 93c831d24..03af02405 100644 --- a/test/test-automation/xml_logger.c +++ b/test/test-automation/xml_logger.c @@ -52,7 +52,7 @@ const char *assertElementName = "assert"; const char *messageElementName = "message"; const char *timeElementName = "time"; const char *assertSummaryElementName = "assertSummary"; -const char *assertCountElementName = "assertName"; +const char *assertCountElementName = "assertCount"; const char *assertsPassedElementName = "assertsPassed"; const char *assertsFailedElementName = "assertsFailed"; const char *logElementName = "log"; @@ -214,6 +214,15 @@ XMLSuiteStarted(const char *suiteName, time_t eventTime) char *output = XMLOpenElement(suiteElementName); XMLOutputter(indentLevel++, YES, output); + output = XMLOpenElement(nameElementName); + XMLOutputter(indentLevel++, NO, output); + + output = XMLAddContent(suiteName); + XMLOutputter(indentLevel, NO, output); + + output = XMLCloseElement(nameElementName); + XMLOutputter(--indentLevel, YES, output); + output = XMLOpenElement(startTimeElementName); XMLOutputter(indentLevel++, NO, output); @@ -373,6 +382,17 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage, char *output = XMLOpenElement(assertElementName); XMLOutputter(indentLevel++, YES, output); + // log assert name + output = XMLOpenElement(nameElementName); + XMLOutputter(indentLevel++, NO, output); + + output = XMLAddContent(assertName); + XMLOutputter(indentLevel, NO, output); + + output = XMLCloseElement(nameElementName); + XMLOutputter(--indentLevel, YES, output); + + // log assert result output = XMLOpenElement(resultElementName); XMLOutputter(indentLevel++, NO, output); @@ -414,6 +434,17 @@ XMLAssertWithValues(const char *assertName, int assertResult, const char *assert char *output = XMLOpenElement(assertElementName); XMLOutputter(indentLevel++, YES, output); + // log assert name + output = XMLOpenElement(nameElementName); + XMLOutputter(indentLevel++, NO, output); + + output = XMLAddContent(assertName); + XMLOutputter(indentLevel, NO, output); + + output = XMLCloseElement(nameElementName); + XMLOutputter(--indentLevel, YES, output); + + // log assert result output = XMLOpenElement(resultElementName); XMLOutputter(indentLevel++, NO, output);