summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/testlib/qsignaldumper.cpp10
-rw-r--r--src/testlib/qsignaldumper_p.h3
-rw-r--r--src/testlib/qtestcase.cpp8
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