Allow QQmlDebugProcess to be child of other qobjects.
authorFrederik Gladhorn <frederik.gladhorn@digia.com>
Tue, 23 Oct 2012 12:11:18 +0000 (14:11 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 23 Oct 2012 13:29:46 +0000 (15:29 +0200)
Some tests when failing would leave the process running.
For example on my machine tst_qqmlinspector would hang and
restarting it would not work because the before started process was
still blocking the port.

Change-Id: I32dfb4874b18d7dcf34d0f40819b17dedd794ff3
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp
tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
tests/auto/qml/debugger/shared/debugutil.cpp
tests/auto/qml/debugger/shared/debugutil_p.h

index a98160e..2b9efb6 100644 (file)
@@ -179,7 +179,7 @@ void tst_QDebugMessageService::cleanupTestCase()
 void tst_QDebugMessageService::init()
 {
     m_connection = new QQmlDebugConnection();
-    m_process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene");
+    m_process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene", this);
     m_client = new QQmlDebugMsgClient(m_connection);
 
     m_process->start(QStringList() << QLatin1String(NORMALMODE) << QQmlDataTest::instance()->testFile(QMLFILE));
index ef82d82..b958a27 100644 (file)
@@ -1002,7 +1002,7 @@ void tst_QQmlDebugJS::cleanupTestCase()
 bool tst_QQmlDebugJS::init(const QString &qmlFile, bool blockMode)
 {
     connection = new QQmlDebugConnection();
-    process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene");
+    process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene", this);
     client = new QJSDebugClient(connection);
 
     if (blockMode)
index 3ee66fc..19a39c5 100644 (file)
@@ -108,7 +108,7 @@ void tst_QQmlEngineDebugInspectorIntegration::init()
     const QString argument = "-qmljsdebugger=port:" STR_PORT ",block";
 
     m_process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath)
-                                     + "/qmlscene");
+                                     + "/qmlscene", this);
     m_process->start(QStringList() << argument << testFile("qtquick2.qml"));
     QVERIFY2(m_process->waitForSessionStart(),
              "Could not launch application, or did not get 'Waiting for connection'.");
index 7a75f7b..f1a6c23 100644 (file)
@@ -86,7 +86,7 @@ void tst_QQmlInspector::init()
 {
     const QString argument = "-qmljsdebugger=port:" STR_PORT ",block";
 
-    m_process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene");
+    m_process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene", this);
     m_process->start(QStringList() << argument << testFile("qtquick2.qml"));
     QVERIFY2(m_process->waitForSessionStart(),
              "Could not launch application, or did not get 'Waiting for connection'.");
index dec4ab3..d8b538d 100644 (file)
@@ -240,7 +240,7 @@ void tst_QQmlProfilerService::connect(bool block, const QString &testFile)
 
     arguments << QQmlDataTest::instance()->testFile(testFile);
 
-    m_process = new QQmlDebugProcess(executable);
+    m_process = new QQmlDebugProcess(executable, this);
     m_process->start(QStringList() << arguments);
     QVERIFY2(m_process->waitForSessionStart(), "Could not launch application, or did not get 'Waiting for connection'.");
 
index f1700c8..df8042c 100644 (file)
@@ -83,8 +83,9 @@ void QQmlDebugTestClient::messageReceived(const QByteArray &ba)
     emit serverMessage(ba);
 }
 
-QQmlDebugProcess::QQmlDebugProcess(const QString &executable)
-    : m_executable(executable)
+QQmlDebugProcess::QQmlDebugProcess(const QString &executable, QObject *parent)
+    : QObject(parent)
+    , m_executable(executable)
     , m_started(false)
 {
     m_process.setProcessChannelMode(QProcess::MergedChannels);
index e5e8878..0791d05 100644 (file)
@@ -84,7 +84,7 @@ class QQmlDebugProcess : public QObject
 {
     Q_OBJECT
 public:
-    QQmlDebugProcess(const QString &executable);
+    QQmlDebugProcess(const QString &executable, QObject *parent = 0);
     ~QQmlDebugProcess();
 
     QString state();