diff options
Diffstat (limited to 'src/testlib/qjunittestlogger.cpp')
-rw-r--r-- | src/testlib/qjunittestlogger.cpp | 21 |
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; |