summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2024-01-28 19:44:57 +0200
committerAhmad Samir <a.samirh78@gmail.com>2024-02-01 16:28:55 +0200
commit986b5b4f47cdac71bb66784abc50d4fff695984d (patch)
tree8e68746bf07500200ec4bc135d097bcce07404ee
parentcfcd56a78fae5d4f4c79f9e76d6bcd57f8a3cde2 (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>
-rw-r--r--tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp43
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