summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp28
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp52
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+mac/test5 (renamed from tests/auto/corelib/io/qfileselector/platforms/+mac/test2)0
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+macos/test (renamed from tests/auto/corelib/io/qfileselector/platforms/+osx/test2)0
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+macos/test20
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+osx/test40
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test0
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test0
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/test40
-rw-r--r--tests/auto/corelib/io/qfileselector/platforms/test50
-rw-r--r--tests/auto/corelib/io/qfileselector/qfileselector.qrc10
-rw-r--r--tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp8
12 files changed, 97 insertions, 1 deletions
diff --git a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
index 5b03b35780..0068411b94 100644
--- a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp
@@ -77,6 +77,9 @@ private slots:
void stream_QDateTime_data();
void stream_QDateTime();
+ void stream_nullptr_t_data();
+ void stream_nullptr_t();
+
void stream_QFont_data();
void stream_QFont();
@@ -187,6 +190,7 @@ private:
void writeQBrush(QDataStream *s);
void writeQColor(QDataStream *s);
void writeQByteArray(QDataStream *s);
+ void writenullptr_t(QDataStream *s);
#ifndef QT_NO_CURSOR
void writeQCursor(QDataStream *s);
#endif
@@ -216,6 +220,7 @@ private:
void readQBrush(QDataStream *s);
void readQColor(QDataStream *s);
void readQByteArray(QDataStream *s);
+ void readnullptr_t(QDataStream *s);
#ifndef QT_NO_CURSOR
void readQCursor(QDataStream *s);
#endif
@@ -1008,6 +1013,11 @@ void tst_QDataStream::writeQByteArray(QDataStream *s)
*s << d4;
}
+void tst_QDataStream::writenullptr_t(QDataStream *s)
+{
+ *s << nullptr;
+}
+
void tst_QDataStream::readQByteArray(QDataStream *s)
{
QByteArray test(qByteArrayData(dataIndex(QTest::currentDataTag())));
@@ -1016,6 +1026,13 @@ void tst_QDataStream::readQByteArray(QDataStream *s)
QCOMPARE(d4, test);
}
+void tst_QDataStream::readnullptr_t(QDataStream *s)
+{
+ std::nullptr_t ptr;
+ *s >> ptr;
+ QCOMPARE(ptr, nullptr);
+}
+
// ************************************
#ifndef QT_NO_CURSOR
static QCursor qCursorData(int index)
@@ -1263,6 +1280,17 @@ void tst_QDataStream::stream_QDateTime()
STREAM_IMPL(QDateTime);
}
+void tst_QDataStream::stream_nullptr_t_data()
+{
+ stream_data(1); // there's only one value possible
+}
+
+void tst_QDataStream::stream_nullptr_t()
+{
+ using namespace std;
+ STREAM_IMPL(nullptr_t);
+}
+
void tst_QDataStream::writeQDateTime(QDataStream *s)
{
QDateTime dt(qDateTimeData(dataIndex(QTest::currentDataTag())));
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 330ff9312d..946620d61f 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -1,5 +1,6 @@
/****************************************************************************
**
+** Copyright (C) 2017 Intel Corporation.
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
@@ -101,6 +102,7 @@ private slots:
void mkdirRmdir_data();
void mkdirRmdir();
+ void mkdirOnSymlink();
void makedirReturnCode();
@@ -387,6 +389,56 @@ void tst_QDir::mkdirRmdir()
QVERIFY(!fi.exists());
}
+void tst_QDir::mkdirOnSymlink()
+{
+#ifndef Q_OS_UNIX
+ QSKIP("Test only valid on an OS that supports symlinks");
+#else
+ // Create the structure:
+ // .
+ // ├── symlink -> two/three
+ // └── two
+ // └── three
+ // so when we mkdir("symlink/../four/five"), we end up with:
+ // .
+ // ├── symlink -> two/three
+ // └── two
+ // ├── four
+ // │ └── five
+ // └── three
+
+ QDir dir;
+ struct Clean {
+ QDir &dir;
+ Clean(QDir &dir) : dir(dir) {}
+ ~Clean() { doClean(); }
+ void doClean() {
+ dir.rmpath("two/three");
+ dir.rmpath("two/four/five");
+ // in case the test fails, don't leave junk behind
+ dir.rmpath("four/five");
+ QFile::remove("symlink");
+ }
+ };
+ Clean clean(dir);
+ clean.doClean();
+
+ // create our structure:
+ dir.mkpath("two/three");
+ ::symlink("two/three", "symlink");
+
+ // try it:
+ QString path = "symlink/../four/five";
+ QVERIFY(dir.mkpath(path));
+ QFileInfo fi(path);
+ QVERIFY2(fi.exists() && fi.isDir(), msgDoesNotExist(path).constData());
+
+ path = "two/four/five";
+ fi.setFile(path);
+ QVERIFY2(fi.exists() && fi.isDir(), msgDoesNotExist(path).constData());
+#endif
+}
+
void tst_QDir::makedirReturnCode()
{
QString dirName = QString::fromLatin1("makedirReturnCode");
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+mac/test2 b/tests/auto/corelib/io/qfileselector/platforms/+mac/test5
index e69de29bb2..e69de29bb2 100644
--- a/tests/auto/corelib/io/qfileselector/platforms/+mac/test2
+++ b/tests/auto/corelib/io/qfileselector/platforms/+mac/test5
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+osx/test2 b/tests/auto/corelib/io/qfileselector/platforms/+macos/test
index e69de29bb2..e69de29bb2 100644
--- a/tests/auto/corelib/io/qfileselector/platforms/+osx/test2
+++ b/tests/auto/corelib/io/qfileselector/platforms/+macos/test
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+macos/test2 b/tests/auto/corelib/io/qfileselector/platforms/+macos/test2
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/+macos/test2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+osx/test4 b/tests/auto/corelib/io/qfileselector/platforms/+osx/test4
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/+osx/test4
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+macos/test
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/+macos/test
diff --git a/tests/auto/corelib/io/qfileselector/platforms/test4 b/tests/auto/corelib/io/qfileselector/platforms/test4
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/test4
diff --git a/tests/auto/corelib/io/qfileselector/platforms/test5 b/tests/auto/corelib/io/qfileselector/platforms/test5
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/auto/corelib/io/qfileselector/platforms/test5
diff --git a/tests/auto/corelib/io/qfileselector/qfileselector.qrc b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
index ab7a4d7f23..ea9b8270e0 100644
--- a/tests/auto/corelib/io/qfileselector/qfileselector.qrc
+++ b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
@@ -15,6 +15,7 @@
<file>platforms/test</file>
<file>platforms/+unix/+android/test</file>
<file>platforms/+unix/+darwin/+mac/+ios/test</file>
+ <file>platforms/+unix/+darwin/+mac/+osx/+macos/test</file>
<file>platforms/+unix/+darwin/+mac/+osx/test</file>
<file>platforms/+unix/+darwin/+mac/test</file>
<file>platforms/+unix/+darwin/test</file>
@@ -27,6 +28,7 @@
<file>platforms/+windows/test</file>
<file>platforms/+android/test</file>
<file>platforms/+ios/test</file>
+ <file>platforms/+macos/test</file>
<file>platforms/+osx/test</file>
<file>platforms/+darwin/test</file>
<file>platforms/+mac/test</file>
@@ -39,7 +41,7 @@
<file>platforms/test2</file>
<file>platforms/+android/test2</file>
<file>platforms/+ios/test2</file>
- <file>platforms/+osx/test2</file>
+ <file>platforms/+macos/test2</file>
<file>platforms/+haiku/test2</file>
<file>platforms/+linux/test2</file>
<file>platforms/+wince/test2</file>
@@ -50,5 +52,11 @@
<file>platforms/test3</file>
<file>platforms/+windows/test3</file>
<file>platforms/+unix/test3</file>
+
+ <!-- platforms/test4 and 5: special cases for macOS -->
+ <file>platforms/test4</file>
+ <file>platforms/+osx/test4</file>
+ <file>platforms/test5</file>
+ <file>platforms/+mac/test5</file>
</qresource>
</RCC>
diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
index 8c2886f337..c537e43802 100644
--- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
+++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
@@ -126,6 +126,14 @@ void tst_QFileSelector::basicTest_data()
QTest::newRow("platform3") << QString(":/platforms/test3") << QStringList()
<< expectedPlatform3File;
+#ifdef Q_OS_MACOS
+ // special case for compatibility code
+ QTest::newRow("osx-compat") << QString(":/platforms/test4") << QStringList()
+ << ":/platforms/+osx/test4";
+ QTest::newRow("mac-compat") << QString(":/platforms/test5") << QStringList()
+ << ":/platforms/+mac/test5";
+#endif
+
QString resourceTestPath(":/extras/test");
QString custom1("custom1");
QTest::newRow("custom1-noselector") << resourceTestPath << QStringList()