summaryrefslogtreecommitdiffstats
path: root/src/testlib/qjunittestlogger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qjunittestlogger.cpp')
-rw-r--r--src/testlib/qjunittestlogger.cpp40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/testlib/qjunittestlogger.cpp b/src/testlib/qjunittestlogger.cpp
index bba1c777c5..147777f77c 100644
--- a/src/testlib/qjunittestlogger.cpp
+++ b/src/testlib/qjunittestlogger.cpp
@@ -74,8 +74,10 @@ void QJUnitTestLogger::startLogging()
QAbstractTestLogger::startLogging();
logFormatter = new QTestJUnitStreamer(this);
- delete errorLogElement;
- errorLogElement = new QTestElement(QTest::LET_SystemError);
+ delete systemOutputElement;
+ systemOutputElement = new QTestElement(QTest::LET_SystemOutput);
+ delete systemErrorElement;
+ systemErrorElement = new QTestElement(QTest::LET_SystemError);
Q_ASSERT(!currentTestSuite);
currentTestSuite = new QTestElement(QTest::LET_TestSuite);
@@ -132,7 +134,9 @@ void QJUnitTestLogger::stopLogging()
testcase = testcase->nextElement();
}
- currentTestSuite->addLogElement(errorLogElement);
+ if (systemOutputElement->childElements())
+ currentTestSuite->addLogElement(systemOutputElement);
+ currentTestSuite->addLogElement(systemErrorElement);
logFormatter->output(currentTestSuite);
@@ -305,11 +309,13 @@ void QJUnitTestLogger::addTag(QTestElement* element)
void QJUnitTestLogger::addMessage(MessageTypes type, const QString &message, const char *file, int line)
{
- QTestElement *errorElement = new QTestElement(QTest::LET_Error);
+ auto messageElement = new QTestElement(QTest::LET_Message);
+ auto systemLogElement = systemOutputElement;
const char *typeBuf = nullptr;
switch (type) {
case QAbstractTestLogger::Warn:
+ systemLogElement = systemErrorElement;
typeBuf = "warn";
break;
case QAbstractTestLogger::QSystem:
@@ -322,9 +328,11 @@ void QJUnitTestLogger::addMessage(MessageTypes type, const QString &message, con
typeBuf = "qinfo";
break;
case QAbstractTestLogger::QWarning:
+ systemLogElement = systemErrorElement;
typeBuf = "qwarn";
break;
case QAbstractTestLogger::QFatal:
+ systemLogElement = systemErrorElement;
typeBuf = "qfatal";
break;
case QAbstractTestLogger::Skip:
@@ -338,27 +346,27 @@ void QJUnitTestLogger::addMessage(MessageTypes type, const QString &message, con
break;
}
- errorElement->addAttribute(QTest::AI_Type, typeBuf);
- errorElement->addAttribute(QTest::AI_Description, message.toUtf8().constData());
- addTag(errorElement);
+ messageElement->addAttribute(QTest::AI_Type, typeBuf);
+ messageElement->addAttribute(QTest::AI_Description, message.toUtf8().constData());
+ addTag(messageElement);
if (file)
- errorElement->addAttribute(QTest::AI_File, file);
+ messageElement->addAttribute(QTest::AI_File, file);
else
- errorElement->addAttribute(QTest::AI_File, "");
+ messageElement->addAttribute(QTest::AI_File, "");
char buf[100];
qsnprintf(buf, sizeof(buf), "%i", line);
- errorElement->addAttribute(QTest::AI_Line, buf);
+ messageElement->addAttribute(QTest::AI_Line, buf);
- currentLogElement->addLogElement(errorElement);
+ currentLogElement->addLogElement(messageElement);
++errorCounter;
- // Also add the message to the system error log (i.e. stderr), if one exists
- if (errorLogElement) {
- QTestElement *systemErrorElement = new QTestElement(QTest::LET_Error);
- systemErrorElement->addAttribute(QTest::AI_Description, message.toUtf8().constData());
- errorLogElement->addLogElement(systemErrorElement);
+ // 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_Description, message.toUtf8().constData());
+ systemLogElement->addLogElement(messageElement);
}
}