diff options
author | Ahmad Samir <a.samirh78@gmail.com> | 2024-01-28 19:44:57 +0200 |
---|---|---|
committer | Ahmad Samir <a.samirh78@gmail.com> | 2024-02-01 16:28:55 +0200 |
commit | 986b5b4f47cdac71bb66784abc50d4fff695984d (patch) | |
tree | 8e68746bf07500200ec4bc135d097bcce07404ee /tests/auto/corelib | |
parent | cfcd56a78fae5d4f4c79f9e76d6bcd57f8a3cde2 (diff) |
QDirIterator: don't create test dirs/files in the source dir
This is cleaner as the test dirs/files are created in a QTemporaryDir
that is cleaned up automatically, so less manual cleanup in the
unittest.
This also fixes issues for build environments where the source dir is
read-only.
entrylist dir in the source dir is only needed for the construction of
the QResource in the CMakeLists.txt.
Task-number: QTBUG-117449
Change-Id: I3e6389ff730c3a617854e85318f80838e012f2c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r-- | tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp b/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp index 2d69a36810..f6439c0ead 100644 --- a/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp +++ b/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp @@ -46,16 +46,10 @@ private: // convenience functions return false; } - enum Cleanup { DoDelete, DontDelete }; - bool createFile(const QString &fileName, Cleanup cleanup = DoDelete) + bool createFile(const QString &fileName) { QFile file(fileName); - if (file.open(QIODevice::WriteOnly)) { - if (cleanup == DoDelete) - createdFiles << fileName; - return true; - } - return false; + return file.open(QIODevice::WriteOnly); } bool createLink(const QString &destination, const QString &linkName) @@ -69,7 +63,6 @@ private: // convenience functions private slots: void initTestCase(); - void cleanupTestCase(); void iterateRelativeDirectory_data(); void iterateRelativeDirectory(); void iterateResource_data(); @@ -90,10 +83,9 @@ private slots: #ifndef Q_OS_WIN void hiddenDirs_hiddenFiles(); #endif -#ifdef BUILTIN_TESTDATA + private: - QSharedPointer<QTemporaryDir> m_dataDir; -#endif + QTemporaryDir m_dataDir; }; void tst_QDirIterator::initTestCase() @@ -126,25 +118,19 @@ void tst_QDirIterator::initTestCase() #else // chdir into testdata directory, then find testdata by relative paths. - QString testdata_dir = QFileInfo(QFINDTESTDATA("entrylist")).absolutePath(); + QString testdata_dir = m_dataDir.path(); #endif + QVERIFY(!testdata_dir.isEmpty()); + // Must call QDir::setCurrent() here because all the tests that use relative + // paths depend on that. QVERIFY2(QDir::setCurrent(testdata_dir), qPrintable("Could not chdir to " + testdata_dir)); - QFile::remove("entrylist/entrylist1.lnk"); - QFile::remove("entrylist/entrylist2.lnk"); - QFile::remove("entrylist/entrylist3.lnk"); - QFile::remove("entrylist/entrylist4.lnk"); - QFile::remove("entrylist/directory/entrylist1.lnk"); - QFile::remove("entrylist/directory/entrylist2.lnk"); - QFile::remove("entrylist/directory/entrylist3.lnk"); - QFile::remove("entrylist/directory/entrylist4.lnk"); - createDirectory("entrylist"); createDirectory("entrylist/directory"); - createFile("entrylist/file", DontDelete); + createFile("entrylist/file"); createFile("entrylist/writable"); - createFile("entrylist/directory/dummy", DontDelete); + createFile("entrylist/directory/dummy"); createDirectory("recursiveDirs"); createDirectory("recursiveDirs/dir1"); @@ -192,15 +178,6 @@ void tst_QDirIterator::initTestCase() #endif } -void tst_QDirIterator::cleanupTestCase() -{ - for (const QString &fileName : std::as_const(createdFiles)) - QFile::remove(fileName); - - for (const QString &dirName : std::as_const(createdDirectories)) - currentDir.rmdir(dirName); -} - void tst_QDirIterator::iterateRelativeDirectory_data() { QTest::addColumn<QString>("dirName"); // relative from current path or abs |