diff options
author | David Faure <david.faure@kdab.com> | 2015-11-30 12:03:18 +0100 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2015-12-29 11:06:13 +0000 |
commit | 72b4f0d4743826ee14ec06bf0ada26418f4a69be (patch) | |
tree | aa9f2f5828958c6c6c301e8499d7bef87996b9fa /tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp | |
parent | 9871c3d8bd71ab265d7394495a3a9f0c2963f6ab (diff) |
QMimeDatabase: follow symlinks when checking for FIFO etc.
This was documented, but not what the code did.
Task-number: QTBUG-48529
Change-Id: I4849778c61dcae13be27c62b24717693c0c07d78
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp')
-rw-r--r-- | tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index 0171c4ac5a..1b4dc020f2 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -35,6 +35,11 @@ #include "qstandardpaths.h" +#ifdef Q_OS_UNIX +#include <sys/types.h> +#include <sys/stat.h> +#endif + #include <QtCore/QElapsedTimer> #include <QtCore/QFile> #include <QtCore/QFileInfo> @@ -646,6 +651,28 @@ void tst_QMimeDatabase::knownSuffix() QCOMPARE(db.suffixForFileName(QString::fromLatin1("foo.tar.bz2")), QString::fromLatin1("tar.bz2")); } +void tst_QMimeDatabase::symlinkToFifo() // QTBUG-48529 +{ +#ifdef Q_OS_UNIX + QTemporaryDir tempDir; + QVERIFY(tempDir.isValid()); + const QString dir = tempDir.path(); + const QString fifo = dir + "/fifo"; + QCOMPARE(mkfifo(QFile::encodeName(fifo), 0006), 0); + + QMimeDatabase db; + QCOMPARE(db.mimeTypeForFile(fifo).name(), QString::fromLatin1("inode/fifo")); + + // Now make a symlink to the fifo + const QString link = dir + "/link"; + QVERIFY(QFile::link(fifo, link)); + QCOMPARE(db.mimeTypeForFile(link).name(), QString::fromLatin1("inode/fifo")); + +#else + QSKIP("This test requires pipes and symlinks"); +#endif +} + void tst_QMimeDatabase::findByFileName_data() { QTest::addColumn<QString>("filePath"); |