From 3f455a4b53254b3ebbafae91600a63caebee3e0e Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Mon, 12 Sep 2016 18:48:17 +0200 Subject: Introduce QDir::isEmpty() A directory is empty when it doesn't contain files or folders. We can exploit QDirIterator::hasNext() to check whether this is the case. This is efficient since it doesn't list the whole folder (in the non-empty case). Test cases are added for both the empty and non-empty cases. Change-Id: I0f7e26782c0f97f9c16f928dab6cae37927875d8 Reviewed-by: Thiago Macieira --- tests/auto/corelib/io/qdir/tst_qdir.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests') diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index b86c6e4dfa..49ee8eb32c 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -211,6 +211,9 @@ private slots: void cdBelowRoot_data(); void cdBelowRoot(); + void emptyDir(); + void nonEmptyDir(); + private: #ifdef BUILTIN_TESTDATA QString m_dataPath; @@ -2281,6 +2284,26 @@ void tst_QDir::cdBelowRoot() QCOMPARE(dir.path(), rootPath); } +void tst_QDir::emptyDir() +{ + const QString tempDir = QDir::currentPath() + "/tmpdir/"; + QVERIFY(QDir().mkdir(tempDir)); + QVERIFY(QDir(tempDir).mkdir("emptyDirectory")); + + QDir testDir(tempDir + "emptyDirectory"); + QVERIFY(testDir.isEmpty()); + QVERIFY(!testDir.isEmpty(QDir::AllEntries)); + QVERIFY(!testDir.isEmpty(QDir::AllEntries | QDir::NoDot)); + QVERIFY(!testDir.isEmpty(QDir::AllEntries | QDir::NoDotDot)); + QVERIFY(QDir(tempDir).removeRecursively()); +} + +void tst_QDir::nonEmptyDir() +{ + const QDir dir(m_dataPath); + QVERIFY(!dir.isEmpty()); +} + QTEST_MAIN(tst_QDir) #include "tst_qdir.moc" -- cgit v1.2.3