diff options
Diffstat (limited to 'tests/auto/qml/debugger/qqmldebuggingenabler')
4 files changed, 135 insertions, 74 deletions
diff --git a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/data/test.qml b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/data/test.qml index 5a7fa718f2..a36d0cae91 100644 --- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/data/test.qml +++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/data/test.qml @@ -1,31 +1,26 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** diff --git a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp index 98ef590317..8d1a165243 100644 --- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp +++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler/tst_qqmldebuggingenabler.cpp @@ -1,48 +1,45 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include <qtest.h> -#include <QtCore/QProcess> -#include <QtCore/QTimer> -#include <QtCore/QFileInfo> -#include <QtCore/QDir> -#include <QtCore/QMutex> -#include <QtCore/QLibraryInfo> - #include "debugutil_p.h" -#include "qqmldebugclient.h" #include "../../../shared/util.h" +#include <private/qqmldebugclient_p.h> +#include <private/qqmldebugconnection_p.h> + +#include <QtTest/qtest.h> +#include <QtCore/qprocess.h> +#include <QtCore/qtimer.h> +#include <QtCore/qfileinfo.h> +#include <QtCore/qdir.h> +#include <QtCore/qmutex.h> +#include <QtCore/qlibraryinfo.h> + class tst_QQmlDebuggingEnabler : public QQmlDataTest { Q_OBJECT @@ -53,13 +50,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 +140,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() { - QVERIFY(init(false, false, 5555, 5565)); + QFETCH(bool, blockMode); + QFETCH(QStringList, services); + + connection = new QQmlDebugConnection(); + QList<QQmlDebugClient *> clients = QQmlDebugTest::createOtherClients(connection); + 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::customBlock() +void tst_QQmlDebuggingEnabler::custom_data() { - QVERIFY(init(true, false, 5555, 5565)); + data(); +} + +void tst_QQmlDebuggingEnabler::custom() +{ + QFETCH(bool, blockMode); + QFETCH(QStringList, services); + const int portFrom = 5555; + const int portTo = 5565; + + connection = new QQmlDebugConnection(); + QList<QQmlDebugClient *> clients = QQmlDebugTest::createOtherClients(connection); + 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..cfbb31f9e1 100644 --- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp +++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.cpp @@ -1,38 +1,35 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "debugutil_p.h" -#include <QtCore/QCoreApplication> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qlibraryinfo.h> +#include <QtQml/qqmldebug.h> +#include <QtQml/qqmlengine.h> int main(int argc, char *argv[]) { @@ -54,6 +51,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/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.pro b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.pro index fdd9ce8f11..a40ff6978b 100644 --- a/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.pro +++ b/tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenablerserver/qqmldebuggingenablerserver.pro @@ -3,7 +3,7 @@ osx:CONFIG -= app_bundle CONFIG -= debug_and_release_target INCLUDEPATH += ../../shared SOURCES += qqmldebuggingenablerserver.cpp -DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 QT_QML_DEBUG_NO_WARNING +DEFINES += QT_QML_DEBUG_NO_WARNING DESTDIR = ../qqmldebuggingenabler |