diff options
author | Nikita Baryshnikov <nib952051@gmail.com> | 2015-04-09 13:41:19 +0300 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-04-20 07:43:58 +0000 |
commit | ad03511256a8279a8f55069e5a3a3465a9e122ec (patch) | |
tree | 2f9341e388b3a4b1804d3f00ab885730a957df95 /tests/auto/corelib/io/qdir | |
parent | 280084cf96eb1d7fa8dba580866477c572a976c9 (diff) |
QDir: fix int overflow
This caused reverse order of session items in qt creator. Introduced
in ba287c55ef179b073482453298f513992b54c11e.
Change-Id: I5c37ca6a1ef4753b6449eb9e87b4def5ea858677
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'tests/auto/corelib/io/qdir')
-rw-r--r-- | tests/auto/corelib/io/qdir/tst_qdir.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index caa22db144..e8a7105f6e 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -90,6 +90,8 @@ private slots: void entryList_data(); void entryList(); + void entryListTimedSort(); + void entryListSimple_data(); void entryListSimple(); @@ -831,6 +833,45 @@ void tst_QDir::entryList() QFile::remove(entrylistPath + "brokenlink"); } +void tst_QDir::entryListTimedSort() +{ +#ifndef QT_NO_PROCESS + const QString touchBinary = "/bin/touch"; + if (!QFile::exists(touchBinary)) + QSKIP("/bin/touch not found"); + + const QString entrylistPath = m_dataPath + "/entrylist/"; + QTemporaryFile aFile(entrylistPath + "A-XXXXXX.qws"); + QTemporaryFile bFile(entrylistPath + "B-XXXXXX.qws"); + + QVERIFY(aFile.open()); + QVERIFY(bFile.open()); + { + QProcess p; + p.start(touchBinary, QStringList() << "-t" << "201306021513" << aFile.fileName()); + QVERIFY(p.waitForFinished(1000)); + } + { + QProcess p; + p.start(touchBinary, QStringList() << "-t" << "201504131513" << bFile.fileName()); + QVERIFY(p.waitForFinished(1000)); + } + + QStringList actual = QDir(entrylistPath).entryList(QStringList() << "*.qws", QDir::NoFilter, + QDir::Time); + + QFileInfo aFileInfo(aFile); + QFileInfo bFileInfo(bFile); + QVERIFY(bFileInfo.lastModified().msecsTo(aFileInfo.lastModified()) < 0); + + QCOMPARE(actual.size(), 2); + QCOMPARE(actual.first(), bFileInfo.fileName()); + QCOMPARE(actual.last(), aFileInfo.fileName()); +#else + QSKIP("This test requires QProcess support."); +#endif // QT_NO_PROCESS +} + void tst_QDir::entryListSimple_data() { QTest::addColumn<QString>("dirName"); |