diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2021-08-03 14:27:45 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2021-08-10 18:06:36 +0200 |
commit | 4632be1b4d8c5037c83b7c006850da73b590180e (patch) | |
tree | 0be0a81e2607e3c40e171c78739a9ed326958c6a /src/testlib/qjunittestlogger.cpp | |
parent | c08d56be1f833f98549e32d900182c33538d68c0 (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.cpp | 77 |
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 |