summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2013-12-09 15:52:07 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-11 10:05:07 +0100
commit75df151eaae389b2674b6bb29e97ad10592f2d43 (patch)
tree3d24a1387fe7bd86401a8da1daaafe53f6e2c717 /tests/auto/corelib/kernel/qobject/tst_qobject.cpp
parent4031cb8610dd311910d550201230ea8ab0f6a89a (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.cpp134
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()
{
{