aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@nokia.com>2012-02-27 13:01:03 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-27 15:26:26 +0100
commitcfad9eb4df8b8e389143b138ca4536bca0d163eb (patch)
tree5f937943d987870eb47f26432887ab7db685d73d
parent8e3284135d2be23ca1be79569271f39092d6d6b4 (diff)
QmlProfiler: send v8 profiling started signal
Change-Id: Ie26bd47c9b79a7f524b9c5bc59146be1ea93761d Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
-rw-r--r--src/declarative/debugger/qv8profilerservice.cpp14
-rw-r--r--src/declarative/debugger/qv8profilerservice_p.h1
-rw-r--r--tests/auto/declarative/debugger/qv8profilerservice/tst_qv8profilerservice.cpp14
3 files changed, 29 insertions, 0 deletions
diff --git a/src/declarative/debugger/qv8profilerservice.cpp b/src/declarative/debugger/qv8profilerservice.cpp
index 5ae2d01cc2..7a8a3507cf 100644
--- a/src/declarative/debugger/qv8profilerservice.cpp
+++ b/src/declarative/debugger/qv8profilerservice.cpp
@@ -187,6 +187,13 @@ void QV8ProfilerService::startProfiling(const QString &title)
v8::CpuProfiler::StartProfiling(v8title);
d->m_ongoing.append(title);
+
+ // indicate profiling started
+ QByteArray data;
+ QDataStream ds(&data, QIODevice::WriteOnly);
+ ds << (int)QV8ProfilerService::V8Started;
+
+ sendMessage(data);
}
void QV8ProfilerService::stopProfiling(const QString &title)
@@ -205,6 +212,13 @@ void QV8ProfilerService::stopProfiling(const QString &title)
// can happen at start
const v8::CpuProfileNode *rootNode = cpuProfile->GetTopDownRoot();
d->printProfileTree(rootNode);
+ } else {
+ // indicate completion, even without data
+ QByteArray data;
+ QDataStream ds(&data, QIODevice::WriteOnly);
+ ds << (int)QV8ProfilerService::V8Complete;
+
+ sendMessage(data);
}
}
diff --git a/src/declarative/debugger/qv8profilerservice_p.h b/src/declarative/debugger/qv8profilerservice_p.h
index 706907ae23..3762845fd3 100644
--- a/src/declarative/debugger/qv8profilerservice_p.h
+++ b/src/declarative/debugger/qv8profilerservice_p.h
@@ -85,6 +85,7 @@ public:
V8Complete,
V8SnapshotChunk,
V8SnapshotComplete,
+ V8Started,
V8MaximumMessage
};
diff --git a/tests/auto/declarative/debugger/qv8profilerservice/tst_qv8profilerservice.cpp b/tests/auto/declarative/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
index 92b893afc6..165783fed5 100644
--- a/tests/auto/declarative/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
+++ b/tests/auto/declarative/debugger/qv8profilerservice/tst_qv8profilerservice.cpp
@@ -91,6 +91,7 @@ public:
QList<QByteArray> snapshotMessages;
signals:
+ void started();
void complete();
void snapshot();
@@ -158,6 +159,9 @@ void QV8ProfilerClient::messageReceived(const QByteArray &message)
case QV8ProfilerService::V8SnapshotComplete:
emit snapshot();
break;
+ case QV8ProfilerService::V8Started:
+ emit started();
+ break;
default:
QString failMessage = QString("Unknown message type: %1").arg(messageType);
QFAIL(qPrintable(failMessage));
@@ -208,6 +212,8 @@ void tst_QV8ProfilerService::blockingConnectWithTraceEnabled()
QTRY_COMPARE(m_client->state(), QDeclarativeDebugClient::Enabled);
m_client->startProfiling("");
+ QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(started())),
+ "No start signal received in time.");
m_client->stopProfiling("");
QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
@@ -225,6 +231,8 @@ void tst_QV8ProfilerService::blockingConnectWithTraceDisabled()
QFAIL(qPrintable(failMsg));
}
m_client->startProfiling("");
+ QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(started())),
+ "No start signal received in time.");
m_client->stopProfiling("");
QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
@@ -236,6 +244,8 @@ void tst_QV8ProfilerService::nonBlockingConnect()
QTRY_COMPARE(m_client->state(), QDeclarativeDebugClient::Enabled);
m_client->startProfiling("");
+ QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(started())),
+ "No start signal received in time.");
m_client->stopProfiling("");
QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
@@ -257,6 +267,8 @@ void tst_QV8ProfilerService::profileOnExit()
QTRY_COMPARE(m_client->state(), QDeclarativeDebugClient::Enabled);
m_client->startProfiling("");
+ QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(started())),
+ "No start signal received in time.");
QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
@@ -270,6 +282,8 @@ void tst_QV8ProfilerService::console()
m_client->stopProfiling("");
+ QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(started())),
+ "No start signal received in time.");
QVERIFY2(QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete())),
"No trace received in time.");
QVERIFY(!m_client->traceMessages.isEmpty());