diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-10-30 12:07:58 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-10-31 16:02:41 +0100 |
commit | d4cd1bf861b87e827793e316bc8fd3930b8caedf (patch) | |
tree | 8d49065040897af38c46e2d9b0b6247cc218bb8c /src/testlib/qtestlog.cpp | |
parent | 0d3fb3784b5de548e132f0c8e522a82adc1b9fd8 (diff) |
testlib: Add private API to add test logger
Allows adding test loggers outside of testlib.
Change-Id: Iabcc780e441de96032a05fc0a386dd52e2f2f404
Reviewed-by: Simon Hausmann <hausmann@gmail.com>
Diffstat (limited to 'src/testlib/qtestlog.cpp')
-rw-r--r-- | src/testlib/qtestlog.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 05c96d62d5..7fbb3155fa 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -99,7 +99,7 @@ static void saveCoverageTool(const char * appname, bool testfailed, bool install static QElapsedTimer elapsedFunctionTime; static QElapsedTimer elapsedTotalTime; -#define FOREACH_TEST_LOGGER for (QAbstractTestLogger *logger : QTest::loggers) +#define FOREACH_TEST_LOGGER for (QAbstractTestLogger *logger : *QTest::loggers()) namespace QTest { @@ -168,7 +168,7 @@ namespace QTest { static IgnoreResultList *ignoreResultList = nullptr; - static QList<QAbstractTestLogger *> loggers; + Q_GLOBAL_STATIC(QList<QAbstractTestLogger *>, loggers) static int verbosity = 0; static int maxWarnings = 2002; @@ -429,7 +429,7 @@ void QTestLog::stopLogging() logger->stopLogging(); delete logger; } - QTest::loggers.clear(); + QTest::loggers()->clear(); saveCoverageTool(QTestResult::currentAppName(), failCount() != 0, QTestLog::installedTestCoverage()); } @@ -474,12 +474,26 @@ void QTestLog::addLogger(LogMode mode, const char *filename) } QTEST_ASSERT(logger); - QTest::loggers.append(logger); + addLogger(logger); +} + +/*! + \internal + + Adds a new logger to the set of loggers that will be used + to report incidents and messages during testing. + + The function takes ownership of the logger. +*/ +void QTestLog::addLogger(QAbstractTestLogger *logger) +{ + QTEST_ASSERT(logger); + QTest::loggers()->append(logger); } int QTestLog::loggerCount() { - return QTest::loggers.size(); + return QTest::loggers()->size(); } bool QTestLog::loggerUsingStdout() |