summaryrefslogtreecommitdiffstats
path: root/tests/auto/other/qobjectrace/tst_qobjectrace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/other/qobjectrace/tst_qobjectrace.cpp')
-rw-r--r--tests/auto/other/qobjectrace/tst_qobjectrace.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/tests/auto/other/qobjectrace/tst_qobjectrace.cpp b/tests/auto/other/qobjectrace/tst_qobjectrace.cpp
index 71a90e83f7..775156e728 100644
--- a/tests/auto/other/qobjectrace/tst_qobjectrace.cpp
+++ b/tests/auto/other/qobjectrace/tst_qobjectrace.cpp
@@ -172,14 +172,18 @@ void tst_QObjectRace::moveToThreadRace()
class MyObject : public QObject
{ Q_OBJECT
+ bool ok;
+ public:
+ MyObject() : ok(true) {}
+ ~MyObject() { Q_ASSERT(ok); ok = false; }
public slots:
- void slot1() { emit signal1(); }
- void slot2() { emit signal2(); }
- void slot3() { emit signal3(); }
- void slot4() { emit signal4(); }
- void slot5() { emit signal5(); }
- void slot6() { emit signal6(); }
- void slot7() { emit signal7(); }
+ void slot1() { Q_ASSERT(ok); }
+ void slot2() { Q_ASSERT(ok); }
+ void slot3() { Q_ASSERT(ok); }
+ void slot4() { Q_ASSERT(ok); }
+ void slot5() { Q_ASSERT(ok); }
+ void slot6() { Q_ASSERT(ok); }
+ void slot7() { Q_ASSERT(ok); }
signals:
void signal1();
void signal2();
@@ -237,6 +241,10 @@ public:
disconnect(objects[((i+4)*41) % nAlive], _signalsPMF[(18*i)%7], objects[((i+5)*43) % nAlive], _slotsPMF[(19*i+2)%7] );
QMetaObject::Connection c = connect(objects[((i+5)*43) % nAlive], _signalsPMF[(9*i+1)%7], Functor());
+
+ for (int f = 0; f < 7; ++f)
+ emit (objects[i]->*_signalsPMF[f])();
+
disconnect(c);
disconnect(objects[i], _signalsPMF[(10*i+5)%7], 0, 0);
@@ -249,6 +257,9 @@ public:
delete objects[i];
}
+
+ //run the possible queued slots
+ qApp->processEvents();
}
};