summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestlog.cpp
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-10-30 12:07:58 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-10-31 16:02:41 +0100
commitd4cd1bf861b87e827793e316bc8fd3930b8caedf (patch)
tree8d49065040897af38c46e2d9b0b6247cc218bb8c /src/testlib/qtestlog.cpp
parent0d3fb3784b5de548e132f0c8e522a82adc1b9fd8 (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.cpp24
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()