aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-01-04 18:45:18 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-01-12 20:58:41 +0100
commit843be43f18ecb007a0bb5fbb9034b8643a28b196 (patch)
tree107ee060136fdbf717cf9ca94f5e1deffd106901 /src
parent06ab8d790dfab32472bcc20736c7486bf43beeba (diff)
Merge the QtTest and Qt.test.qtestroot QML modules
There is no point in having them separate and this way the plugin can be optional. Fixes: QTBUG-89804 Change-Id: Ic7de35f6ee7abde4840841e17d21c2b709f6db7d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/imports/testlib/.prev_CMakeLists.txt18
-rw-r--r--src/imports/testlib/CMakeLists.txt13
-rw-r--r--src/imports/testlib/TestCase.qml1
-rw-r--r--src/imports/testlib/main.cpp14
-rw-r--r--src/imports/testlib/qmldir2
-rw-r--r--src/imports/testlib/testlib.pro14
-rw-r--r--src/qmltest/.prev_CMakeLists.txt20
-rw-r--r--src/qmltest/CMakeLists.txt32
-rw-r--r--src/qmltest/qmldir2
-rw-r--r--src/qmltest/qmltest.pro12
-rw-r--r--src/qmltest/quicktest.cpp12
-rw-r--r--src/qmltest/quicktest_p.h22
-rw-r--r--src/qmltest/quicktestevent.cpp (renamed from src/imports/testlib/quicktestevent.cpp)0
-rw-r--r--src/qmltest/quicktestevent_p.h (renamed from src/imports/testlib/quicktestevent_p.h)0
-rw-r--r--src/qmltest/quicktestglobal_p.h (renamed from src/imports/testlib/quicktestresultforeign_p.h)24
-rw-r--r--src/qmltest/quicktestresult_p.h7
-rw-r--r--src/qmltest/quicktestutil.cpp (renamed from src/imports/testlib/quicktestutil.cpp)0
-rw-r--r--src/qmltest/quicktestutil_p.h (renamed from src/imports/testlib/quicktestutil_p.h)0
18 files changed, 60 insertions, 133 deletions
diff --git a/src/imports/testlib/.prev_CMakeLists.txt b/src/imports/testlib/.prev_CMakeLists.txt
index b7a6ff468a..787f163a84 100644
--- a/src/imports/testlib/.prev_CMakeLists.txt
+++ b/src/imports/testlib/.prev_CMakeLists.txt
@@ -4,32 +4,23 @@
## qmltestplugin Plugin:
#####################################################################
-qt_add_qml_module(qmltestplugin
+qt_internal_add_qml_module(qmltestplugin
URI "QtTest"
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QTestQmlModule
DEPENDENCIES
QtQuick.Window/2.0
- GENERATE_QMLTYPES
+ PLUGIN_OPTIONAL
SOURCES
main.cpp
- quicktestevent.cpp quicktestevent_p.h
- quicktestresultforeign_p.h
- quicktestutil.cpp quicktestutil_p.h
PUBLIC_LIBRARIES
Qt::Core
- Qt::CorePrivate
- Qt::Gui
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::Quick
+ Qt::Qml
Qt::QuickTestPrivate
- Qt::Test
)
#### Keys ignored in scope 1:.:.:testlib.pro:<TRUE>:
# CXX_MODULE = "qml"
-# OTHER_FILES = "testlib.json"
# QML_FILES = "TestCase.qml" "SignalSpy.qml" "testlogger.js"
# QML_IMPORT_VERSION = "$$QT_VERSION"
# TARGETPATH = "QtTest"
@@ -45,6 +36,9 @@ set_source_files_properties(TestCase.qml PROPERTIES
set_source_files_properties(SignalSpy.qml PROPERTIES
QT_QML_SOURCE_VERSION "1.0"
)
+set_source_files_properties(testlogger.js PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
qt6_target_qml_files(qmltestplugin
FILES
diff --git a/src/imports/testlib/CMakeLists.txt b/src/imports/testlib/CMakeLists.txt
index d340823a87..1e199b947b 100644
--- a/src/imports/testlib/CMakeLists.txt
+++ b/src/imports/testlib/CMakeLists.txt
@@ -10,27 +10,18 @@ qt_internal_add_qml_module(qmltestplugin
CLASSNAME QTestQmlModule
DEPENDENCIES
QtQuick.Window/2.0
- GENERATE_QMLTYPES
- INSTALL_QMLTYPES
+ PLUGIN_OPTIONAL
SOURCES
main.cpp
- quicktestevent.cpp quicktestevent_p.h
- quicktestresultforeign_p.h
- quicktestutil.cpp quicktestutil_p.h
PUBLIC_LIBRARIES
Qt::Core
- Qt::CorePrivate
Qt::Gui
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::Quick
+ Qt::Qml
Qt::QuickTestPrivate
- Qt::Test
)
#### Keys ignored in scope 1:.:.:testlib.pro:<TRUE>:
# CXX_MODULE = "qml"
-# OTHER_FILES = "testlib.json"
# QML_FILES = "TestCase.qml" "SignalSpy.qml" "testlogger.js"
# QML_IMPORT_VERSION = "$$QT_VERSION"
# TARGETPATH = "QtTest"
diff --git a/src/imports/testlib/TestCase.qml b/src/imports/testlib/TestCase.qml
index fd0b799399..1c9011e01e 100644
--- a/src/imports/testlib/TestCase.qml
+++ b/src/imports/testlib/TestCase.qml
@@ -41,7 +41,6 @@ import QtQuick 2.0
import QtQuick.Window 2.0 // used for qtest_verifyItem
import QtTest 1.2
import "testlogger.js" as TestLogger
-import Qt.test.qtestroot 1.0
/*!
\qmltype TestCase
diff --git a/src/imports/testlib/main.cpp b/src/imports/testlib/main.cpp
index 83fc150e6c..8981ac0ff0 100644
--- a/src/imports/testlib/main.cpp
+++ b/src/imports/testlib/main.cpp
@@ -37,20 +37,8 @@
**
****************************************************************************/
-#include "quicktestevent_p.h"
-#include "quicktestutil_p.h"
-
#include <QtQml/qqmlextensionplugin.h>
-#include <QtQml/qqml.h>
-#include <QtQuickTest/quicktest.h>
-#include <QtQuickTest/private/quicktestresult_p.h>
-#include <QtQuickTest/private/qtestoptions_p.h>
-
-QML_DECLARE_TYPE(QuickTestResult)
-QML_DECLARE_TYPE(QuickTestEvent)
-QML_DECLARE_TYPE(QuickTestUtil)
-
-extern void qml_register_types_QtTest();
+#include <QtQuickTest/private/quicktestglobal_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/imports/testlib/qmldir b/src/imports/testlib/qmldir
index 9c1e8dd61f..387374bab9 100644
--- a/src/imports/testlib/qmldir
+++ b/src/imports/testlib/qmldir
@@ -1,5 +1,5 @@
module QtTest
-plugin qmltestplugin
+optional plugin qmltestplugin
classname QTestQmlModule
typeinfo plugins.qmltypes
TestCase 1.0 TestCase.qml
diff --git a/src/imports/testlib/testlib.pro b/src/imports/testlib/testlib.pro
index 2a97213e29..523be8b33e 100644
--- a/src/imports/testlib/testlib.pro
+++ b/src/imports/testlib/testlib.pro
@@ -3,17 +3,10 @@ TARGET = qmltestplugin
TARGETPATH = QtTest
QML_IMPORT_VERSION = $$QT_VERSION
-QT += quick qmltest-private qml-private core-private testlib gui-private
+QT = qmltest-private qml core
SOURCES += \
- main.cpp \
- quicktestevent.cpp \
- quicktestutil.cpp
-
-HEADERS += \
- quicktestevent_p.h \
- quicktestresultforeign_p.h \
- quicktestutil_p.h
+ main.cpp
QML_FILES = \
TestCase.qml \
@@ -21,6 +14,3 @@ QML_FILES = \
testlogger.js
load(qml_plugin)
-
-OTHER_FILES += testlib.json
-CONFIG += qmltypes install_qmltypes
diff --git a/src/qmltest/.prev_CMakeLists.txt b/src/qmltest/.prev_CMakeLists.txt
index f121d217ff..556bd0e5db 100644
--- a/src/qmltest/.prev_CMakeLists.txt
+++ b/src/qmltest/.prev_CMakeLists.txt
@@ -33,11 +33,9 @@ qt_internal_add_module(QuickTest
#### Keys ignored in scope 1:.:.:qmltest.pro:<TRUE>:
# MODULE_CONFIG = "$${QT.testlib.CONFIG}"
# QMLTYPES_FILENAME = "plugins.qmltypes"
-# QMLTYPES_INSTALL_DIR = "$$[QT_INSTALL_QML]/Qt/test/qtestroot"
-# QML_IMPORT_NAME = "Qt.test.qtestroot"
-# QML_IMPORT_VERSION = "1.0"
-# qmldir.files = "$$PWD/qmldir"
-# qmldir.path = "$$QMLTYPES_INSTALL_DIR"
+# QMLTYPES_INSTALL_DIR = "$$[QT_INSTALL_QML]/QtTest"
+# QML_IMPORT_NAME = "QtTest"
+# QML_IMPORT_VERSION = "$$QT_VERSION"
## Scopes:
#####################################################################
@@ -53,12 +51,6 @@ qt_internal_extend_target(QuickTest CONDITION QT_FEATURE_qml_debug
DEFINES
QT_QML_DEBUG_NO_WARNING
)
-
-#### Keys ignored in scope 4:.:.:qmltest.pro:prefix_build:
-# INSTALLS = "qmldir"
-
-#### Keys ignored in scope 5:.:.:qmltest.pro:else:
-# COPIES = "qmldir"
qt_internal_add_docs(QuickTest
doc/qtqmltest.qdocconf
)
@@ -66,10 +58,10 @@ qt_internal_add_docs(QuickTest
set_target_properties(QuickTest PROPERTIES
QT_QML_MODULE_INSTALL_QMLTYPES TRUE
- QT_QML_MODULE_VERSION 1.0
- QT_QML_MODULE_URI Qt.test.qtestroot
+ QT_QML_MODULE_VERSION ${CMAKE_PROJECT_VERSION}
+ QT_QML_MODULE_URI QtTest
QT_QMLTYPES_FILENAME plugins.qmltypes
- QT_QML_MODULE_INSTALL_DIR "${INSTALL_QMLDIR}/Qt/test/qtestroot"
+ QT_QML_MODULE_INSTALL_DIR "${INSTALL_QMLDIR}/QtTest"
)
qt6_qml_type_registration(QuickTest)
diff --git a/src/qmltest/CMakeLists.txt b/src/qmltest/CMakeLists.txt
index 92ff99765d..dd8139af9d 100644
--- a/src/qmltest/CMakeLists.txt
+++ b/src/qmltest/CMakeLists.txt
@@ -11,8 +11,10 @@ qt_internal_add_module(QuickTest
SOURCES
qtestoptions_p.h
quicktest.cpp quicktest.h quicktest_p.h
- quicktestglobal.h
+ quicktestevent.cpp quicktestevent_p.h
+ quicktestglobal.h quicktestglobal_p.h
quicktestresult.cpp quicktestresult_p.h
+ quicktestutil.cpp quicktestutil_p.h
DEFINES
QT_NO_FOREACH
QT_NO_URL_CAST_FROM_STRING
@@ -34,11 +36,9 @@ qt_internal_add_module(QuickTest
#### Keys ignored in scope 1:.:.:qmltest.pro:<TRUE>:
# MODULE_CONFIG = "$${QT.testlib.CONFIG}"
# QMLTYPES_FILENAME = "plugins.qmltypes"
-# QMLTYPES_INSTALL_DIR = "$$[QT_INSTALL_QML]/Qt/test/qtestroot"
-# QML_IMPORT_NAME = "Qt.test.qtestroot"
-# QML_IMPORT_VERSION = "1.0"
-# qmldir.files = "$$PWD/qmldir"
-# qmldir.path = "$$QMLTYPES_INSTALL_DIR"
+# QMLTYPES_INSTALL_DIR = "$$[QT_INSTALL_QML]/QtTest"
+# QML_IMPORT_NAME = "QtTest"
+# QML_IMPORT_VERSION = "$$QT_VERSION"
## Scopes:
#####################################################################
@@ -54,12 +54,6 @@ qt_internal_extend_target(QuickTest CONDITION QT_FEATURE_qml_debug
DEFINES
QT_QML_DEBUG_NO_WARNING
)
-
-#### Keys ignored in scope 4:.:.:qmltest.pro:prefix_build:
-# INSTALLS = "qmldir"
-
-#### Keys ignored in scope 5:.:.:qmltest.pro:else:
-# COPIES = "qmldir"
qt_internal_add_docs(QuickTest
doc/qtqmltest.qdocconf
)
@@ -67,18 +61,10 @@ qt_internal_add_docs(QuickTest
set_target_properties(QuickTest PROPERTIES
QT_QML_MODULE_INSTALL_QMLTYPES TRUE
- QT_QML_MODULE_VERSION 1.0
- QT_QML_MODULE_URI Qt.test.qtestroot
+ QT_QML_MODULE_VERSION ${CMAKE_PROJECT_VERSION}
+ QT_QML_MODULE_URI QtTest
QT_QMLTYPES_FILENAME plugins.qmltypes
- QT_QML_MODULE_INSTALL_DIR "${INSTALL_QMLDIR}/Qt/test/qtestroot"
+ QT_QML_MODULE_INSTALL_DIR "${INSTALL_QMLDIR}/QtTest"
)
qt6_qml_type_registration(QuickTest)
-
-#special case begin
-if (QT_WILL_INSTALL)
- install(FILES qmldir DESTINATION "${INSTALL_QMLDIR}/Qt/test/qtestroot")
-else()
- file(COPY qmldir DESTINATION "${QT_BUILD_DIR}/${INSTALL_QMLDIR}/Qt/test/qtestroot")
-endif()
-#special case end
diff --git a/src/qmltest/qmldir b/src/qmltest/qmldir
deleted file mode 100644
index 5e9d5e2c95..0000000000
--- a/src/qmltest/qmldir
+++ /dev/null
@@ -1,2 +0,0 @@
-module Qt.test.qtestroot
-typeinfo plugins.qmltypes
diff --git a/src/qmltest/qmltest.pro b/src/qmltest/qmltest.pro
index c2e8068fc6..2f26448707 100644
--- a/src/qmltest/qmltest.pro
+++ b/src/qmltest/qmltest.pro
@@ -31,14 +31,8 @@ qtConfig(qml-debug): DEFINES += QT_QML_DEBUG_NO_WARNING
load(qt_module)
QMLTYPES_FILENAME = plugins.qmltypes
-QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/Qt/test/qtestroot
-QML_IMPORT_NAME = Qt.test.qtestroot
-QML_IMPORT_VERSION = 1.0
+QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtTest
+QML_IMPORT_NAME = QtTest
+QML_IMPORT_VERSION = $$QT_VERSION
CONFIG += qmltypes install_qmltypes install_metatypes
-# Install qmldir
-qmldir.files = $$PWD/qmldir
-qmldir.path = $$QMLTYPES_INSTALL_DIR
-
-prefix_build: INSTALLS += qmldir
-else: COPIES += qmldir
diff --git a/src/qmltest/quicktest.cpp b/src/qmltest/quicktest.cpp
index 5962af8569..9085f96337 100644
--- a/src/qmltest/quicktest.cpp
+++ b/src/qmltest/quicktest.cpp
@@ -133,13 +133,6 @@ bool QQuickTest::qWaitForItemPolished(const QQuickItem *item, int timeout)
return QTest::qWaitFor([&]() { return !QQuickItemPrivate::get(item)->polishScheduled; }, timeout);
}
-static QObject *testRootObject(QQmlEngine *engine, QJSEngine *jsEngine)
-{
- Q_UNUSED(engine);
- Q_UNUSED(jsEngine);
- return QTestRootObject::instance();
-}
-
static inline QString stripQuotes(const QString &s)
{
if (s.length() >= 2 && s.startsWith(QLatin1Char('"')) && s.endsWith(QLatin1Char('"')))
@@ -534,9 +527,6 @@ int quick_test_main_with_setup(int argc, char **argv, const char *name, const ch
qputenv("QT_QTESTLIB_RUNNING", "1");
- // Register the custom factory function
- qmlRegisterSingletonType<QTestRootObject>("Qt.test.qtestroot", 1, 0, "QTestRootObject", testRootObject);
-
QSet<QString> commandLineTestFunctions(QTest::testFunctions.cbegin(), QTest::testFunctions.cend());
const bool filteringTestFunctions = !commandLineTestFunctions.isEmpty();
@@ -594,7 +584,7 @@ int quick_test_main_with_setup(int argc, char **argv, const char *name, const ch
QObject::connect(view.engine(), SIGNAL(quit()),
&eventLoop, SLOT(quit()));
view.rootContext()->setContextProperty
- (QLatin1String("qtest"), QTestRootObject::instance()); // Deprecated. Use QTestRootObject from Qt.test.qtestroot instead
+ (QLatin1String("qtest"), QTestRootObject::instance()); // Deprecated. Use QTestRootObject from QtTest instead
view.setObjectName(fi.baseName());
view.setTitle(view.objectName());
diff --git a/src/qmltest/quicktest_p.h b/src/qmltest/quicktest_p.h
index 50fc3be050..88f56d3038 100644
--- a/src/qmltest/quicktest_p.h
+++ b/src/qmltest/quicktest_p.h
@@ -64,16 +64,18 @@ class QTestRootObject : public QObject
Q_PROPERTY(bool windowShown READ windowShown NOTIFY windowShownChanged)
Q_PROPERTY(bool hasTestCase READ hasTestCase WRITE setHasTestCase NOTIFY hasTestCaseChanged)
Q_PROPERTY(QObject *defined READ defined)
+
QML_SINGLETON
QML_ELEMENT
+ QML_ADDED_IN_VERSION(1, 0)
public:
- QTestRootObject(QObject *parent = nullptr)
- : QObject(parent), hasQuit(false), m_windowShown(false), m_hasTestCase(false) {
- m_defined = new QQmlPropertyMap(this);
-#if defined(QT_OPENGL_ES_2_ANGLE)
- m_defined->insert(QLatin1String("QT_OPENGL_ES_2_ANGLE"), QVariant(true));
-#endif
+ static QTestRootObject *create(QQmlEngine *q, QJSEngine *)
+ {
+ QTestRootObject *result = instance();
+ QQmlEngine *engine = qmlEngine(result);
+ // You can only test on one engine at a time
+ return (engine == nullptr || engine == q) ? result : nullptr;
}
static QTestRootObject *instance() {
@@ -103,6 +105,14 @@ private Q_SLOTS:
void quit() { hasQuit = true; }
private:
+ QTestRootObject(QObject *parent = nullptr)
+ : QObject(parent), hasQuit(false), m_windowShown(false), m_hasTestCase(false) {
+ m_defined = new QQmlPropertyMap(this);
+#if defined(QT_OPENGL_ES_2_ANGLE)
+ m_defined->insert(QLatin1String("QT_OPENGL_ES_2_ANGLE"), QVariant(true));
+#endif
+ }
+
bool m_windowShown : 1;
bool m_hasTestCase :1;
QQmlPropertyMap *m_defined;
diff --git a/src/imports/testlib/quicktestevent.cpp b/src/qmltest/quicktestevent.cpp
index a1a707d2d6..a1a707d2d6 100644
--- a/src/imports/testlib/quicktestevent.cpp
+++ b/src/qmltest/quicktestevent.cpp
diff --git a/src/imports/testlib/quicktestevent_p.h b/src/qmltest/quicktestevent_p.h
index 4e63a2e47e..4e63a2e47e 100644
--- a/src/imports/testlib/quicktestevent_p.h
+++ b/src/qmltest/quicktestevent_p.h
diff --git a/src/imports/testlib/quicktestresultforeign_p.h b/src/qmltest/quicktestglobal_p.h
index e9dd12fa93..4a70c2478d 100644
--- a/src/imports/testlib/quicktestresultforeign_p.h
+++ b/src/qmltest/quicktestglobal_p.h
@@ -1,9 +1,9 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
-** This file is part of the test suite of the Qt Toolkit.
+** This file is part of the QtQuick module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
@@ -37,8 +37,8 @@
**
****************************************************************************/
-#ifndef QUICKTESTRESULTFOREIGN_P_H
-#define QUICKTESTRESULTFOREIGN_P_H
+#ifndef QUICKTESTGLOBAL_P_H
+#define QUICKTESTGLOBAL_P_H
//
// W A R N I N G
@@ -51,19 +51,11 @@
// We mean it.
//
-#include <QtQuickTest/private/quicktestresult_p.h>
-#include <QtQml/qqml.h>
+#include "quicktestglobal.h"
-QT_BEGIN_NAMESPACE
+#define Q_QUICK_TEST_PRIVATE_EXPORT Q_QUICK_TEST_EXPORT
-struct QuickTestResultForeign
-{
- Q_GADGET
- QML_FOREIGN(QuickTestResult)
- QML_NAMED_ELEMENT(TestResult)
- QML_ADDED_IN_VERSION(1, 0)
-};
+void Q_QUICK_TEST_PRIVATE_EXPORT qml_register_types_QtTest();
-QT_END_NAMESPACE
-#endif // QUICKTESTRESULTFOREIGN_P_H
+#endif // QUICKTESTGLOBAL_P_H
diff --git a/src/qmltest/quicktestresult_p.h b/src/qmltest/quicktestresult_p.h
index 7ebfb21186..54799e40aa 100644
--- a/src/qmltest/quicktestresult_p.h
+++ b/src/qmltest/quicktestresult_p.h
@@ -51,7 +51,7 @@
// We mean it.
//
-#include <QtQuickTest/quicktestglobal.h>
+#include <QtQuickTest/private/quicktestglobal_p.h>
#include <QtCore/qobject.h>
#include <QtCore/qstring.h>
#include <QtCore/qstringlist.h>
@@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE
class QUrl;
class QuickTestResultPrivate;
-class Q_QUICK_TEST_EXPORT QuickTestResult : public QObject
+class Q_QUICK_TEST_PRIVATE_EXPORT QuickTestResult : public QObject
{
Q_OBJECT
Q_PROPERTY(QString testCaseName READ testCaseName WRITE setTestCaseName NOTIFY testCaseNameChanged)
@@ -77,6 +77,9 @@ class Q_QUICK_TEST_EXPORT QuickTestResult : public QObject
Q_PROPERTY(QStringList functionsToRun READ functionsToRun)
Q_PROPERTY(QStringList tagsToRun READ tagsToRun)
+ QML_NAMED_ELEMENT(TestResult)
+ QML_ADDED_IN_VERSION(1, 0)
+
public:
QuickTestResult(QObject *parent = nullptr);
~QuickTestResult() override;
diff --git a/src/imports/testlib/quicktestutil.cpp b/src/qmltest/quicktestutil.cpp
index 994c66845b..994c66845b 100644
--- a/src/imports/testlib/quicktestutil.cpp
+++ b/src/qmltest/quicktestutil.cpp
diff --git a/src/imports/testlib/quicktestutil_p.h b/src/qmltest/quicktestutil_p.h
index 7e90c1cd1d..7e90c1cd1d 100644
--- a/src/imports/testlib/quicktestutil_p.h
+++ b/src/qmltest/quicktestutil_p.h