From 8662e071c22c2be2fdf15148b375eb3f6057aab7 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Tue, 4 Oct 2011 09:57:54 +1000 Subject: [PATCH] test: fixed testdata deployment for tst_qdeclarativelanguage Make it feasible to deploy the testdata onto a device. Task-number: QTBUG-21721 Change-Id: I69e860e17ff9a4882997dd28480856847f230e83 Reviewed-on: http://codereview.qt-project.org/5667 Reviewed-by: Qt Sanity Bot Reviewed-by: Chris Adams --- .../declarative/qmllanguage/LocalInternal.qml | 3 + .../data/qtest/declarative/qmllanguage/Test.qml | 2 + .../qtest/declarative/qmllanguage/TestLocal.qml | 1 + .../qtest/declarative/qmllanguage/TestNamed.qml | 1 + .../qtest/declarative/qmllanguage/TestSubDir.qml | 2 + .../declarative/qmllanguage/UndeclaredLocal.qml | 3 + .../declarative/qmllanguage/WrongTestLocal.qml | 1 + .../declarative/qmllanguage/noqmldir/Test.qml | 2 + .../qtest/declarative/qmllanguage/pics/blue.png | Bin 0 -> 84 bytes .../data/qtest/declarative/qmllanguage/qmldir | 5 ++ .../declarative/qmllanguage/subdir/SubTest.qml | 3 + .../qtest/declarative/qmllanguage/subdir/qmldir | 1 + .../qdeclarativelanguage/qdeclarativelanguage.pro | 4 +- .../declarative/qmllanguage/LocalInternal.qml | 3 - .../qtest/declarative/qmllanguage/Test.qml | 2 - .../qtest/declarative/qmllanguage/TestLocal.qml | 1 - .../qtest/declarative/qmllanguage/TestNamed.qml | 1 - .../qtest/declarative/qmllanguage/TestSubDir.qml | 2 - .../declarative/qmllanguage/UndeclaredLocal.qml | 3 - .../declarative/qmllanguage/WrongTestLocal.qml | 1 - .../declarative/qmllanguage/noqmldir/Test.qml | 2 - .../qtest/declarative/qmllanguage/pics/blue.png | Bin 84 -> 0 bytes .../qtest/declarative/qmllanguage/qmldir | 5 -- .../declarative/qmllanguage/subdir/SubTest.qml | 3 - .../qtest/declarative/qmllanguage/subdir/qmldir | 1 - .../tst_qdeclarativelanguage.cpp | 45 +++++++++++++++---- 26 files changed, 62 insertions(+), 35 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/LocalInternal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/Test.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestNamed.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestSubDir.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/UndeclaredLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/WrongTestLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/noqmldir/Test.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/pics/blue.png create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/qmldir create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/SubTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/qmldir delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/noqmldir/Test.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml delete mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/LocalInternal.qml new file mode 100644 index 0000000..4ce04c4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/LocalInternal.qml @@ -0,0 +1,3 @@ +import QtQuick 2.0 + +Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/Test.qml new file mode 100644 index 0000000..f789a90 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/Test.qml @@ -0,0 +1,2 @@ +import QtQuick 2.0 +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestLocal.qml new file mode 100644 index 0000000..11443ca --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestLocal.qml @@ -0,0 +1 @@ +LocalInternal {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestNamed.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestNamed.qml new file mode 100644 index 0000000..672cb8f --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestNamed.qml @@ -0,0 +1 @@ +NamedLocal { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestSubDir.qml new file mode 100644 index 0000000..0dfede4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/TestSubDir.qml @@ -0,0 +1,2 @@ +import "subdir" +SubTest { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/UndeclaredLocal.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/UndeclaredLocal.qml new file mode 100644 index 0000000..4ce04c4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/UndeclaredLocal.qml @@ -0,0 +1,3 @@ +import QtQuick 2.0 + +Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/WrongTestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/WrongTestLocal.qml new file mode 100644 index 0000000..8dcb7be --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/WrongTestLocal.qml @@ -0,0 +1 @@ +UndeclaredInternal {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/noqmldir/Test.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/noqmldir/Test.qml new file mode 100644 index 0000000..f789a90 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/noqmldir/Test.qml @@ -0,0 +1,2 @@ +import QtQuick 2.0 +Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/pics/blue.png new file mode 100644 index 0000000000000000000000000000000000000000..46f815f1ed7f30cc79975a217652fb20985e1510 GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;bAV5XD+9y-u8K?HKrWA`i(?4K d%;W?GULenafzf%&_H-bN!PC{xWt~$(697d-5G()y literal 0 HcmV?d00001 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/qmldir new file mode 100644 index 0000000..60150f8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/qmldir @@ -0,0 +1,5 @@ +Test Test.qml +TestSubDir TestSubDir.qml +TestLocal TestLocal.qml +NamedLocal LocalInternal.qml +internal LocalInternal LocalInternal.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/SubTest.qml new file mode 100644 index 0000000..1480ae8 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/SubTest.qml @@ -0,0 +1,3 @@ +import QtQuick 2.0 + +Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/qmldir new file mode 100644 index 0000000..a54f7df --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/qtest/declarative/qmllanguage/subdir/qmldir @@ -0,0 +1 @@ +SubTest SubTest.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro index 0964cdf..638a035 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro +++ b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro @@ -11,7 +11,9 @@ INCLUDEPATH += ../shared/ HEADERS += ../shared/testhttpserver.h SOURCES += ../shared/testhttpserver.cpp -DEFINES += SRCDIR=\\\"$$PWD\\\" +importFiles.files = data +importFiles.path = . +DEPLOYMENT += importFiles CONFIG += parallel_test QT += core-private gui-private v8-private declarative-private diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml deleted file mode 100644 index 4ce04c4..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml +++ /dev/null @@ -1,3 +0,0 @@ -import QtQuick 2.0 - -Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml deleted file mode 100644 index f789a90..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml +++ /dev/null @@ -1,2 +0,0 @@ -import QtQuick 2.0 -Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml deleted file mode 100644 index 11443ca..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml +++ /dev/null @@ -1 +0,0 @@ -LocalInternal {} diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml deleted file mode 100644 index 672cb8f..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml +++ /dev/null @@ -1 +0,0 @@ -NamedLocal { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml deleted file mode 100644 index 0dfede4..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml +++ /dev/null @@ -1,2 +0,0 @@ -import "subdir" -SubTest { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml deleted file mode 100644 index 4ce04c4..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml +++ /dev/null @@ -1,3 +0,0 @@ -import QtQuick 2.0 - -Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml deleted file mode 100644 index 8dcb7be..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml +++ /dev/null @@ -1 +0,0 @@ -UndeclaredInternal {} diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/noqmldir/Test.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/noqmldir/Test.qml deleted file mode 100644 index f789a90..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/noqmldir/Test.qml +++ /dev/null @@ -1,2 +0,0 @@ -import QtQuick 2.0 -Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png deleted file mode 100644 index 46f815f1ed7f30cc79975a217652fb20985e1510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;bAV5XD+9y-u8K?HKrWA`i(?4K d%;W?GULenafzf%&_H-bN!PC{xWt~$(697d-5G()y diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir deleted file mode 100644 index 60150f8..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir +++ /dev/null @@ -1,5 +0,0 @@ -Test Test.qml -TestSubDir TestSubDir.qml -TestLocal TestLocal.qml -NamedLocal LocalInternal.qml -internal LocalInternal LocalInternal.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml deleted file mode 100644 index 1480ae8..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml +++ /dev/null @@ -1,3 +0,0 @@ -import QtQuick 2.0 - -Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir deleted file mode 100644 index a54f7df..0000000 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir +++ /dev/null @@ -1 +0,0 @@ -SubTest SubTest.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp index 425be1b..f7e74e8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,32 @@ DEFINE_BOOL_CONFIG_OPTION(qmlCheckTypes, QML_CHECK_TYPES) /* + Returns the path to some testdata file or directory. +*/ +QString testdata(QString const& name = QString()) +{ + /* + Try to find it relative to the binary. + Note we are looking for a _directory_ which exists, but the _file_ itself need not exist, + to support the case of finding a path to a testdata file which doesn't exist yet (i.e. + a file we are about to create). + */ + QFileInfo relative = QDir(QCoreApplication::applicationDirPath()).filePath(QLatin1String("data/") + name); + if (relative.dir().exists()) { + return relative.absoluteFilePath(); + } + + qWarning("requested testdata %s could not be found (looked at %s)", + qPrintable(name), + qPrintable(relative.filePath()) + ); + + // Chances are the calling test will now fail. + return QString(); +} + + +/* This test case covers QML language issues. This covers everything that does not involve evaluating ECMAScript expressions and bindings. @@ -69,8 +96,7 @@ class tst_qdeclarativelanguage : public QObject public: tst_qdeclarativelanguage() { QDeclarativeMetaType::registerCustomStringConverter(qMetaTypeId(), myCustomVariantTypeConverter); - QFileInfo fileInfo(__FILE__); - engine.addImportPath(fileInfo.absoluteDir().filePath(QLatin1String("data/lib"))); + engine.addImportPath(testdata("lib")); } private slots: @@ -172,7 +198,7 @@ private: QVERIFY(!component.isError()); \ QVERIFY(component.errors().isEmpty()); \ } else { \ - QFile file(QLatin1String(SRCDIR) + QLatin1String("/data/") + QLatin1String(errorfile)); \ + QFile file(testdata(QLatin1String(errorfile))); \ QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); \ QByteArray data = file.readAll(); \ file.close(); \ @@ -203,8 +229,7 @@ private: inline QUrl TEST_FILE(const QString &filename) { - QFileInfo fileInfo(__FILE__); - return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(QLatin1String("data/") + filename)); + return QUrl::fromLocalFile(testdata(filename)); } inline QUrl TEST_FILE(const char *filename) @@ -1636,7 +1661,7 @@ void tst_qdeclarativelanguage::basicRemote() QFETCH(QString, error); TestHTTPServer server(14447); - server.serveDirectory(SRCDIR); + server.serveDirectory(testdata()); QDeclarativeComponent component(&engine, url); @@ -1680,7 +1705,7 @@ void tst_qdeclarativelanguage::importsRemote() QFETCH(QString, error); TestHTTPServer server(14447); - server.serveDirectory(SRCDIR); + server.serveDirectory(testdata()); testType(qml,type,error); } @@ -1841,7 +1866,7 @@ void tst_qdeclarativelanguage::importIncorrectCase() QCOMPARE(errors.count(), 1); #if defined(Q_OS_MAC) || defined(Q_OS_WIN32) - QString expectedError = QLatin1String("cannot load module \"com.Nokia.installedtest\": File name case mismatch for \"") + QFileInfo(__FILE__).absoluteDir().filePath("data/lib/com/Nokia/installedtest/qmldir") + QLatin1String("\""); + QString expectedError = QLatin1String("cannot load module \"com.Nokia.installedtest\": File name case mismatch for \"") + testdata("lib/com/Nokia/installedtest/qmldir") + QLatin1String("\""); #else QString expectedError = QLatin1String("module \"com.Nokia.installedtest\" is not installed"); #endif @@ -2071,10 +2096,10 @@ void tst_qdeclarativelanguage::registrationOrder() void tst_qdeclarativelanguage::remoteLoadCrash() { TestHTTPServer server(14448); - server.serveDirectory(SRCDIR); + server.serveDirectory(testdata()); QDeclarativeComponent component(&engine); - component.setData("import QtQuick 1.0; Text {}", QUrl("http://127.0.0.1:14448/data/remoteLoadCrash.qml")); + component.setData("import QtQuick 1.0; Text {}", QUrl("http://127.0.0.1:14448/remoteLoadCrash.qml")); while (component.isLoading()) QCoreApplication::processEvents( QEventLoop::ExcludeUserInputEvents | QEventLoop::WaitForMoreEvents, 50); -- 1.7.2.5