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.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/testlib/qjunittestlogger.cpp b/src/testlib/qjunittestlogger.cpp
index 2ba6e71bb98..ef4f1561c15 100644
--- a/src/testlib/qjunittestlogger.cpp
+++ b/src/testlib/qjunittestlogger.cpp
@@ -130,14 +130,17 @@ void QJUnitTestLogger::enterTestFunction(const char *function)
void QJUnitTestLogger::enterTestCase(const char *name)
{
- currentTestCase = new QTestElement(QTest::LET_TestCase);
- currentTestCase->addAttribute(QTest::AI_Name, name);
- currentTestCase->addAttribute(QTest::AI_Classname, QTestResult::currentTestObjectName());
- listOfTestcases.push_back(currentTestCase);
-
- Q_ASSERT(!systemOutputElement && !systemErrorElement);
- systemOutputElement = new QTestElement(QTest::LET_SystemOutput);
- systemErrorElement = new QTestElement(QTest::LET_SystemError);
+ {
+ QMutexLocker locker(&mutex);
+ currentTestCase = new QTestElement(QTest::LET_TestCase);
+ currentTestCase->addAttribute(QTest::AI_Name, name);
+ currentTestCase->addAttribute(QTest::AI_Classname, QTestResult::currentTestObjectName());
+ listOfTestcases.push_back(currentTestCase);
+
+ Q_ASSERT(!systemOutputElement && !systemErrorElement);
+ systemOutputElement = new QTestElement(QTest::LET_SystemOutput);
+ systemErrorElement = new QTestElement(QTest::LET_SystemError);
+ }
// The element will be deleted when the suite is deleted
@@ -174,6 +177,7 @@ void QJUnitTestLogger::leaveTestFunction()
void QJUnitTestLogger::leaveTestCase()
{
+ QMutexLocker locker(&mutex);
currentTestCase->addAttribute(QTest::AI_Time,
toSecondsFormat(elapsedTestCaseSeconds() * 1000).constData());
@@ -257,6 +261,7 @@ void QJUnitTestLogger::addMessage(MessageTypes type, const QString &message, con
Q_UNUSED(file);
Q_UNUSED(line);
+ QMutexLocker locker(&mutex);
if (type == QFatal) {
addFailure(QTest::LET_Error, "qfatal", message);
return;