tests/auto/qdbusperformance/tst_qdbusperformance.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/tests/auto/qdbusperformance/tst_qdbusperformance.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/tests/auto/qdbusperformance/tst_qdbusperformance.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -80,6 +80,14 @@
 
 void tst_QDBusPerformance::initTestCase()
 {
+    QDBusConnection con = QDBusConnection::sessionBus();
+    QVERIFY(con.isConnected());
+
+    QDBusServiceWatcher watcher(serviceName, con,
+                                QDBusServiceWatcher::WatchForRegistration);
+    connect(&watcher, SIGNAL(serviceRegistered(QString)),
+            &QTestEventLoop::instance(), SLOT(exitLoop()));
+
 #ifdef Q_OS_WIN
     proc.start("server");
 #else
@@ -87,19 +95,7 @@
 #endif
     QVERIFY(proc.waitForStarted());
 
-    QDBusConnection con = QDBusConnection::sessionBus();
-    QVERIFY(con.isConnected());
-
-    connect(con.interface(), SIGNAL(serviceOwnerChanged(QString,QString,QString)),
-            &QTestEventLoop::instance(), SLOT(exitLoop()));
-    QTime timer;
-    timer.start();
-
-    while (timer.elapsed() < 5000) {
-        QTestEventLoop::instance().enterLoop(5);
-        if (con.interface()->isServiceRegistered(serviceName))
-            break;
-    }
+    QTestEventLoop::instance().enterLoop(5);
     QVERIFY(con.interface()->isServiceRegistered(serviceName));
 
     remote = new QDBusInterface(serviceName, "/", "com.trolltech.autotests.Performance", con, this);