qt5base-lts/tests/auto/dbus
Thiago Macieira 0d75f8e95a tst_QDBusAbstractInterface: fix racy test failing every so often
The explanation is in the code comment. Ever since QDBusConnections
began being processed in a separate thread, we were relying on the fact
that the main thread didn't begin processing its event queue until the
second event got posted (the event loop only exits after it has finished
processing all pending events). We had a race between the main thread
starting its processing, at which point it decides which is the last
event it will process, and the QDBusConnectionManager thread posting the
second event.

This is very fragile code, since it depends on the behavior of
QDBusConnectionPrivate (how it stores the signal relays in a hash) and
that of QHash with duplicate keys. This only works because the hash
key between the two connections is the same (it's only dependent on the
method name and interface name). If we ever begin using something that
isn't the same between "control" and "p", then with QHash's randomness,
we'll be racy again.

Change-Id: I42e7ef1a481840699a8dffff1406c3a4674ec3a6
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-09-24 07:37:05 +00:00
..
qdbusabstractadaptor tst_QDBusAbstractAdaptor: fix reception of signals from P2P connection 2015-09-15 02:09:00 +00:00
qdbusabstractinterface tst_QDBusAbstractInterface: fix racy test failing every so often 2015-09-24 07:37:05 +00:00
qdbusconnection And move the creation of connections to the thread 2015-09-15 02:08:45 +00:00
qdbusconnection_no_app And move the creation of connections to the thread 2015-09-15 02:08:45 +00:00
qdbusconnection_no_bus Update copyright headers 2015-02-11 06:49:51 +00:00
qdbuscontext Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbusinterface Autotest: rename sub tests from "test" to something meaningful 2015-07-18 02:22:40 +00:00
qdbuslocalcalls Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbusmarshall Don't try to dynamically resolve dbus symbols if QT_NO_LIBRARY 2015-08-13 15:02:55 +00:00
qdbusmetaobject Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbusmetatype Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbuspendingcall Use a dedicated thread for handling incoming libdbus-1 events 2015-09-15 02:08:36 +00:00
qdbuspendingreply Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbusreply Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbusservicewatcher QDBusServiceWatcher: Move the logic to QDBusConnectionPrivate 2015-09-15 02:08:50 +00:00
qdbusthreading Tests: remove insignificant flag for dbus tests on osx 2015-03-27 18:37:30 +00:00
qdbustype Don't try to dynamically resolve dbus symbols if QT_NO_LIBRARY 2015-08-13 15:02:55 +00:00
qdbusxmlparser Add getter and setter for qt_qhash_seed 2015-09-22 14:17:46 +00:00
dbus.pro And move the creation of connections to the thread 2015-09-15 02:08:45 +00:00