diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2014-12-11 17:42:49 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2014-12-20 07:37:12 +0100 |
commit | 36314ae75f2f13b6c93252dc2c93592bc0624296 (patch) | |
tree | 392041c334bebd46934ff4384ac776b380ea2a97 /tests/auto/dbus/qdbusabstractinterface | |
parent | 3148d0c7b403af1bd74a2082cdde61e6974b38c1 (diff) |
Fix handling of subprocesses for QtDBus unit tests on Windows
The executables are not in the same dir as on Unix, so we need to use
QFINDTESTDATA to find them. The DESTDIR setting prevents qmake from
placing the executables in a "debug/" subdir.
Change-Id: I1d6d10e6f6f109f55fd9809dcf83da0386f38772
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests/auto/dbus/qdbusabstractinterface')
3 files changed, 13 insertions, 6 deletions
diff --git a/tests/auto/dbus/qdbusabstractinterface/qpinger/qpinger.pro b/tests/auto/dbus/qdbusabstractinterface/qpinger/qpinger.pro index 5001ec2cd2..957b47e413 100644 --- a/tests/auto/dbus/qdbusabstractinterface/qpinger/qpinger.pro +++ b/tests/auto/dbus/qdbusabstractinterface/qpinger/qpinger.pro @@ -1,6 +1,7 @@ SOURCES = qpinger.cpp ../interface.cpp HEADERS = ../interface.h TARGET = qpinger +DESTDIR = ./ CONFIG -= app_bundle CONFIG += console QT = core dbus diff --git a/tests/auto/dbus/qdbusabstractinterface/test/test.pro b/tests/auto/dbus/qdbusabstractinterface/test/test.pro index 223c94866c..afd101455e 100644 --- a/tests/auto/dbus/qdbusabstractinterface/test/test.pro +++ b/tests/auto/dbus/qdbusabstractinterface/test/test.pro @@ -3,6 +3,7 @@ SOURCES += ../tst_qdbusabstractinterface.cpp ../interface.cpp HEADERS += ../interface.h TARGET = ../tst_qdbusabstractinterface +DESTDIR = ./ QT = core testlib QT += dbus diff --git a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp index 3ea2d939d9..6ab5e5ff61 100644 --- a/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp +++ b/tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp @@ -231,12 +231,13 @@ void tst_QDBusAbstractInterface::initTestCase() QVERIFY(!con.interface()->isServiceRegistered(serviceName)); // start peer server - #ifdef Q_OS_WIN - proc.start("qpinger"); - #else - proc.start("./qpinger/qpinger"); - #endif - QVERIFY(proc.waitForStarted()); +#ifdef Q_OS_WIN +# define EXE ".exe" +#else +# define EXE "" +#endif + proc.start(QFINDTESTDATA("qpinger/qpinger" EXE)); + QVERIFY2(proc.waitForStarted(), qPrintable(proc.errorString())); // verify service is now registered QTRY_VERIFY(con.interface()->isServiceRegistered(serviceName)); @@ -251,7 +252,11 @@ void tst_QDBusAbstractInterface::initTestCase() void tst_QDBusAbstractInterface::cleanupTestCase() { // Kill peer, resetting the object exported by a separate process +#ifdef Q_OS_WIN + proc.kill(); // non-GUI processes don't respond to QProcess::terminate() +#else proc.terminate(); +#endif QVERIFY(proc.waitForFinished() || proc.state() == QProcess::NotRunning); // Wait until the service is certainly not registered |