From 9539b88b7c36efb582f225fb1207db4fc27d3f49 Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Thu, 17 May 2012 14:38:33 +1000 Subject: [PATCH] Make qqmlmoduleplugin tests pass in shadow builds. The plugin binary and qml files for a module need to be in the same directory. This was solved for source builds because the files were already located in the import path, but with shadow builds the files were split between the build and source trees. To solve this we copy the files to the import path when doing a build. So no files are copied on top of themselves all mixed module files have been relocated to their module source directory. Change-Id: I238af998a0f766e67ed6d0023e5ab4c2a4ea67af Reviewed-by: Chris Adams --- tests/auto/qml/qqmlmoduleplugin/.gitignore | 2 ++ .../auto/qml/qqmlmoduleplugin/nestedPlugin/nestedPlugin.pro | 5 +++++ .../AutoTestQmlNestedPluginType => nestedPlugin}/qmldir | 0 tests/auto/qml/qqmlmoduleplugin/plugin.2.1/plugin.2.1.pro | 5 +++++ .../com/nokia/AutoTestQmlPluginType.2 => plugin.2.1}/qmldir | 0 tests/auto/qml/qqmlmoduleplugin/plugin.2/plugin.2.pro | 6 ++++++ .../com/nokia/AutoTestQmlPluginType.2.1 => plugin.2}/qmldir | 0 tests/auto/qml/qqmlmoduleplugin/plugin/plugin.pro | 5 +++++ tests/auto/qml/qqmlmoduleplugin/plugin/qmldir | 1 + .../nokia/AutoTestQmlMixedPluginType => pluginMixed}/Foo.qml | 0 tests/auto/qml/qqmlmoduleplugin/pluginMixed/pluginMixed.pro | 6 ++++++ .../nokia/AutoTestQmlMixedPluginType => pluginMixed}/qmldir | 0 .../qml/qqmlmoduleplugin/pluginVersion/pluginVersion.pro | 5 +++++ .../AutoTestQmlVersionPluginType => pluginVersion}/qmldir | 0 .../MyQmlFile.qml | 0 .../qqmlmoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro | 6 ++++++ .../AutoTestPluginWithQmlFile => pluginWithQmlFile}/qmldir | 0 .../qml/qqmlmoduleplugin/pluginWrongCase/pluginWrongCase.pro | 5 +++++ .../{imports/com/nokia/WrongCase => pluginWrongCase}/qmldir | 0 tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp | 12 ++++++++---- tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.pro | 2 +- tests/auto/shared/imports.pri | 7 +++++++ 22 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 tests/auto/qml/qqmlmoduleplugin/.gitignore rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlNestedPluginType => nestedPlugin}/qmldir (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlPluginType.2 => plugin.2.1}/qmldir (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlPluginType.2.1 => plugin.2}/qmldir (100%) create mode 100644 tests/auto/qml/qqmlmoduleplugin/plugin/qmldir rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlMixedPluginType => pluginMixed}/Foo.qml (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlMixedPluginType => pluginMixed}/qmldir (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestQmlVersionPluginType => pluginVersion}/qmldir (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestPluginWithQmlFile => pluginWithQmlFile}/MyQmlFile.qml (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/AutoTestPluginWithQmlFile => pluginWithQmlFile}/qmldir (100%) rename tests/auto/qml/qqmlmoduleplugin/{imports/com/nokia/WrongCase => pluginWrongCase}/qmldir (100%) create mode 100644 tests/auto/shared/imports.pri diff --git a/tests/auto/qml/qqmlmoduleplugin/.gitignore b/tests/auto/qml/qqmlmoduleplugin/.gitignore new file mode 100644 index 0000000..b458285 --- /dev/null +++ b/tests/auto/qml/qqmlmoduleplugin/.gitignore @@ -0,0 +1,2 @@ +imports/*/*/* +!imports/com/nokia/PureQmlModule/* diff --git a/tests/auto/qml/qqmlmoduleplugin/nestedPlugin/nestedPlugin.pro b/tests/auto/qml/qqmlmoduleplugin/nestedPlugin/nestedPlugin.pro index 94dc236..f69a832 100644 --- a/tests/auto/qml/qqmlmoduleplugin/nestedPlugin/nestedPlugin.pro +++ b/tests/auto/qml/qqmlmoduleplugin/nestedPlugin/nestedPlugin.pro @@ -5,3 +5,8 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlNestedPluginType QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlNestedPluginType/qmldir b/tests/auto/qml/qqmlmoduleplugin/nestedPlugin/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlNestedPluginType/qmldir rename to tests/auto/qml/qqmlmoduleplugin/nestedPlugin/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/plugin.2.1/plugin.2.1.pro b/tests/auto/qml/qqmlmoduleplugin/plugin.2.1/plugin.2.1.pro index ccb66ab..44196e4 100644 --- a/tests/auto/qml/qqmlmoduleplugin/plugin.2.1/plugin.2.1.pro +++ b/tests/auto/qml/qqmlmoduleplugin/plugin.2.1/plugin.2.1.pro @@ -5,3 +5,8 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType.2.1 QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir b/tests/auto/qml/qqmlmoduleplugin/plugin.2.1/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir rename to tests/auto/qml/qqmlmoduleplugin/plugin.2.1/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/plugin.2/plugin.2.pro b/tests/auto/qml/qqmlmoduleplugin/plugin.2/plugin.2.pro index 7f3904f..7ecb33b 100644 --- a/tests/auto/qml/qqmlmoduleplugin/plugin.2/plugin.2.pro +++ b/tests/auto/qml/qqmlmoduleplugin/plugin.2/plugin.2.pro @@ -5,3 +5,9 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType.2 QT += core-private gui-private qml-private + +IMPORT_DIR = DESTDIR +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir b/tests/auto/qml/qqmlmoduleplugin/plugin.2/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir rename to tests/auto/qml/qqmlmoduleplugin/plugin.2/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/plugin/plugin.pro b/tests/auto/qml/qqmlmoduleplugin/plugin/plugin.pro index dae8696..32ecc60 100644 --- a/tests/auto/qml/qqmlmoduleplugin/plugin/plugin.pro +++ b/tests/auto/qml/qqmlmoduleplugin/plugin/plugin.pro @@ -5,3 +5,8 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/plugin/qmldir b/tests/auto/qml/qqmlmoduleplugin/plugin/qmldir new file mode 100644 index 0000000..0a8b5d4 --- /dev/null +++ b/tests/auto/qml/qqmlmoduleplugin/plugin/qmldir @@ -0,0 +1 @@ +plugin plugin diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml b/tests/auto/qml/qqmlmoduleplugin/pluginMixed/Foo.qml similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml rename to tests/auto/qml/qqmlmoduleplugin/pluginMixed/Foo.qml diff --git a/tests/auto/qml/qqmlmoduleplugin/pluginMixed/pluginMixed.pro b/tests/auto/qml/qqmlmoduleplugin/pluginMixed/pluginMixed.pro index c0f314a..52f14b1 100644 --- a/tests/auto/qml/qqmlmoduleplugin/pluginMixed/pluginMixed.pro +++ b/tests/auto/qml/qqmlmoduleplugin/pluginMixed/pluginMixed.pro @@ -5,3 +5,9 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlMixedPluginType QT += core-private gui-private qml-private + +IMPORT_FILES = \ + Foo.qml \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir b/tests/auto/qml/qqmlmoduleplugin/pluginMixed/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir rename to tests/auto/qml/qqmlmoduleplugin/pluginMixed/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/pluginVersion/pluginVersion.pro b/tests/auto/qml/qqmlmoduleplugin/pluginVersion/pluginVersion.pro index ba9e484..fe0878b 100644 --- a/tests/auto/qml/qqmlmoduleplugin/pluginVersion/pluginVersion.pro +++ b/tests/auto/qml/qqmlmoduleplugin/pluginVersion/pluginVersion.pro @@ -5,3 +5,8 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestQmlVersionPluginType QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir b/tests/auto/qml/qqmlmoduleplugin/pluginVersion/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir rename to tests/auto/qml/qqmlmoduleplugin/pluginVersion/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml b/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/MyQmlFile.qml similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml rename to tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/MyQmlFile.qml diff --git a/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro b/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro index 15fe8d2..3fb6f99 100644 --- a/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro +++ b/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro @@ -5,3 +5,9 @@ QT = core qml DESTDIR = ../imports/com/nokia/AutoTestPluginWithQmlFile QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir \ + MyQmlFile.qml + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir b/tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir rename to tests/auto/qml/qqmlmoduleplugin/pluginWithQmlFile/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/pluginWrongCase.pro b/tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/pluginWrongCase.pro index d604613..858e9d9 100644 --- a/tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/pluginWrongCase.pro +++ b/tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/pluginWrongCase.pro @@ -6,3 +6,8 @@ TARGET = Plugin DESTDIR = ../imports/com/nokia/WrongCase QT += core-private gui-private qml-private + +IMPORT_FILES = \ + qmldir + +include (../../../shared/imports.pri) diff --git a/tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/WrongCase/qmldir b/tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/qmldir similarity index 100% rename from tests/auto/qml/qqmlmoduleplugin/imports/com/nokia/WrongCase/qmldir rename to tests/auto/qml/qqmlmoduleplugin/pluginWrongCase/qmldir diff --git a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp index f6c1658..81aed01 100644 --- a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp +++ b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp @@ -75,14 +75,18 @@ private slots: private: QString m_importsDirectory; + QString m_dataImportsDirectory; }; void tst_qqmlmoduleplugin::initTestCase() { QQmlDataTest::initTestCase(); - m_importsDirectory = directory() + QStringLiteral("/imports"); + m_importsDirectory = QFINDTESTDATA(QStringLiteral("imports")); QVERIFY2(QFileInfo(m_importsDirectory).isDir(), qPrintable(QString::fromLatin1("Imports directory '%1' does not exist.").arg(m_importsDirectory))); + m_dataImportsDirectory = directory() + QStringLiteral("/imports"); + QVERIFY2(QFileInfo(m_dataImportsDirectory).isDir(), + qPrintable(QString::fromLatin1("Imports directory '%1' does not exist.").arg(m_dataImportsDirectory))); } #define VERIFY_ERRORS(errorfile) \ @@ -222,7 +226,7 @@ void tst_qqmlmoduleplugin::remoteImportWithQuotedUrl() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); - server.serveDirectory(m_importsDirectory); + server.serveDirectory(m_dataImportsDirectory); QQmlEngine engine; QQmlComponent component(&engine); @@ -243,10 +247,10 @@ void tst_qqmlmoduleplugin::remoteImportWithUnquotedUri() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); - server.serveDirectory(m_importsDirectory); + server.serveDirectory(m_dataImportsDirectory); QQmlEngine engine; - engine.addImportPath(m_importsDirectory); + engine.addImportPath(m_dataImportsDirectory); QQmlComponent component(&engine); component.setData("import com.nokia.PureQmlModule 1.0 \nComponentA { width: 300; ComponentB{} }", QUrl()); diff --git a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.pro b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.pro index 927d802..43bd112 100644 --- a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.pro +++ b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.pro @@ -8,6 +8,6 @@ CONFIG -= app_bundle include (../../shared/util.pri) -TESTDATA = data/* imports/* +TESTDATA = data/* imports/* $$OUT_PWD/imports/* QT += core-private gui-private qml-private network testlib diff --git a/tests/auto/shared/imports.pri b/tests/auto/shared/imports.pri new file mode 100644 index 0000000..20e9bcb --- /dev/null +++ b/tests/auto/shared/imports.pri @@ -0,0 +1,7 @@ + +copyimportfiles.input = IMPORT_FILES +copyimportfiles.output = $$DESTDIR/${QMAKE_FILE_IN_BASE}${QMAKE_FILE_EXT} +copyimportfiles.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +copyimportfiles.CONFIG += no_link_no_clean +copyimportfiles.variable_out = PRE_TARGETDEPS +QMAKE_EXTRA_COMPILERS += copyimportfiles -- 2.7.4