aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-08-10 16:06:49 +0200
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-10-15 08:20:50 +0000
commit1a123472ba0e56d1fd772db430e6d4532f672a6e (patch)
tree6f63f7b63c42b6bb7eed9a57a379159fd0e6fde8 /tests
parent36cbf6a62aec4de253e935291bdd33370e7b7faa (diff)
Test enabling/disabling of combinations of debug services.
This tests the new QQmlDebuggingEnabler::setServices() method. Change-Id: I29b588fa425a8e3230c451d6ff73a1bde104bfc4 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/debugger/qqmldebugclient/tst_qqmldebugclient.cpp10
-rw-r--r--tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp91
-rw-r--r--tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp3
-rw-r--r--tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp9
4 files changed, 102 insertions, 11 deletions
diff --git a/tests/auto/qml/debugger/qqmldebugclient/tst_qqmldebugclient.cpp b/tests/auto/qml/debugger/qqmldebugclient/tst_qqmldebugclient.cpp
index 6fc6c6a914..abdc2483ea 100644
--- a/tests/auto/qml/debugger/qqmldebugclient/tst_qqmldebugclient.cpp
+++ b/tests/auto/qml/debugger/qqmldebugclient/tst_qqmldebugclient.cpp
@@ -68,10 +68,20 @@ private slots:
void tst_QQmlDebugClient::initTestCase()
{
QQmlDebugConnector::setPluginKey(QLatin1String("QQmlDebugServer"));
+ QQmlDebugConnector::setServices(QStringList()
+ << QStringLiteral("tst_QQmlDebugClient::handshake()"));
QTest::ignoreMessage(QtWarningMsg,
"QML debugger: Cannot set plugin key after loading the plugin.");
m_service = new QQmlDebugTestService("tst_QQmlDebugClient::handshake()");
+
+ foreach (const QString &service, QQmlDebuggingEnabler::debuggerServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+ foreach (const QString &service, QQmlDebuggingEnabler::inspectorServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+ foreach (const QString &service, QQmlDebuggingEnabler::profilerServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+
const QString waitingMsg = QString("QML Debugger: Waiting for connection on port %1...").arg(PORT);
QTest::ignoreMessage(QtDebugMsg, waitingMsg.toLatin1().constData());
QQmlDebuggingEnabler::startTcpDebugServer(PORT);
diff --git a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
index 98ef590317..e809a46009 100644
--- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
+++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp
@@ -53,13 +53,14 @@ private slots:
void initTestCase();
void cleanupTestCase();
void cleanup();
- void qmlscene();
- void qmlsceneBlock();
+ void qmlscene_data();
+ void qmlscene();
+ void custom_data();
void custom();
- void customBlock();
private:
+ void data();
QQmlDebugProcess *process;
QQmlDebugConnection *connection;
QTime t;
@@ -142,24 +143,92 @@ void tst_QQmlDebuggingEnabler::cleanup()
connection = 0;
}
-void tst_QQmlDebuggingEnabler::qmlscene()
+void tst_QQmlDebuggingEnabler::data()
{
- QVERIFY(init(false, true, 5555, 5565));
+ QTest::addColumn<bool>("blockMode");
+ QTest::addColumn<QStringList>("services");
+
+ QTest::newRow("noblock,all") << false << QStringList();
+ QTest::newRow("block,all") << true << QStringList();
+ QTest::newRow("noblock,debugger") << false << QQmlDebuggingEnabler::debuggerServices();
+ QTest::newRow("block,debugger") << true << QQmlDebuggingEnabler::debuggerServices();
+ QTest::newRow("noblock,inspector") << false << QQmlDebuggingEnabler::inspectorServices();
+ QTest::newRow("block,inspector") << true << QQmlDebuggingEnabler::inspectorServices();
+ QTest::newRow("noblock,profiler") << false << QQmlDebuggingEnabler::profilerServices();
+ QTest::newRow("block,profiler") << true << QQmlDebuggingEnabler::profilerServices();
+ QTest::newRow("noblock,debugger+inspector")
+ << false << QQmlDebuggingEnabler::debuggerServices() +
+ QQmlDebuggingEnabler::inspectorServices();
+ QTest::newRow("block,debugger+inspector")
+ << true << QQmlDebuggingEnabler::debuggerServices() +
+ QQmlDebuggingEnabler::inspectorServices();
+
}
-void tst_QQmlDebuggingEnabler::qmlsceneBlock()
+void tst_QQmlDebuggingEnabler::qmlscene_data()
{
- QVERIFY(init(true, true, 5555, 5565));
+ data();
}
-void tst_QQmlDebuggingEnabler::custom()
+void tst_QQmlDebuggingEnabler::qmlscene()
+{
+ QFETCH(bool, blockMode);
+ QFETCH(QStringList, services);
+
+ connection = new QQmlDebugConnection();
+ QList<QQmlDebugClient *> clients = connection->createOtherClients();
+ process = new QQmlDebugProcess(QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmlscene",
+ this);
+ process->setMaximumBindErrors(1);
+ process->start(QStringList()
+ << QString::fromLatin1("-qmljsdebugger=port:5555,5565%1%2%3")
+ .arg(blockMode ? QLatin1String(",block") : QString())
+ .arg(services.isEmpty() ? QString() : QString::fromLatin1(",services:"))
+ .arg(services.isEmpty() ? QString() : services.join(","))
+ << testFile(QLatin1String("test.qml")));
+
+ QVERIFY(process->waitForSessionStart());
+ connection->connectToHost("127.0.0.1", process->debugPort());
+ QVERIFY(connection->waitForConnected());
+ foreach (QQmlDebugClient *client, clients)
+ QCOMPARE(client->state(), (services.isEmpty() || services.contains(client->name())) ?
+ QQmlDebugClient::Enabled : QQmlDebugClient::Unavailable);
+}
+
+void tst_QQmlDebuggingEnabler::custom_data()
{
- QVERIFY(init(false, false, 5555, 5565));
+ data();
}
-void tst_QQmlDebuggingEnabler::customBlock()
+void tst_QQmlDebuggingEnabler::custom()
{
- QVERIFY(init(true, false, 5555, 5565));
+ QFETCH(bool, blockMode);
+ QFETCH(QStringList, services);
+ const int portFrom = 5555;
+ const int portTo = 5565;
+
+ connection = new QQmlDebugConnection();
+ QList<QQmlDebugClient *> clients = connection->createOtherClients();
+ process = new QQmlDebugProcess(QCoreApplication::applicationDirPath() +
+ QLatin1String("/qqmldebuggingenablerserver"), this);
+ process->setMaximumBindErrors(portTo - portFrom);
+
+ QStringList args;
+ if (blockMode)
+ args << QLatin1String("-block");
+
+ args << QString::number(portFrom) << QString::number(portTo);
+ if (!services.isEmpty())
+ args << QLatin1String("-services") << services;
+
+ process->start(args);
+
+ QVERIFY(process->waitForSessionStart());
+ connection->connectToHost("127.0.0.1", process->debugPort());
+ QVERIFY(connection->waitForConnected());
+ foreach (QQmlDebugClient *client, clients)
+ QCOMPARE(client->state(), (services.isEmpty() || services.contains(client->name())) ?
+ QQmlDebugClient::Enabled : QQmlDebugClient::Unavailable);
}
QTEST_MAIN(tst_QQmlDebuggingEnabler)
diff --git a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp
index bddece6452..e08461346f 100644
--- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp
+++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp
@@ -54,6 +54,9 @@ int main(int argc, char *argv[])
portTo = arguments.takeFirst().toInt();
}
+ if (arguments.size() && arguments.takeFirst() == QLatin1String("-services"))
+ QQmlDebuggingEnabler::setServices(arguments);
+
if (!portFrom || !portTo)
qFatal("Port range has to be specified.");
diff --git a/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp b/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
index b63c5c0a6d..166a079201 100644
--- a/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
+++ b/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
@@ -74,10 +74,19 @@ void tst_QQmlDebugService::initTestCase()
{
QQmlDataTest::initTestCase();
QQmlDebugConnector::setPluginKey(QLatin1String("QQmlDebugServer"));
+ QQmlDebugConnector::setServices(QStringList()
+ << QStringLiteral("tst_QQmlDebugService"));
QTest::ignoreMessage(QtWarningMsg,
"QML debugger: Cannot set plugin key after loading the plugin.");
m_service = new QQmlDebugTestService("tst_QQmlDebugService", 2);
+ foreach (const QString &service, QQmlDebuggingEnabler::debuggerServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+ foreach (const QString &service, QQmlDebuggingEnabler::inspectorServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+ foreach (const QString &service, QQmlDebuggingEnabler::profilerServices())
+ QCOMPARE(QQmlDebugConnector::instance()->service(service), (QQmlDebugService *)0);
+
const QString waitingMsg = QString("QML Debugger: Waiting for connection on port %1...").arg(PORT);
QTest::ignoreMessage(QtDebugMsg, waitingMsg.toLatin1().constData());
QQmlDebuggingEnabler::startTcpDebugServer(PORT);