summaryrefslogtreecommitdiffstats
path: root/src/testlib/qjunittestlogger.cpp
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-08-03 14:27:45 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-08-10 18:06:36 +0200
commit4632be1b4d8c5037c83b7c006850da73b590180e (patch)
tree0be0a81e2607e3c40e171c78739a9ed326958c6a /src/testlib/qjunittestlogger.cpp
parentc08d56be1f833f98549e32d900182c33538d68c0 (diff)
testlib: Don't write redundant log message information in JUnit reporter
The separation between <system-out> and <system-err> is sufficient, and we can't expect consumers to interpret our custom comment format. The type of the text node has been renamed to more accurately identify its purpose. Pick-to: 6.2 Change-Id: I63c8ff17529fc087e1b695698350a6711eb5e68d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/testlib/qjunittestlogger.cpp')
-rw-r--r--src/testlib/qjunittestlogger.cpp77
1 files changed, 22 insertions, 55 deletions
diff --git a/src/testlib/qjunittestlogger.cpp b/src/testlib/qjunittestlogger.cpp
index f8000b4302..4b5de7b7c0 100644
--- a/src/testlib/qjunittestlogger.cpp
+++ b/src/testlib/qjunittestlogger.cpp
@@ -270,9 +270,9 @@ void QJUnitTestLogger::addFailure(QTest::LogElementType elementType,
failureElement->addAttribute(QTest::AI_Message, message.toUtf8().constData());
if (!details.isEmpty()) {
- auto messageElement = new QTestElement(QTest::LET_Message);
- messageElement->addAttribute(QTest::AI_Message, details.toUtf8().constData());
- failureElement->addLogElement(messageElement);
+ auto textNode = new QTestElement(QTest::LET_Text);
+ textNode->addAttribute(QTest::AI_Value, details.toUtf8().constData());
+ failureElement->addLogElement(textNode);
}
currentTestCase->addLogElement(failureElement);
@@ -294,62 +294,29 @@ void QJUnitTestLogger::addMessage(MessageTypes type, const QString &message, con
skippedElement->addAttribute(QTest::AI_Message, message.toUtf8().constData());
currentTestCase->addLogElement(skippedElement);
return;
- }
-
- auto systemLogElement = systemOutputElement;
- const char *typeBuf = nullptr;
-
- switch (type) {
- case QAbstractTestLogger::Warn:
- systemLogElement = systemErrorElement;
- typeBuf = "warn";
- break;
- case QAbstractTestLogger::QCritical:
- systemLogElement = systemErrorElement;
- typeBuf = "qcritical";
- break;
- case QAbstractTestLogger::QDebug:
- typeBuf = "qdebug";
- break;
- case QAbstractTestLogger::QInfo:
- typeBuf = "qinfo";
- break;
- case QAbstractTestLogger::QWarning:
- systemLogElement = systemErrorElement;
- typeBuf = "qwarn";
- break;
- case QAbstractTestLogger::QFatal:
- systemLogElement = systemErrorElement;
- typeBuf = "qfatal";
- break;
- case QAbstractTestLogger::Skip:
- Q_UNREACHABLE();
- break;
- case QAbstractTestLogger::Info:
- typeBuf = "info";
- break;
- default:
- typeBuf = "??????";
- break;
- }
-
- if (type == QAbstractTestLogger::QFatal) {
- addFailure(QTest::LET_Error, typeBuf, message);
+ } else if (type == QAbstractTestLogger::QFatal) {
+ addFailure(QTest::LET_Error, "qfatal", message);
return;
}
- auto messageElement = new QTestElement(QTest::LET_Message);
- messageElement->addAttribute(QTest::AI_Type, typeBuf);
- messageElement->addAttribute(QTest::AI_Message, message.toUtf8().constData());
-
- currentTestCase->addLogElement(messageElement);
+ auto systemLogElement = [&]() {
+ switch (type) {
+ case QAbstractTestLogger::QDebug:
+ case QAbstractTestLogger::Info:
+ case QAbstractTestLogger::QInfo:
+ return systemOutputElement;
+ case QAbstractTestLogger::Warn:
+ case QAbstractTestLogger::QWarning:
+ case QAbstractTestLogger::QCritical:
+ return systemErrorElement;
+ default:
+ Q_UNREACHABLE();
+ }
+ }();
- // Also add the message to the system log (stdout/stderr), if one exists
- if (systemLogElement) {
- auto messageElement = new QTestElement(QTest::LET_Message);
- messageElement->addAttribute(QTest::AI_Message, message.toUtf8().constData());
- systemLogElement->addLogElement(messageElement);
- }
+ auto textNode = new QTestElement(QTest::LET_Text);
+ textNode->addAttribute(QTest::AI_Value, message.toUtf8().constData());
+ systemLogElement->addLogElement(textNode);
}
QT_END_NAMESPACE