aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/debugger
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2011-11-11 15:16:24 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-16 16:56:20 +0100
commit0107608634c31d7d0b7adc50325dda75b32cc4ec (patch)
treee565266ed7c27a543b3375e406e2a5d52a83d0a1 /tests/auto/declarative/debugger
parent781542f36e0ae12a238fe76c63f1613c662530a1 (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.cpp50
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"