diff options
Diffstat (limited to 'tests/auto/corelib/kernel/qobject/tst_qobject.cpp')
-rw-r--r-- | tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 225e06a552..1e690386dc 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -4101,12 +4101,25 @@ public slots: } }; +static void processEvents() +{ + qApp->processEvents(); +} + void tst_QObject::baseDestroyed() { - BaseDestroyed d; - connect(&d, SIGNAL(destroyed()), &d, SLOT(slotUseList())); - //When d goes out of scope, slotUseList should not be called as the BaseDestroyed has - // already been destroyed while ~QObject emit destroyed + { + BaseDestroyed d; + connect(&d, SIGNAL(destroyed()), &d, SLOT(slotUseList())); + //When d goes out of scope, slotUseList should not be called as the BaseDestroyed has + // already been destroyed while ~QObject emit destroyed + } + { + BaseDestroyed d; + connect(&d, &QObject::destroyed, processEvents); + QMetaObject::invokeMethod(&d, "slotUseList", Qt::QueuedConnection); + //the destructor will call processEvents, that should not call the slotUseList + } } void tst_QObject::pointerConnect() |