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)
// 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);
}
}
QList<QByteArray> snapshotMessages;
signals:
+ void started();
void complete();
void snapshot();
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));
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.");
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.");
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.");
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.");
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());