diff options
-rw-r--r-- | src/testlib/qtestcase.cpp | 25 | ||||
-rw-r--r-- | src/testlib/qtestlog.cpp | 17 | ||||
-rw-r--r-- | src/testlib/qtestresult.cpp | 12 | ||||
-rw-r--r-- | src/testlib/qtestresult_p.h | 3 |
4 files changed, 37 insertions, 20 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 8a1d4bf44a..b76ff39de4 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -947,22 +947,6 @@ static void installCoverageTool(const char * appname, const char * testname) #endif } -static void saveCoverageTool(const char * appname, bool testfailed) -{ -#ifdef __COVERAGESCANNER__ - // install again to make sure the filename is correct. - // without this, a plugin or similar may have changed the filename. - __coveragescanner_install(appname); - __coveragescanner_teststate(testfailed ? "FAILED" : "PASSED"); - __coveragescanner_save(); - __coveragescanner_testname(""); - __coveragescanner_clear(); -#else - Q_UNUSED(appname); - Q_UNUSED(testfailed); -#endif -} - namespace QTest { static QObject *currentTestObject = 0; @@ -1970,10 +1954,13 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) const QMetaObject *metaObject = testObject->metaObject(); QTEST_ASSERT(metaObject); - installCoverageTool(argv[0], metaObject->className()); - QTestResult::setCurrentTestObject(metaObject->className()); + QTestResult::setCurrentAppname(argv[0]); + qtest_qParseArgs(argc, argv, false); + + installCoverageTool(argv[0], metaObject->className()); + #ifdef QTESTLIB_USE_VALGRIND if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) { const QStringList origAppArgs(QCoreApplication::arguments()); @@ -2025,8 +2012,6 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) } #endif - saveCoverageTool(argv[0], QTestLog::failCount()); - #ifdef QTESTLIB_USE_VALGRIND if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) return callgrindChildExitCode; diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 7a4358a393..1d66101a0f 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -56,6 +56,22 @@ QT_BEGIN_NAMESPACE +static void saveCoverageTool(const char * appname, bool testfailed) +{ +#ifdef __COVERAGESCANNER__ + // install again to make sure the filename is correct. + // without this, a plugin or similar may have changed the filename. + __coveragescanner_install(appname); + __coveragescanner_teststate(testfailed ? "FAILED" : "PASSED"); + __coveragescanner_save(); + __coveragescanner_testname(""); + __coveragescanner_clear(); +#else + Q_UNUSED(appname); + Q_UNUSED(testfailed); +#endif +} + namespace QTest { int fails = 0; @@ -368,6 +384,7 @@ void QTestLog::stopLogging() QTest::TestLoggers::stopLogging(); QTest::TestLoggers::destroyLoggers(); QTest::loggerUsingStdout = false; + saveCoverageTool(QTestResult::currentAppname(), failCount() != 0); } void QTestLog::addLogger(LogMode mode, const char *filename) diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp index 1fb5bddcbb..d6846f363b 100644 --- a/src/testlib/qtestresult.cpp +++ b/src/testlib/qtestresult.cpp @@ -64,6 +64,8 @@ namespace QTest static const char *expectFailComment = 0; static int expectFailMode = 0; + + static const char *currentAppname = 0; } void QTestResult::reset() @@ -313,4 +315,14 @@ bool QTestResult::skipCurrentTest() return QTest::skipCurrentTest; } +void QTestResult::setCurrentAppname(const char *appname) +{ + QTest::currentAppname = appname; +} + +const char *QTestResult::currentAppname() +{ + return QTest::currentAppname; +} + QT_END_NAMESPACE diff --git a/src/testlib/qtestresult_p.h b/src/testlib/qtestresult_p.h index fc7f834756..5bbb7e2d27 100644 --- a/src/testlib/qtestresult_p.h +++ b/src/testlib/qtestresult_p.h @@ -95,6 +95,9 @@ public: static void setSkipCurrentTest(bool value); static bool skipCurrentTest(); + static void setCurrentAppname(const char *appname); + static const char *currentAppname(); + private: Q_DISABLE_COPY(QTestResult) }; |