diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2013-12-09 15:52:07 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-11 10:05:07 +0100 |
commit | 75df151eaae389b2674b6bb29e97ad10592f2d43 (patch) | |
tree | 3d24a1387fe7bd86401a8da1daaafe53f6e2c717 /tests/auto/corelib/kernel/qobject/tst_qobject.cpp | |
parent | 4031cb8610dd311910d550201230ea8ab0f6a89a (diff) |
tst_QObject: separate QSignalBlocker tests
tst_QObject is getting big, so make a separate test for QSignalBlocker,
but leave parts of signalsBlocked() in tst_QObject as that seemed to
have been the only check for blockSignals(true) actually blocking signal
emission.
Change-Id: I1cfac035e0e39203eea8626d43f316cc6244ee86
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qobject/tst_qobject.cpp')
-rw-r--r-- | tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 134 |
1 files changed, 5 insertions, 129 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 4776bdbbc9..a5b5b659ea 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -103,7 +103,6 @@ private slots: void recursiveSignalEmission(); #endif void signalBlocking(); - void signalBlockingMoveAssignment(); void blockingQueuedConnection(); void childEvents(); void installEventFilter(); @@ -2994,142 +2993,19 @@ void tst_QObject::signalBlocking() QVERIFY(receiver.called(1)); receiver.reset(); - { - QSignalBlocker blocker(&sender); - - sender.emitSignal1(); - QVERIFY(!receiver.called(1)); - receiver.reset(); - - sender.blockSignals(false); - - sender.emitSignal1(); - QVERIFY(receiver.called(1)); - receiver.reset(); - - sender.blockSignals(true); - - sender.emitSignal1(); - QVERIFY(!receiver.called(1)); - receiver.reset(); - - blocker.unblock(); - - sender.emitSignal1(); - QVERIFY(receiver.called(1)); - receiver.reset(); + sender.blockSignals(true); - blocker.reblock(); + sender.emitSignal1(); + QVERIFY(!receiver.called(1)); + receiver.reset(); - sender.emitSignal1(); - QVERIFY(!receiver.called(1)); - receiver.reset(); - } + sender.blockSignals(false); sender.emitSignal1(); QVERIFY(receiver.called(1)); receiver.reset(); } -void tst_QObject::signalBlockingMoveAssignment() -{ -#ifdef Q_COMPILER_RVALUE_REFS - QObject o1, o2; - - // move-assignment: both block other objects - { - QSignalBlocker b(&o1); - QVERIFY(o1.signalsBlocked()); - - QVERIFY(!o2.signalsBlocked()); - b = QSignalBlocker(&o2); - QVERIFY(!o1.signalsBlocked()); - QVERIFY(o2.signalsBlocked()); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - - // move-assignment: from inert other - { - QSignalBlocker b(&o1); - QVERIFY(o1.signalsBlocked()); - b = QSignalBlocker(0); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - - // move-assignment: to inert *this - { - QSignalBlocker b(0); - QVERIFY(!o1.signalsBlocked()); - { - QSignalBlocker inner(&o1); - QVERIFY(o1.signalsBlocked()); - b = std::move(inner); - } - QVERIFY(o1.signalsBlocked()); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - - // move-assignment: both block the same object, neither is unblocked - { - QSignalBlocker b(&o1); - QVERIFY(o1.signalsBlocked()); - { - b.unblock(); // make sure inner.m_blocked = false - QVERIFY(!o1.signalsBlocked()); - QSignalBlocker inner(&o1); - QVERIFY(o1.signalsBlocked()); - b.reblock(); - QVERIFY(o1.signalsBlocked()); - b = std::move(inner); - } - QVERIFY(o1.signalsBlocked()); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - - // move-assignment: both block the same object, but *this is unblocked - { - QSignalBlocker b(&o1); - QVERIFY(o1.signalsBlocked()); - b.unblock(); - QVERIFY(!o1.signalsBlocked()); - b = QSignalBlocker(&o1); - QVERIFY(o1.signalsBlocked()); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - - // move-assignment: both block the same object, but other is unblocked - { - QSignalBlocker b(&o1); - { - QVERIFY(o1.signalsBlocked()); - QSignalBlocker inner(&o1); - QVERIFY(o1.signalsBlocked()); - inner.unblock(); - QVERIFY(o1.signalsBlocked()); - b = std::move(inner); - QVERIFY(!o1.signalsBlocked()); - } - QVERIFY(!o1.signalsBlocked()); - } - - QVERIFY(!o1.signalsBlocked()); - QVERIFY(!o2.signalsBlocked()); - -#else - QSKIP("This compiler is not in C++11 mode or doesn't support move semantics"); -#endif // Q_COMPILER_RVALUE_REFS -} - void tst_QObject::blockingQueuedConnection() { { |