diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-06-03 15:28:51 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-06-04 17:02:55 +0200 |
commit | 11a11d1280b1634628b9c4a92a0fc420ee8a3a81 (patch) | |
tree | b48d9608ef3f08123cdeea605068342131b32b44 /tests/auto/qml/debugger | |
parent | 52e07d564b65ed6ce26955a676c7692ad67686c1 (diff) | |
parent | fea26bb2941c3f24c4a5f3ad5efc1b85e0123ff3 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
The merge conflict is about the removal of "d1" from the register
set on ARM, but that was already done in dev in commit ddb33ee9ba9e1344caa9be5dbf4b534c3ede692e
The change in src/quick/scenegraph/coreapi/qsgrenderer.cpp with commit 2414f1675eab163b22dcc4e8ded80ed04d06369b
was reverted to what it was before, per Laszlo's advice.
Conflicts:
src/qml/jit/qv4isel_masm.cpp
Change-Id: I7bce546c5cdee01e37853a476d82279d4e72948b
Diffstat (limited to 'tests/auto/qml/debugger')
-rw-r--r-- | tests/auto/qml/debugger/debugger.pro | 4 | ||||
-rw-r--r-- | tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp | 234 |
2 files changed, 105 insertions, 133 deletions
diff --git a/tests/auto/qml/debugger/debugger.pro b/tests/auto/qml/debugger/debugger.pro index 4c4342a6a5..303e78db75 100644 --- a/tests/auto/qml/debugger/debugger.pro +++ b/tests/auto/qml/debugger/debugger.pro @@ -6,11 +6,7 @@ PUBLICTESTS += \ qqmlinspector \ qqmlprofilerservice \ qpacketprotocol \ -# qv4profilerservice \ -# qdebugmessageservice \ qqmlenginedebuginspectorintegrationtest \ - qqmlinspector \ - qqmlprofilerservice \ qqmlenginecontrol PRIVATETESTS += \ diff --git a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp index a918e23a05..5fd985f6d5 100644 --- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp +++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp @@ -136,7 +136,9 @@ public: { } - QList<QQmlProfilerData> traceMessages; + QList<QQmlProfilerData> synchronousMessages; + QList<QQmlProfilerData> asynchronousMessages; + QList<QQmlProfilerData> pixmapMessages; void setTraceState(bool enabled) { QByteArray message; @@ -171,6 +173,7 @@ private: QQmlProfilerClient *m_client; void connect(bool block, const QString &testFile); + void checkTraceReceived(); private slots: void cleanup(); @@ -305,7 +308,17 @@ void QQmlProfilerClient::messageReceived(const QByteArray &message) break; } QVERIFY(stream.atEnd()); - traceMessages.append(data); + if (data.messageType == QQmlProfilerClient::PixmapCacheEvent) + pixmapMessages.append(data); + else if (data.messageType == QQmlProfilerClient::SceneGraphFrame || + (data.messageType == QQmlProfilerClient::Event && + (data.detailType == QQmlProfilerClient::FramePaint || + data.detailType == QQmlProfilerClient::AnimationFrame || + data.detailType == QQmlProfilerClient::Mouse || + data.detailType == QQmlProfilerClient::Key))) + asynchronousMessages.append(data); + else + synchronousMessages.append(data); } void tst_QQmlProfilerService::connect(bool block, const QString &testFile) @@ -331,9 +344,44 @@ void tst_QQmlProfilerService::connect(bool block, const QString &testFile) m_connection->connectToHost(QLatin1String("127.0.0.1"), port); } +void tst_QQmlProfilerService::checkTraceReceived() +{ + QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); + QVERIFY(m_client->synchronousMessages.count()); + + // must start with "StartTrace" + QCOMPARE(m_client->synchronousMessages.first().messageType, (int)QQmlProfilerClient::Event); + QCOMPARE(m_client->synchronousMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); + + // must end with "EndTrace" + QCOMPARE(m_client->synchronousMessages.last().messageType, (int)QQmlProfilerClient::Event); + QCOMPARE(m_client->synchronousMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); +} + void tst_QQmlProfilerService::cleanup() { if (QTest::currentTestFailed()) { + qDebug() << "Synchronous Messages:" << m_client->synchronousMessages.count(); + int i = 0; + foreach (const QQmlProfilerData &data, m_client->synchronousMessages) { + qDebug() << i++ << data.time << data.messageType << data.detailType << data.detailData + << data.line << data.column; + } + qDebug() << " "; + qDebug() << "Asynchronous Messages:" << m_client->asynchronousMessages.count(); + i = 0; + foreach (const QQmlProfilerData &data, m_client->asynchronousMessages) { + qDebug() << i++ << data.time << data.messageType << data.detailType << data.detailData + << data.framerate << data.animationcount << data.line << data.column; + } + qDebug() << " "; + qDebug() << "Pixmap Cache Messages:" << m_client->pixmapMessages.count(); + i = 0; + foreach (const QQmlProfilerData &data, m_client->pixmapMessages) { + qDebug() << i++ << data.time << data.messageType << data.detailType << data.detailData + << data.line << data.column; + } + qDebug() << " "; qDebug() << "Process State:" << (m_process ? m_process->state() : QLatin1String("null")); qDebug() << "Application Output:" << (m_process ? m_process->output() : QLatin1String("null")); qDebug() << "Connection State:" << (m_connection ? m_connection->stateString() : QLatin1String("null")); @@ -355,16 +403,7 @@ void tst_QQmlProfilerService::blockingConnectWithTraceEnabled() m_client->setTraceState(true); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - - QVERIFY(m_client->traceMessages.count()); - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); } void tst_QQmlProfilerService::blockingConnectWithTraceDisabled() @@ -376,17 +415,7 @@ void tst_QQmlProfilerService::blockingConnectWithTraceDisabled() m_client->setTraceState(false); m_client->setTraceState(true); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - - QVERIFY(m_client->traceMessages.count()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); } void tst_QQmlProfilerService::nonBlockingConnect() @@ -397,16 +426,7 @@ void tst_QQmlProfilerService::nonBlockingConnect() m_client->setTraceState(true); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - QVERIFY(m_client->traceMessages.count()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); } void tst_QQmlProfilerService::pixmapCacheData() @@ -424,35 +444,27 @@ void tst_QQmlProfilerService::pixmapCacheData() m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - QVERIFY2(m_client->traceMessages.count() >= 20, - QString::number(m_client->traceMessages.count()).toUtf8().constData()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); + checkTraceReceived(); + QVERIFY2(m_client->pixmapMessages.count() >= 4, + QString::number(m_client->pixmapMessages.count()).toUtf8().constData()); // image starting to load - QCOMPARE(m_client->traceMessages[16].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); - QCOMPARE(m_client->traceMessages[16].detailType, (int)QQmlProfilerClient::PixmapLoadingStarted); + QCOMPARE(m_client->pixmapMessages[0].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); + QCOMPARE(m_client->pixmapMessages[0].detailType, (int)QQmlProfilerClient::PixmapLoadingStarted); // image size - QCOMPARE(m_client->traceMessages[17].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); - QCOMPARE(m_client->traceMessages[17].detailType, (int)QQmlProfilerClient::PixmapSizeKnown); - QCOMPARE(m_client->traceMessages[17].line, 2); // width - QCOMPARE(m_client->traceMessages[17].column, 2); // height + QCOMPARE(m_client->pixmapMessages[1].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); + QCOMPARE(m_client->pixmapMessages[1].detailType, (int)QQmlProfilerClient::PixmapSizeKnown); + QCOMPARE(m_client->pixmapMessages[1].line, 2); // width + QCOMPARE(m_client->pixmapMessages[1].column, 2); // height // image loaded - QCOMPARE(m_client->traceMessages[18].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); - QCOMPARE(m_client->traceMessages[18].detailType, (int)QQmlProfilerClient::PixmapLoadingFinished); + QCOMPARE(m_client->pixmapMessages[2].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); + QCOMPARE(m_client->pixmapMessages[2].detailType, (int)QQmlProfilerClient::PixmapLoadingFinished); // cache size - QCOMPARE(m_client->traceMessages[19].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); - QCOMPARE(m_client->traceMessages[19].detailType, (int)QQmlProfilerClient::PixmapCacheCountChanged); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + QCOMPARE(m_client->pixmapMessages[3].messageType, (int)QQmlProfilerClient::PixmapCacheEvent); + QCOMPARE(m_client->pixmapMessages[3].detailType, (int)QQmlProfilerClient::PixmapCacheCountChanged); } @@ -468,8 +480,7 @@ void tst_QQmlProfilerService::scenegraphData() QVERIFY(QQmlDebugTest::waitForSignal(m_process, SIGNAL(readyReadStandardOutput()))); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - QVERIFY(m_client->traceMessages.count()); + checkTraceReceived(); // check that at least one frame was rendered // there should be a SGPolishAndSync + SGRendererFrame + SGRenderLoopFrame sequence @@ -477,7 +488,7 @@ void tst_QQmlProfilerService::scenegraphData() // // since the rendering happens in a different thread, there could be other unrelated events interleaved int loopcheck = 0; - foreach (const QQmlProfilerData &msg, m_client->traceMessages) { + foreach (const QQmlProfilerData &msg, m_client->asynchronousMessages) { if (msg.messageType == QQmlProfilerClient::SceneGraphFrame) { if (loopcheck == 0 && msg.detailType == QQmlProfilerClient::SceneGraphContextFrame) loopcheck = 1; @@ -498,17 +509,7 @@ void tst_QQmlProfilerService::profileOnExit() m_client->setTraceState(true); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - QVERIFY2(m_client->traceMessages.count() >= 2, - QString::number(m_client->traceMessages.count()).toUtf8().constData()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); } void tst_QQmlProfilerService::controlFromJS() @@ -518,17 +519,7 @@ void tst_QQmlProfilerService::controlFromJS() QTRY_COMPARE(m_client->state(), QQmlDebugClient::Enabled); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - QVERIFY2(m_client->traceMessages.count() >= 2, - QString::number(m_client->traceMessages.count()).toUtf8().constData()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); } void tst_QQmlProfilerService::signalSourceLocation() @@ -541,32 +532,24 @@ void tst_QQmlProfilerService::signalSourceLocation() while (!(m_process->output().contains(QLatin1String("500")))) QVERIFY(QQmlDebugTest::waitForSignal(m_process, SIGNAL(readyReadStandardOutput()))); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); - - QVERIFY2(m_client->traceMessages.count() >= 20, - QString::number(m_client->traceMessages.count()).toUtf8().constData()); - - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - QCOMPARE(m_client->traceMessages[14].messageType, (int)QQmlProfilerClient::RangeLocation); - QCOMPARE(m_client->traceMessages[14].detailType, (int)QQmlProfilerClient::HandlingSignal); - QVERIFY2(m_client->traceMessages[14].detailData.endsWith("signalSourceLocation.qml"), - m_client->traceMessages[14].detailData.toUtf8().constData()); - QCOMPARE(m_client->traceMessages[14].line, 8); - QCOMPARE(m_client->traceMessages[14].column, 28); - - QCOMPARE(m_client->traceMessages[19].messageType, (int)QQmlProfilerClient::RangeLocation); - QCOMPARE(m_client->traceMessages[19].detailType, (int)QQmlProfilerClient::HandlingSignal); - QVERIFY2(m_client->traceMessages[19].detailData.endsWith("signalSourceLocation.qml"), - m_client->traceMessages[19].detailData.toUtf8().constData()); - QCOMPARE(m_client->traceMessages[19].line, 7); - QCOMPARE(m_client->traceMessages[19].column, 21); - - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + checkTraceReceived(); + + QVERIFY2(m_client->synchronousMessages.count() >= 20, + QString::number(m_client->synchronousMessages.count()).toUtf8().constData()); + + QCOMPARE(m_client->synchronousMessages[14].messageType, (int)QQmlProfilerClient::RangeLocation); + QCOMPARE(m_client->synchronousMessages[14].detailType, (int)QQmlProfilerClient::HandlingSignal); + QVERIFY2(m_client->synchronousMessages[14].detailData.endsWith("signalSourceLocation.qml"), + m_client->synchronousMessages[14].detailData.toUtf8().constData()); + QCOMPARE(m_client->synchronousMessages[14].line, 8); + QCOMPARE(m_client->synchronousMessages[14].column, 28); + + QCOMPARE(m_client->synchronousMessages[19].messageType, (int)QQmlProfilerClient::RangeLocation); + QCOMPARE(m_client->synchronousMessages[19].detailType, (int)QQmlProfilerClient::HandlingSignal); + QVERIFY2(m_client->synchronousMessages[19].detailData.endsWith("signalSourceLocation.qml"), + m_client->synchronousMessages[19].detailData.toUtf8().constData()); + QCOMPARE(m_client->synchronousMessages[19].line, 7); + QCOMPARE(m_client->synchronousMessages[19].column, 21); } void tst_QQmlProfilerService::javascript() @@ -579,35 +562,28 @@ void tst_QQmlProfilerService::javascript() while (!(m_process->output().contains(QLatin1String("done")))) QVERIFY(QQmlDebugTest::waitForSignal(m_process, SIGNAL(readyReadStandardOutput()))); m_client->setTraceState(false); - QVERIFY2(QQmlDebugTest::waitForSignal(m_client, SIGNAL(complete())), "No trace received in time."); + checkTraceReceived(); - QVERIFY2(m_client->traceMessages.count() >= 36, - QString::number(m_client->traceMessages.count()).toUtf8().constData()); - // must start with "StartTrace" - QCOMPARE(m_client->traceMessages.first().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.first().detailType, (int)QQmlProfilerClient::StartTrace); - - QCOMPARE(m_client->traceMessages[32].messageType, (int)QQmlProfilerClient::RangeStart); - QCOMPARE(m_client->traceMessages[32].detailType, (int)QQmlProfilerClient::Javascript); + QVERIFY2(m_client->synchronousMessages.count() >= 36, + QString::number(m_client->synchronousMessages.count()).toUtf8().constData()); - QCOMPARE(m_client->traceMessages[33].messageType, (int)QQmlProfilerClient::RangeLocation); - QCOMPARE(m_client->traceMessages[33].detailType, (int)QQmlProfilerClient::Javascript); - QVERIFY2(m_client->traceMessages[33].detailData.endsWith("javascript.qml"), - m_client->traceMessages[33].detailData.toUtf8().constData()); - QCOMPARE(m_client->traceMessages[33].line, 4); - QCOMPARE(m_client->traceMessages[33].column, 5); + QCOMPARE(m_client->synchronousMessages[32].messageType, (int)QQmlProfilerClient::RangeStart); + QCOMPARE(m_client->synchronousMessages[32].detailType, (int)QQmlProfilerClient::Javascript); - QCOMPARE(m_client->traceMessages[34].messageType, (int)QQmlProfilerClient::RangeData); - QCOMPARE(m_client->traceMessages[34].detailType, (int)QQmlProfilerClient::Javascript); - QVERIFY2(m_client->traceMessages[34].detailData == "something", - m_client->traceMessages[34].detailData.toUtf8().constData()); + QCOMPARE(m_client->synchronousMessages[33].messageType, (int)QQmlProfilerClient::RangeLocation); + QCOMPARE(m_client->synchronousMessages[33].detailType, (int)QQmlProfilerClient::Javascript); + QVERIFY2(m_client->synchronousMessages[33].detailData.endsWith("javascript.qml"), + m_client->synchronousMessages[33].detailData.toUtf8().constData()); + QCOMPARE(m_client->synchronousMessages[33].line, 4); + QCOMPARE(m_client->synchronousMessages[33].column, 5); - QCOMPARE(m_client->traceMessages[35].messageType, (int)QQmlProfilerClient::RangeEnd); - QCOMPARE(m_client->traceMessages[35].detailType, (int)QQmlProfilerClient::Javascript); + QCOMPARE(m_client->synchronousMessages[34].messageType, (int)QQmlProfilerClient::RangeData); + QCOMPARE(m_client->synchronousMessages[34].detailType, (int)QQmlProfilerClient::Javascript); + QVERIFY2(m_client->synchronousMessages[34].detailData == "something", + m_client->synchronousMessages[34].detailData.toUtf8().constData()); - // must end with "EndTrace" - QCOMPARE(m_client->traceMessages.last().messageType, (int)QQmlProfilerClient::Event); - QCOMPARE(m_client->traceMessages.last().detailType, (int)QQmlProfilerClient::EndTrace); + QCOMPARE(m_client->synchronousMessages[35].messageType, (int)QQmlProfilerClient::RangeEnd); + QCOMPARE(m_client->synchronousMessages[35].detailType, (int)QQmlProfilerClient::Javascript); } QTEST_MAIN(tst_QQmlProfilerService) |