summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestjunitstreamer.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-01-13 11:21:01 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-01-15 18:05:40 +0100
commit539553a57216c4ece292ff54fb623807c334cdb6 (patch)
tree55c4c80b5fe764717dbe32169dd1906a5cf6bcb5 /src/testlib/qtestjunitstreamer.cpp
parent7f5d41e286e043c5f3061e2eb5a0128102a38c80 (diff)
QTestlib/JUnit XML: Log most messages to standard output instead of error output
Add an enumeration for system-out and alog element for it. Redirect the messages types that are not warnings/errors to this element. For compatibility, write it out only if it is not empty. Rename enumerations and members accordingly. [ChangeLog][QtTestLib] In JUnit XML, output that is not a warning/error is now logged under <system-out> instead of <system-err>. Fixes: QTBUG-86540 Change-Id: I55598eafa7dafa486ac5a8221029c332ff47413b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/testlib/qtestjunitstreamer.cpp')
-rw-r--r--src/testlib/qtestjunitstreamer.cpp34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/testlib/qtestjunitstreamer.cpp b/src/testlib/qtestjunitstreamer.cpp
index 844f80f90c..28879c6e06 100644
--- a/src/testlib/qtestjunitstreamer.cpp
+++ b/src/testlib/qtestjunitstreamer.cpp
@@ -82,12 +82,17 @@ void QTestJUnitStreamer::formatStart(const QTestElement *element, QTestCharBuffe
char indent[20];
indentForElement(element, indent, sizeof(indent));
- // Errors are written as CDATA within system-err, comments elsewhere
- if (element->elementType() == QTest::LET_Error) {
- if (element->parentElement()->elementType() == QTest::LET_SystemError) {
+ // Messages/errors are written as CDATA within system-out, system-err,
+ // respectively, comments elsewhere
+ if (element->elementType() == QTest::LET_Message) {
+ switch (element->parentElement()->elementType()) {
+ case QTest::LET_SystemOutput:
+ case QTest::LET_SystemError:
QTest::qt_asprintf(formatted, "<![CDATA[");
- } else {
+ break;
+ default:
QTest::qt_asprintf(formatted, "%s<!--", indent);
+ break;
}
return;
}
@@ -118,9 +123,11 @@ void QTestJUnitStreamer::formatAttributes(const QTestElement* element, const QTe
QTest::AttributeIndex attrindex = attribute->index();
- // For errors within system-err, we only want to output `message'
- if (element && element->elementType() == QTest::LET_Error
- && element->parentElement()->elementType() == QTest::LET_SystemError) {
+ // For messages/errors within system-out, system-err, respectively,
+ // we only want to output `message'
+ if (element && element->elementType() == QTest::LET_Message
+ && (element->parentElement()->elementType() == QTest::LET_SystemOutput
+ || element->parentElement()->elementType() == QTest::LET_SystemError)) {
if (attrindex != QTest::AI_Description) return;
@@ -148,12 +155,17 @@ void QTestJUnitStreamer::formatAfterAttributes(const QTestElement *element, QTes
if (!element || !formatted )
return;
- // Errors are written as CDATA within system-err, comments elsewhere
- if (element->elementType() == QTest::LET_Error) {
- if (element->parentElement()->elementType() == QTest::LET_SystemError) {
+ // Messages/errors are written as CDATA within system-out, system-err,
+ // respectively, comments elsewhere
+ if (element->elementType() == QTest::LET_Message) {
+ switch (element->parentElement()->elementType()) {
+ case QTest::LET_SystemOutput:
+ case QTest::LET_SystemError:
QTest::qt_asprintf(formatted, "]]>\n");
- } else {
+ break;
+ default:
QTest::qt_asprintf(formatted, " -->\n");
+ break;
}
return;
}