From 2ba0d1e550d5ec8624a4c6a52ff2ce48f9557cf0 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Mon, 16 Jan 2012 15:12:39 +1000 Subject: Move pass/fail/skip counters from QTestResult to QTestLog. This change will enable further simplification of QTestResult and QTestLog in the future, including removing a circular dependency between the two classes. The "getter" functions in QTestResult are retained for now, but will be removed in a future commit, once QtQuickTest has been changed to call the getters that this commit adds to QTestLog. This commit is adapted from an unfinished change by Henrik Hartz. Change-Id: Ife7f80ac6a4310449a4712e96e0bea6c02139a5a Reviewed-by: Rohan McGovern --- src/testlib/qplaintestlogger.cpp | 8 ++++---- src/testlib/qtestcase.cpp | 4 ++-- src/testlib/qtestlog.cpp | 34 ++++++++++++++++++++++++++++++++++ src/testlib/qtestlog_p.h | 6 ++++++ src/testlib/qtestresult.cpp | 20 +++++--------------- 5 files changed, 51 insertions(+), 21 deletions(-) (limited to 'src/testlib') diff --git a/src/testlib/qplaintestlogger.cpp b/src/testlib/qplaintestlogger.cpp index f0e83183ec..9810a8029a 100644 --- a/src/testlib/qplaintestlogger.cpp +++ b/src/testlib/qplaintestlogger.cpp @@ -344,14 +344,14 @@ void QPlainTestLogger::stopLogging() char buf[1024]; if (QTestLog::verboseLevel() < 0) { qsnprintf(buf, sizeof(buf), "Totals: %d passed, %d failed, %d skipped\n", - QTestResult::passCount(), QTestResult::failCount(), - QTestResult::skipCount()); + QTestLog::passCount(), QTestLog::failCount(), + QTestLog::skipCount()); } else { qsnprintf(buf, sizeof(buf), "Totals: %d passed, %d failed, %d skipped\n" "********* Finished testing of %s *********\n", - QTestResult::passCount(), QTestResult::failCount(), - QTestResult::skipCount(), QTestResult::currentTestObjectName()); + QTestLog::passCount(), QTestLog::failCount(), + QTestLog::skipCount(), QTestResult::currentTestObjectName()); } outputMessage(buf); diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index 8bd836d7f9..b64842b1f9 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -2025,7 +2025,7 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) } #endif - saveCoverageTool(argv[0], QTestResult::failCount()); + saveCoverageTool(argv[0], QTestLog::failCount()); #ifdef QTESTLIB_USE_VALGRIND if (QBenchmarkGlobalData::current->mode() == QBenchmarkGlobalData::CallgrindParentProcess) @@ -2033,7 +2033,7 @@ int QTest::qExec(QObject *testObject, int argc, char **argv) #endif // make sure our exit code is never going above 127 // since that could wrap and indicate 0 test fails - return qMin(QTestResult::failCount(), 127); + return qMin(QTestLog::failCount(), 127); } /*! diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 695c001e0f..b4a4256a59 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -58,6 +58,10 @@ QT_BEGIN_NAMESPACE namespace QTest { + int fails = 0; + int passes = 0; + int skips = 0; + struct IgnoreResultList { inline IgnoreResultList(QtMsgType tp, const char *message) @@ -305,6 +309,8 @@ void QTestLog::addPass(const char *msg) QTEST_ASSERT(msg); + ++QTest::passes; + QTest::TestLoggers::addIncident(QAbstractTestLogger::Pass, msg); } @@ -312,6 +318,8 @@ void QTestLog::addFail(const char *msg, const char *file, int line) { QTEST_ASSERT(msg); + ++QTest::fails; + QTest::TestLoggers::addIncident(QAbstractTestLogger::Fail, msg, file, line); } @@ -328,6 +336,8 @@ void QTestLog::addXPass(const char *msg, const char *file, int line) QTEST_ASSERT(msg); QTEST_ASSERT(file); + ++QTest::fails; + QTest::TestLoggers::addIncident(QAbstractTestLogger::XPass, msg, file, line); } @@ -336,6 +346,8 @@ void QTestLog::addSkip(const char *msg, const char *file, int line) QTEST_ASSERT(msg); QTEST_ASSERT(file); + ++QTest::skips; + QTest::TestLoggers::addMessage(QAbstractTestLogger::Skip, msg, file, line); } @@ -447,4 +459,26 @@ void QTestLog::setPrintAvailableTagsMode() printAvailableTags = true; } +int QTestLog::passCount() +{ + return QTest::passes; +} + +int QTestLog::failCount() +{ + return QTest::fails; +} + +int QTestLog::skipCount() +{ + return QTest::skips; +} + +void QTestLog::resetCounters() +{ + QTest::passes = 0; + QTest::fails = 0; + QTest::skips = 0; +} + QT_END_NAMESPACE diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h index 02bb54815c..4585e732e8 100644 --- a/src/testlib/qtestlog_p.h +++ b/src/testlib/qtestlog_p.h @@ -96,6 +96,12 @@ public: static void setPrintAvailableTagsMode(); + static int passCount(); + static int failCount(); + static int skipCount(); + + static void resetCounters(); + private: QTestLog(); ~QTestLog(); diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp index 9fc3c67ca5..8ca7217971 100644 --- a/src/testlib/qtestresult.cpp +++ b/src/testlib/qtestresult.cpp @@ -62,10 +62,6 @@ namespace QTest static bool skipCurrentTest = false; static QTestResult::TestLocation location = QTestResult::NoWhere; - static int fails = 0; - static int passes = 0; - static int skips = 0; - static const char *expectFailComment = 0; static int expectFailMode = 0; } @@ -80,12 +76,10 @@ void QTestResult::reset() QTest::dataFailed = false; QTest::location = QTestResult::NoWhere; - QTest::fails = 0; - QTest::passes = 0; - QTest::skips = 0; - QTest::expectFailComment = 0; QTest::expectFailMode = 0; + + QTestLog::resetCounters(); } bool QTestResult::currentTestFailed() @@ -140,7 +134,6 @@ void QTestResult::finishedCurrentTestFunction() if (!QTest::failed && !QTest::skipCurrentTest) { QTestLog::addPass(""); - ++QTest::passes; } QTest::currentTestFunc = 0; QTest::failed = false; @@ -211,7 +204,6 @@ static bool checkStatement(bool statement, const char *msg, const char *file, in bool doContinue = (QTest::expectFailMode == QTest::Continue); clearExpectFail(); QTest::failed = true; - ++QTest::fails; return doContinue; } return true; @@ -277,7 +269,6 @@ void QTestResult::addFailure(const char *message, const char *file, int line) QTestLog::addFail(message, file, line); QTest::failed = true; QTest::dataFailed = true; - ++QTest::fails; } void QTestResult::addSkip(const char *message, const char *file, int line) @@ -285,7 +276,6 @@ void QTestResult::addSkip(const char *message, const char *file, int line) clearExpectFail(); QTestLog::addSkip(message, file, line); - ++QTest::skips; } QTestResult::TestLocation QTestResult::currentTestLocation() @@ -310,17 +300,17 @@ const char *QTestResult::currentTestObjectName() int QTestResult::passCount() { - return QTest::passes; + return QTestLog::passCount(); } int QTestResult::failCount() { - return QTest::fails; + return QTestLog::failCount(); } int QTestResult::skipCount() { - return QTest::skips; + return QTestLog::skipCount(); } void QTestResult::ignoreMessage(QtMsgType type, const char *msg) -- cgit v1.2.3