testlib: Defer signal dumper start until tests are ready to run
We don't want the signal dumper to pick up signals that our own test machinery produces, such as the ones emitted from the watchdog thread startup and shutdown. This would otherwise produce: tst_Signaldumper::initTestCase() Signal: QThread(7fc969e0d870) started () At startup, and at shutdown even more confusingly: tst_Signaldumper::UnknownTestFunc() Signal: QThread(7fc969e0d870) finished () Change-Id: I9e81fa168eaa92551d38d5576973bbf95ac23364 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
304ec18a1a
commit
e7371c19d9
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,13 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<testsuite errors="126" failures="0" tests="13" name="tst_Signaldumper">
|
||||
<testsuite errors="124" failures="0" tests="13" name="tst_Signaldumper">
|
||||
<properties>
|
||||
<property value="@INSERT_QT_VERSION_HERE@" name="QTestVersion"/>
|
||||
<property value="@INSERT_QT_VERSION_HERE@" name="QtVersion"/>
|
||||
<property value="" name="QtBuild"/>
|
||||
</properties>
|
||||
<testcase result="pass" name="initTestCase">
|
||||
<!-- message="Signal: QThread(_POINTER_) started ()" type="info" -->
|
||||
</testcase>
|
||||
<testcase result="pass" name="initTestCase"/>
|
||||
<testcase result="pass" name="noConnections">
|
||||
<!-- message="Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()" type="info" -->
|
||||
<!-- message="Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))" type="info" -->
|
||||
@ -154,11 +152,8 @@
|
||||
<testcase result="pass" name="deletingSender">
|
||||
<!-- message="Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()" type="info" -->
|
||||
</testcase>
|
||||
<testcase result="pass" name="cleanupTestCase">
|
||||
<!-- message=" Signal: QThread(_POINTER_) finished ()" type="info" -->
|
||||
</testcase>
|
||||
<testcase result="pass" name="cleanupTestCase"/>
|
||||
<system-err>
|
||||
<![CDATA[Signal: QThread(_POINTER_) started ()]]>
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()]]>
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))]]>
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()]]>
|
||||
@ -283,6 +278,5 @@
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())]]>
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) qVariantSignal (QVariant())]]>
|
||||
<![CDATA[Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()]]>
|
||||
<![CDATA[ Signal: QThread(_POINTER_) finished ()]]>
|
||||
</system-err>
|
||||
</testsuite>
|
||||
|
@ -4,9 +4,6 @@
|
||||
<QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
|
||||
</Environment>
|
||||
<TestFunction name="initTestCase">
|
||||
<Message type="info" file="" line="0">
|
||||
<Description><![CDATA[Signal: QThread(_POINTER_) started ()]]></Description>
|
||||
</Message>
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
@ -579,7 +576,4 @@
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<Message type="info" file="" line="0">
|
||||
<Description><![CDATA[ Signal: QThread(_POINTER_) finished ()]]></Description>
|
||||
</Message>
|
||||
<Duration msecs="0"/>
|
||||
|
@ -1,6 +1,5 @@
|
||||
TAP version 13
|
||||
# tst_Signaldumper
|
||||
# Signal: QThread(_POINTER_) started ()
|
||||
ok 1 - initTestCase()
|
||||
# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
|
||||
# Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
|
||||
@ -146,7 +145,6 @@ ok 19 - variousTypes()
|
||||
# Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
|
||||
ok 20 - deletingSender()
|
||||
ok 21 - cleanupTestCase()
|
||||
# Signal: QThread(_POINTER_) finished ()
|
||||
1..21
|
||||
# tests 21
|
||||
# pass 21
|
||||
|
@ -1,6 +1,5 @@
|
||||
##teamcity[testSuiteStarted name='tst_Signaldumper' flowId='tst_Signaldumper']
|
||||
##teamcity[testStarted name='initTestCase()' flowId='tst_Signaldumper']
|
||||
##teamcity[testStdOut name='initTestCase()' out='INFO: Signal: QThread(_POINTER_) started ()' flowId='tst_Signaldumper']
|
||||
##teamcity[testFinished name='initTestCase()' flowId='tst_Signaldumper']
|
||||
##teamcity[testStarted name='noConnections()' flowId='tst_Signaldumper']
|
||||
##teamcity[testStdOut name='noConnections()' out='INFO: Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()|nINFO: Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))' flowId='tst_Signaldumper']
|
||||
|
@ -1,6 +1,5 @@
|
||||
********* Start testing of tst_Signaldumper *********
|
||||
Config: Using QtTest library
|
||||
INFO : tst_Signaldumper::initTestCase() Signal: QThread(_POINTER_) started ()
|
||||
PASS : tst_Signaldumper::initTestCase()
|
||||
INFO : tst_Signaldumper::noConnections() Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
|
||||
INFO : tst_Signaldumper::noConnections() Signal: SignalSlotClass(_POINTER_) signalWithParameters (int(242), char(m))
|
||||
@ -146,6 +145,5 @@ PASS : tst_Signaldumper::variousTypes()
|
||||
INFO : tst_Signaldumper::deletingSender() Signal: SignalSlotClass(_POINTER_) signalWithoutParameters ()
|
||||
PASS : tst_Signaldumper::deletingSender()
|
||||
PASS : tst_Signaldumper::cleanupTestCase()
|
||||
INFO : tst_Signaldumper::UnknownTestFunc() Signal: QThread(_POINTER_) finished ()
|
||||
Totals: 21 passed, 0 failed, 0 skipped, 0 blacklisted, 0ms
|
||||
********* Finished testing of tst_Signaldumper *********
|
||||
|
@ -6,9 +6,6 @@
|
||||
<QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
|
||||
</Environment>
|
||||
<TestFunction name="initTestCase">
|
||||
<Message type="info" file="" line="0">
|
||||
<Description><![CDATA[Signal: QThread(_POINTER_) started ()]]></Description>
|
||||
</Message>
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
@ -581,8 +578,5 @@
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<Message type="info" file="" line="0">
|
||||
<Description><![CDATA[ Signal: QThread(_POINTER_) finished ()]]></Description>
|
||||
</Message>
|
||||
<Duration msecs="0"/>
|
||||
</TestCase>
|
||||
|
Loading…
x
Reference in New Issue
Block a user