From ab272fff56be6a7f37d30943c2927ceb32a409f3 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 12 Dec 2011 16:28:30 +0100 Subject: [PATCH] QObject-test: Reorganize subprocess. On Windows, the signalbug.exe could not be launched since it is not next to tst_qobject.exe, which is in one of the 'release', 'debug' subfolders. Introduce a subdirectory structure similar to that of the QProcess test and use QFINDTESTDATA to locate it. Change-Id: Ie8f2ede8cb76f22a908cb77517a74076be11fbb7 Reviewed-by: Olivier Goffart Reviewed-by: Rohan McGovern --- tests/auto/corelib/kernel/qobject/.gitignore | 4 ++-- tests/auto/corelib/kernel/qobject/qobject.pro | 2 +- .../kernel/qobject/{ => signalbug}/signalbug.cpp | 0 .../kernel/qobject/{ => signalbug}/signalbug.h | 0 .../kernel/qobject/{ => signalbug}/signalbug.pro | 6 +++--- tests/auto/corelib/kernel/qobject/tst_qobject.cpp | 11 ++++++++++- 6 files changed, 16 insertions(+), 7 deletions(-) rename tests/auto/corelib/kernel/qobject/{ => signalbug}/signalbug.cpp (100%) rename tests/auto/corelib/kernel/qobject/{ => signalbug}/signalbug.h (100%) rename tests/auto/corelib/kernel/qobject/{ => signalbug}/signalbug.pro (73%) diff --git a/tests/auto/corelib/kernel/qobject/.gitignore b/tests/auto/corelib/kernel/qobject/.gitignore index ea4d6d7f067..7970e32c8f0 100644 --- a/tests/auto/corelib/kernel/qobject/.gitignore +++ b/tests/auto/corelib/kernel/qobject/.gitignore @@ -1,3 +1,3 @@ tst_qobject -signalbug -signalbug.exe +signalbug/signalbug +signalbug/signalbug.exe diff --git a/tests/auto/corelib/kernel/qobject/qobject.pro b/tests/auto/corelib/kernel/qobject/qobject.pro index 113e14a61d1..ee48f56b1de 100644 --- a/tests/auto/corelib/kernel/qobject/qobject.pro +++ b/tests/auto/corelib/kernel/qobject/qobject.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS = tst_qobject.pro signalbug.pro +SUBDIRS = signalbug tst_qobject.pro CONFIG += parallel_test diff --git a/tests/auto/corelib/kernel/qobject/signalbug.cpp b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp similarity index 100% rename from tests/auto/corelib/kernel/qobject/signalbug.cpp rename to tests/auto/corelib/kernel/qobject/signalbug/signalbug.cpp diff --git a/tests/auto/corelib/kernel/qobject/signalbug.h b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.h similarity index 100% rename from tests/auto/corelib/kernel/qobject/signalbug.h rename to tests/auto/corelib/kernel/qobject/signalbug/signalbug.h diff --git a/tests/auto/corelib/kernel/qobject/signalbug.pro b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.pro similarity index 73% rename from tests/auto/corelib/kernel/qobject/signalbug.pro rename to tests/auto/corelib/kernel/qobject/signalbug/signalbug.pro index ed3adf02426..19d36a63a13 100644 --- a/tests/auto/corelib/kernel/qobject/signalbug.pro +++ b/tests/auto/corelib/kernel/qobject/signalbug/signalbug.pro @@ -1,9 +1,9 @@ TEMPLATE = app -TARGET = DEPENDPATH += . INCLUDEPATH += . CONFIG -= app_bundle debug_and_release -DESTDIR=. +CONFIG += console +DESTDIR = ./ QT -= gui wince*: { LIBS += coredll.lib @@ -13,5 +13,5 @@ HEADERS += signalbug.h SOURCES += signalbug.cpp # This app is testdata for tst_qobject -target.path = $$[QT_INSTALL_TESTS]/tst_qobject +target.path = $$[QT_INSTALL_TESTS]/tst_qobject/$$TARGET INSTALLS += target diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 8f938a79feb..05b9229c3d1 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -65,6 +65,7 @@ class tst_QObject : public QObject { Q_OBJECT private slots: + void initTestCase(); void disconnect(); void connectByName(); void connectSignalsToSignalsWithDefaultArguments(); @@ -236,6 +237,12 @@ public slots: int ReceiverObject::sequence = 0; +void tst_QObject::initTestCase() +{ + const QString testDataDir = QFileInfo(QFINDTESTDATA("signalbug")).absolutePath(); + QVERIFY2(QDir::setCurrent(testDataDir), qPrintable("Could not chdir to " + testDataDir)); +} + void tst_QObject::disconnect() { SenderObject *s = new SenderObject; @@ -2794,7 +2801,9 @@ void tst_QObject::recursiveSignalEmission() { QProcess proc; // signalbug helper app should always be next to this test binary - proc.start(QCoreApplication::applicationDirPath() + "/signalbug"); + const QString path = QStringLiteral("signalbug/signalbug"); + proc.start(path); + QVERIFY2(proc.waitForStarted(), qPrintable(QString::fromLatin1("Cannot start '%1': %2").arg(path, proc.errorString()))); QVERIFY(proc.waitForFinished()); QVERIFY(proc.exitStatus() == QProcess::NormalExit); QCOMPARE(proc.exitCode(), 0);