aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/debugger
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2012-03-16 16:44:24 +0100
committerQt by Nokia <qt-info@nokia.com>2012-04-24 15:58:25 +0200
commit05e57b7736f8c370476e197fc9d4f77f2cb01605 (patch)
tree5198341ca5e694ecada4e176eb44915684920517 /tests/auto/qml/debugger
parentbacc47f5a42f7da05ead35c4c4f2adf427ced786 (diff)
Debugger: Make sure stateChanged is called from debugger thread
Make sure stateAboutToBeChanged(), stateChanged() is always called from the debugger thread. This matches how messageReceived() is called. On exit, run an event loop until all stateAboutToBeChanged calls have returned. Change-Id: I9cd6199cc80552ad97e4b7d504ea91aa116a6a34 Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
Diffstat (limited to 'tests/auto/qml/debugger')
-rw-r--r--tests/auto/qml/debugger/qv8profilerservice/tst_qv8profilerservice.cpp1
-rw-r--r--tests/auto/qml/debugger/shared/qqmldebugtestservice.cpp15
-rw-r--r--tests/auto/qml/debugger/shared/qqmldebugtestservice.h4
3 files changed, 18 insertions, 2 deletions
diff --git a/tests/auto/qml/debugger/qv8profilerservice/tst_qv8profilerservice.cpp b/tests/auto/qml/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
index a258028dbf..d482e81009 100644
--- a/tests/auto/qml/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
+++ b/tests/auto/qml/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
@@ -314,7 +314,6 @@ void tst_QV8ProfilerService::profileOnExit()
m_client->startProfiling("");
QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
- //QVERIFY(!m_client->traceMessages.isEmpty());
}
void tst_QV8ProfilerService::console()
diff --git a/tests/auto/qml/debugger/shared/qqmldebugtestservice.cpp b/tests/auto/qml/debugger/shared/qqmldebugtestservice.cpp
index 1c8afd836b..33f5fc6ab9 100644
--- a/tests/auto/qml/debugger/shared/qqmldebugtestservice.cpp
+++ b/tests/auto/qml/debugger/shared/qqmldebugtestservice.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qqmldebugtestservice.h"
+#include <QThread>
QQmlDebugTestService::QQmlDebugTestService(const QString &s, float version, QObject *parent)
: QQmlDebugService(s, version, parent)
@@ -49,10 +50,22 @@ QQmlDebugTestService::QQmlDebugTestService(const QString &s, float version, QObj
void QQmlDebugTestService::messageReceived(const QByteArray &ba)
{
- sendMessage(ba);
+ Q_ASSERT(QThread::currentThread() != thread());
+ QMetaObject::invokeMethod(this, "_sendMessage", Qt::QueuedConnection, Q_ARG(QByteArray, ba));
+}
+
+void QQmlDebugTestService::stateAboutToBeChanged(QQmlDebugService::State state)
+{
+ Q_ASSERT(QThread::currentThread() != thread());
}
void QQmlDebugTestService::stateChanged(State)
{
+ Q_ASSERT(QThread::currentThread() != thread());
emit stateHasChanged();
}
+
+void QQmlDebugTestService::_sendMessage(const QByteArray &msg)
+{
+ QQmlDebugService::sendMessage(msg);
+}
diff --git a/tests/auto/qml/debugger/shared/qqmldebugtestservice.h b/tests/auto/qml/debugger/shared/qqmldebugtestservice.h
index 14fda551de..4b9fb47c06 100644
--- a/tests/auto/qml/debugger/shared/qqmldebugtestservice.h
+++ b/tests/auto/qml/debugger/shared/qqmldebugtestservice.h
@@ -54,8 +54,12 @@ public:
signals:
void stateHasChanged();
+private slots:
+ void _sendMessage(const QByteArray &msg);
+
protected:
virtual void messageReceived(const QByteArray &ba);
+ virtual void stateAboutToBeChanged(State state);
virtual void stateChanged(State state);
};