summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/corelib/io/qdir/android_testdata.qrc44
-rw-r--r--tests/auto/corelib/io/qdir/qdir.pro4
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp29
3 files changed, 77 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qdir/android_testdata.qrc b/tests/auto/corelib/io/qdir/android_testdata.qrc
new file mode 100644
index 0000000000..52cf4da330
--- /dev/null
+++ b/tests/auto/corelib/io/qdir/android_testdata.qrc
@@ -0,0 +1,44 @@
+<RCC>
+ <qresource prefix="/android_testdata">
+ <file>tst_qdir.cpp</file>
+ <file>entrylist/file</file>
+ <file>entrylist/directory/dummy</file>
+ <file>searchdir/subdir1/picker.png</file>
+ <file>searchdir/subdir2/picker.png</file>
+ <file>testData/empty</file>
+ <file>testdir/dir/tmp/empty</file>
+ <file>testdir/dir/qdir.pro</file>
+ <file>testdir/dir/qrc_qdir.cpp</file>
+ <file>testdir/dir/tst_qdir.cpp</file>
+ <file>testdir/spaces/foo. bar</file>
+ <file>testdir/spaces/foo.bar</file>
+ <file>types/a</file>
+ <file>types/a.a</file>
+ <file>types/a.b</file>
+ <file>types/a.c</file>
+ <file>types/b</file>
+ <file>types/b.a</file>
+ <file>types/b.b</file>
+ <file>types/b.c</file>
+ <file>types/c</file>
+ <file>types/c.a</file>
+ <file>types/c.b</file>
+ <file>types/c.c</file>
+ <file>types/d/dummy</file>
+ <file>types/d.a/dummy</file>
+ <file>types/d.c/dummy</file>
+ <file>types/d.b/dummy</file>
+ <file>types/e/dummy</file>
+ <file>types/e.a/dummy</file>
+ <file>types/e.c/dummy</file>
+ <file>types/f/dummy</file>
+ <file>types/f.a/dummy</file>
+ <file>types/f.b/dummy</file>
+ <file>types/f.c/dummy</file>
+ <file>types/e.b/dummy</file>
+ <file>resources/entryList/file1.data</file>
+ <file>resources/entryList/file2.data</file>
+ <file>resources/entryList/file3.data</file>
+ <file>resources/entryList/file4.nothing</file>
+ </qresource>
+</RCC>
diff --git a/tests/auto/corelib/io/qdir/qdir.pro b/tests/auto/corelib/io/qdir/qdir.pro
index e2b25866df..d3e954bd32 100644
--- a/tests/auto/corelib/io/qdir/qdir.pro
+++ b/tests/auto/corelib/io/qdir/qdir.pro
@@ -6,3 +6,7 @@ RESOURCES += qdir.qrc
TESTDATA += testdir testData searchdir resources entrylist types tst_qdir.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+
+android:!android-no-sdk {
+ RESOURCES += android_testdata.qrc
+}
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 49e3264617..484130f163 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -214,8 +214,35 @@ private:
Q_DECLARE_METATYPE(tst_QDir::UncHandling)
tst_QDir::tst_QDir()
+#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
+ : m_dataPath(QStandardPaths::writableLocation(QStandardPaths::CacheLocation))
+#else
: m_dataPath(QFileInfo(QFINDTESTDATA("testData")).absolutePath())
+#endif
{
+#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
+ QString resourceSourcePath = QStringLiteral(":/android_testdata/");
+ QDirIterator it(resourceSourcePath, QDirIterator::Subdirectories);
+ while (it.hasNext()) {
+ it.next();
+
+ QFileInfo fileInfo = it.fileInfo();
+
+ if (!fileInfo.isDir()) {
+ QString destination = m_dataPath + QLatin1Char('/') + fileInfo.filePath().mid(resourceSourcePath.length());
+ QFileInfo destinationFileInfo(destination);
+ if (!destinationFileInfo.exists()) {
+ QDir().mkpath(destinationFileInfo.path());
+ if (!QFile::copy(fileInfo.filePath(), destination))
+ qWarning("Failed to copy %s", qPrintable(fileInfo.filePath()));
+ }
+ }
+
+ }
+
+ if (!QDir::setCurrent(m_dataPath))
+ qWarning("Couldn't set current path to %s", qPrintable(m_dataPath));
+#endif
}
void tst_QDir::init()
@@ -2028,6 +2055,8 @@ void tst_QDir::equalityOperator_data()
//need a path in the root directory that is unlikely to be a symbolic link.
#if defined (Q_OS_WIN)
QString pathinroot("c:/windows/..");
+#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
+ QString pathinroot("/system/..");
#else
QString pathinroot("/usr/..");
#endif