diff options
author | Kai Koehne <kai.koehne@nokia.com> | 2011-11-11 15:16:24 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-16 16:56:20 +0100 |
commit | 0107608634c31d7d0b7adc50325dda75b32cc4ec (patch) | |
tree | e565266ed7c27a543b3375e406e2a5d52a83d0a1 /tests/auto/declarative/debugger | |
parent | 781542f36e0ae12a238fe76c63f1613c662530a1 (diff) |
Debugger: Add test case for profiling an app without block mode
Change-Id: I5c22eb89854eec7d8984504ec81d20892e82b551
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
Diffstat (limited to 'tests/auto/declarative/debugger')
-rw-r--r-- | tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp b/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp index 52271477e7..8359012e2b 100644 --- a/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp +++ b/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp @@ -92,12 +92,14 @@ private: QDeclarativeDebugConnection *m_connection; QDeclarativeDebugTraceClient *m_client; + void connect(bool block); + private slots: - void init(); void cleanup(); - void connectWithTraceEnabled(); - void connectWithTraceDisabled(); + void blockingConnectWithTraceEnabled(); + void blockingConnectWithTraceDisabled(); + void nonBlockingConnect(); }; void QDeclarativeDebugTraceClient::messageReceived(const QByteArray &message) @@ -178,11 +180,16 @@ void QDeclarativeDebugTraceClient::messageReceived(const QByteArray &message) traceMessages.append(data); } -void tst_QDeclarativeDebugTrace::init() +void tst_QDeclarativeDebugTrace::connect(bool block) { const QString executable = QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene"; QStringList arguments; - arguments << QString("-qmljsdebugger=port:"STR_PORT",block"); + + if (block) + arguments << QString("-qmljsdebugger=port:"STR_PORT",block"); + else + arguments << QString("-qmljsdebugger=port:"STR_PORT); + arguments << QString(TESTDATA(QLatin1String("test.qml"))); m_process = new QDeclarativeDebugProcess(executable); @@ -206,9 +213,11 @@ void tst_QDeclarativeDebugTrace::cleanup() delete m_client; } -void tst_QDeclarativeDebugTrace::connectWithTraceEnabled() +void tst_QDeclarativeDebugTrace::blockingConnectWithTraceEnabled() { + connect(true); QTRY_COMPARE(m_client->status(), QDeclarativeDebugClient::Enabled); + m_client->setTraceStatus(true); m_client->setTraceStatus(false); if (!QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete()))) { @@ -217,6 +226,9 @@ void tst_QDeclarativeDebugTrace::connectWithTraceEnabled() QFAIL(qPrintable(failMsg)); } + for (int i = 0; i < m_client->traceMessages.size(); ++i) + qDebug() << m_client->traceMessages.at(i).messageType << m_client->traceMessages.at(i).detailType; + // must start with "StartTrace" QCOMPARE(m_client->traceMessages.first().messageType, (int)QDeclarativeDebugTrace::Event); QCOMPARE(m_client->traceMessages.first().detailType, (int)QDeclarativeDebugTrace::StartTrace); @@ -226,9 +238,11 @@ void tst_QDeclarativeDebugTrace::connectWithTraceEnabled() QCOMPARE(m_client->traceMessages.last().detailType, (int)QDeclarativeDebugTrace::EndTrace); } -void tst_QDeclarativeDebugTrace::connectWithTraceDisabled() +void tst_QDeclarativeDebugTrace::blockingConnectWithTraceDisabled() { + connect(true); QTRY_COMPARE(m_client->status(), QDeclarativeDebugClient::Enabled); + m_client->setTraceStatus(false); m_client->setTraceStatus(true); m_client->setTraceStatus(false); @@ -247,6 +261,28 @@ void tst_QDeclarativeDebugTrace::connectWithTraceDisabled() QCOMPARE(m_client->traceMessages.last().detailType, (int)QDeclarativeDebugTrace::EndTrace); } +void tst_QDeclarativeDebugTrace::nonBlockingConnect() +{ + connect(false); + QTRY_COMPARE(m_client->status(), QDeclarativeDebugClient::Enabled); + + m_client->setTraceStatus(true); + m_client->setTraceStatus(false); + if (!QDeclarativeDebugTest::waitForSignal(m_client, SIGNAL(complete()))) { + QString failMsg + = QString("No trace received in time. App output: \n\n").arg(m_process->output()); + QFAIL(qPrintable(failMsg)); + } + + // must start with "StartTrace" + QCOMPARE(m_client->traceMessages.first().messageType, (int)QDeclarativeDebugTrace::Event); + QCOMPARE(m_client->traceMessages.first().detailType, (int)QDeclarativeDebugTrace::StartTrace); + + // must end with "EndTrace" + QCOMPARE(m_client->traceMessages.last().messageType, (int)QDeclarativeDebugTrace::Event); + QCOMPARE(m_client->traceMessages.last().detailType, (int)QDeclarativeDebugTrace::EndTrace); +} + QTEST_MAIN(tst_QDeclarativeDebugTrace) #include "tst_qdeclarativedebugtrace.moc" |