diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qtestcase.cpp | 9 | ||||
-rw-r--r-- | src/testlib/qtestresult.cpp | 24 | ||||
-rw-r--r-- | src/testlib/qtestresult_p.h | 2 |
3 files changed, 19 insertions, 16 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index d94abff23c..161af0f10f 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -1518,6 +1518,7 @@ static void qInvokeTestMethodDataEntry(char *slot) QTestResult::setCurrentTestLocation(QTestResult::CleanupFunc); invokeMethod(QTest::currentTestObject, "cleanup()"); + QTestResult::finishedCurrentTestDataCleanup(); QTestResult::setCurrentTestLocation(QTestResult::NoWhere); // If this test method has a benchmark, repeat until all measurements are @@ -1749,8 +1750,10 @@ static void qInvokeTestMethods(QObject *testObject) QTestResult::setCurrentTestLocation(QTestResult::InitFunc); invokeMethod(testObject, "initTestCase()"); - // finishedCurrentTestFunction() resets QTestResult::testFailed(), so use a local copy. - const bool previousFailed = QTestResult::testFailed(); + // finishedCurrentTestDataCleanup() resets QTestResult::currentTestFailed(), so use a local copy. + const bool previousFailed = QTestResult::currentTestFailed(); + QTestResult::finishedCurrentTestData(); + QTestResult::finishedCurrentTestDataCleanup(); QTestResult::finishedCurrentTestFunction(); if (!QTestResult::skipCurrentTest() && !previousFailed) { @@ -1782,6 +1785,8 @@ static void qInvokeTestMethods(QObject *testObject) QTestResult::setSkipCurrentTest(false); QTestResult::setCurrentTestFunction("cleanupTestCase"); invokeMethod(testObject, "cleanupTestCase()"); + QTestResult::finishedCurrentTestData(); + QTestResult::finishedCurrentTestDataCleanup(); } QTestResult::finishedCurrentTestFunction(); QTestResult::setCurrentTestFunction(0); diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp index c49c7aefe3..cfa85eb065 100644 --- a/src/testlib/qtestresult.cpp +++ b/src/testlib/qtestresult.cpp @@ -58,7 +58,6 @@ namespace QTest static const char *currentTestFunc = 0; static const char *currentTestObjectName = 0; static bool failed = false; - static bool dataFailed = false; static bool skipCurrentTest = false; static QTestResult::TestLocation location = QTestResult::NoWhere; @@ -75,7 +74,6 @@ void QTestResult::reset() QTest::currentTestFunc = 0; QTest::currentTestObjectName = 0; QTest::failed = false; - QTest::dataFailed = false; QTest::location = QTestResult::NoWhere; QTest::expectFailComment = 0; @@ -86,7 +84,7 @@ void QTestResult::reset() bool QTestResult::currentTestFailed() { - return QTest::dataFailed; + return QTest::failed; } QTestData *QTestResult::currentGlobalTestData() @@ -107,7 +105,7 @@ void QTestResult::setCurrentGlobalTestData(QTestData *data) void QTestResult::setCurrentTestData(QTestData *data) { QTest::currentTestData = data; - QTest::dataFailed = false; + QTest::failed = false; } void QTestResult::setCurrentTestFunction(const char *func) @@ -133,21 +131,27 @@ void QTestResult::finishedCurrentTestData() addFailure("QEXPECT_FAIL was called without any subsequent verification statements", 0, 0); clearExpectFail(); - if (!QTest::dataFailed && QTestLog::unhandledIgnoreMessages()) { + if (!QTest::failed && QTestLog::unhandledIgnoreMessages()) { QTestLog::printUnhandledIgnoreMessages(); addFailure("Not all expected messages were received", 0, 0); } QTestLog::clearIgnoreMessages(); } -void QTestResult::finishedCurrentTestFunction() +void QTestResult::finishedCurrentTestDataCleanup() { + // If the current test hasn't failed or been skipped, then it passes. if (!QTest::failed && !QTest::skipCurrentTest) { QTestLog::addPass(""); } + + QTest::failed = false; +} + +void QTestResult::finishedCurrentTestFunction() +{ QTest::currentTestFunc = 0; QTest::failed = false; - QTest::dataFailed = false; QTest::location = NoWhere; QTestLog::leaveTestFunction(); @@ -276,7 +280,6 @@ void QTestResult::addFailure(const char *message, const char *file, int line) QTestLog::addFail(message, file, line); QTest::failed = true; - QTest::dataFailed = true; } void QTestResult::addSkip(const char *message, const char *file, int line) @@ -306,11 +309,6 @@ const char *QTestResult::currentTestObjectName() return QTest::currentTestObjectName ? QTest::currentTestObjectName : ""; } -bool QTestResult::testFailed() -{ - return QTest::failed; -} - void QTestResult::setSkipCurrentTest(bool value) { QTest::skipCurrentTest = value; diff --git a/src/testlib/qtestresult_p.h b/src/testlib/qtestresult_p.h index 81e11180ef..5c6c4fba90 100644 --- a/src/testlib/qtestresult_p.h +++ b/src/testlib/qtestresult_p.h @@ -74,6 +74,7 @@ public: static const char *currentDataTag(); static const char *currentGlobalDataTag(); static void finishedCurrentTestData(); + static void finishedCurrentTestDataCleanup(); static void finishedCurrentTestFunction(); static void reset(); @@ -92,7 +93,6 @@ public: QTest::TestFailMode mode, const char *file, int line); static bool verify(bool statement, const char *statementStr, const char *extraInfo, const char *file, int line); - static bool testFailed(); static void setSkipCurrentTest(bool value); static bool skipCurrentTest(); |