diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/testlib/qsignaldumper.cpp | 10 | ||||
| -rw-r--r-- | src/testlib/qsignaldumper_p.h | 3 | ||||
| -rw-r--r-- | src/testlib/qtestcase.cpp | 8 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/testlib/qsignaldumper.cpp b/src/testlib/qsignaldumper.cpp index 8510b3ed6f8..f43b3a8d92d 100644 --- a/src/testlib/qsignaldumper.cpp +++ b/src/testlib/qsignaldumper.cpp @@ -170,8 +170,16 @@ static void qSignalDumperCallbackEndSignal(QObject *caller, int /*signal_index*/ } +void QSignalDumper::setEnabled(bool enabled) +{ + s_isEnabled = enabled; +} + void QSignalDumper::startDump() { + if (!s_isEnabled) + return; + static QSignalSpyCallbackSet set = { QTest::qSignalDumperCallback, QTest::qSignalDumperCallbackSlot, QTest::qSignalDumperCallbackEndSignal, nullptr }; qt_register_signal_spy_callbacks(&set); @@ -194,4 +202,6 @@ void QSignalDumper::clearIgnoredClasses() QTest::ignoreClasses()->clear(); } +bool QSignalDumper::s_isEnabled = false; + QT_END_NAMESPACE diff --git a/src/testlib/qsignaldumper_p.h b/src/testlib/qsignaldumper_p.h index 0f443fd612c..e211f5c059f 100644 --- a/src/testlib/qsignaldumper_p.h +++ b/src/testlib/qsignaldumper_p.h @@ -60,11 +60,14 @@ class QByteArray; class QSignalDumper { public: + static void setEnabled(bool); static void startDump(); static void endDump(); static void ignoreClass(const QByteArray &klass); static void clearIgnoredClasses(); +private: + static bool s_isEnabled; }; QT_END_NAMESPACE diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index e352f72e20a..6b55ae43c6d 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -643,7 +643,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool } else if (strcmp(argv[i], "-v2") == 0) { QTestLog::setVerboseLevel(2); } else if (strcmp(argv[i], "-vs") == 0) { - QSignalDumper::startDump(); + QSignalDumper::setEnabled(true); } else if (strcmp(argv[i], "-o") == 0) { if (i + 1 >= argc) { fprintf(stderr, "-o needs an extra parameter specifying the filename and optional format\n"); @@ -1485,6 +1485,8 @@ void TestMethods::invokeTests(QObject *testObject) const watchDog.reset(new WatchDog); } + QSignalDumper::startDump(); + if (!QTestResult::skipCurrentTest() && !QTest::currentTestFailed()) { if (m_initTestCaseMethod.isValid()) m_initTestCaseMethod.invoke(testObject, Qt::DirectConnection); @@ -1517,6 +1519,8 @@ void TestMethods::invokeTests(QObject *testObject) const } QTestResult::finishedCurrentTestFunction(); QTestResult::setCurrentTestFunction(nullptr); + + QSignalDumper::endDump(); } #if defined(Q_OS_WIN) @@ -1965,8 +1969,6 @@ void QTest::qCleanup() delete QBenchmarkGlobalData::current; QBenchmarkGlobalData::current = nullptr; - QSignalDumper::endDump(); - #if defined(Q_OS_MACOS) IOPMAssertionRelease(macPowerSavingDisabled); #endif |
