From: Kai Koehne Date: Fri, 11 Nov 2011 14:16:24 +0000 (+0100) Subject: Debugger: Add test case for profiling an app without block mode X-Git-Tag: qt-v5.0.0-alpha1~1121 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0107608634c31d7d0b7adc50325dda75b32cc4ec;p=profile%2Fivi%2Fqtdeclarative.git Debugger: Add test case for profiling an app without block mode Change-Id: I5c22eb89854eec7d8984504ec81d20892e82b551 Reviewed-by: Christiaan Janssen --- diff --git a/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp b/tests/auto/declarative/debugger/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp index 5227147..8359012 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"