QDirListing: split a unitttest for easier debugging
Also rename the subdirs in the hiddenDirs_hiddenFiles test dir, normalDirectory/normalDirectory/ is a bit confusing. Make the test more deterministic by comparing lists of files/dirs instead of just counts. Change-Id: I12fdb5428bbef8382d4ee591792d167abcd216cf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
87896c03c1
commit
1c6f594c38
@ -85,7 +85,8 @@ private slots:
|
|||||||
void uncPaths();
|
void uncPaths();
|
||||||
#endif
|
#endif
|
||||||
#ifndef Q_OS_WIN
|
#ifndef Q_OS_WIN
|
||||||
void hiddenDirs_hiddenFiles();
|
void hiddenFiles();
|
||||||
|
void hiddenDirs();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -173,10 +174,10 @@ void tst_QDirListing::initTestCase()
|
|||||||
createFile("hiddenDirs_hiddenFiles/normalDirectory/.hiddenFile");
|
createFile("hiddenDirs_hiddenFiles/normalDirectory/.hiddenFile");
|
||||||
createFile("hiddenDirs_hiddenFiles/.hiddenDirectory/normalFile");
|
createFile("hiddenDirs_hiddenFiles/.hiddenDirectory/normalFile");
|
||||||
createFile("hiddenDirs_hiddenFiles/.hiddenDirectory/.hiddenFile");
|
createFile("hiddenDirs_hiddenFiles/.hiddenDirectory/.hiddenFile");
|
||||||
createDirectory("hiddenDirs_hiddenFiles/normalDirectory/normalDirectory");
|
createDirectory("hiddenDirs_hiddenFiles/normalDirectory/subdir");
|
||||||
createDirectory("hiddenDirs_hiddenFiles/normalDirectory/.hiddenDirectory");
|
createDirectory("hiddenDirs_hiddenFiles/normalDirectory/.hidden-subdir");
|
||||||
createDirectory("hiddenDirs_hiddenFiles/.hiddenDirectory/normalDirectory");
|
createDirectory("hiddenDirs_hiddenFiles/.hiddenDirectory/subdir");
|
||||||
createDirectory("hiddenDirs_hiddenFiles/.hiddenDirectory/.hiddenDirectory");
|
createDirectory("hiddenDirs_hiddenFiles/.hiddenDirectory/.hidden-subdir");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -571,38 +572,59 @@ void tst_QDirListing::uncPaths()
|
|||||||
// In Unix it is easy to create hidden files, but in Windows it requires
|
// In Unix it is easy to create hidden files, but in Windows it requires
|
||||||
// a special call since hidden files need to be "marked" while in Unix
|
// a special call since hidden files need to be "marked" while in Unix
|
||||||
// anything starting by a '.' is a hidden file.
|
// anything starting by a '.' is a hidden file.
|
||||||
// For that reason this test is not run in Windows.
|
// For that reason these two tests aren't run on Windows.
|
||||||
void tst_QDirListing::hiddenDirs_hiddenFiles()
|
|
||||||
|
void tst_QDirListing::hiddenFiles()
|
||||||
{
|
{
|
||||||
// Only files
|
QStringList expected = {
|
||||||
{
|
"hiddenDirs_hiddenFiles/normalFile"_L1,
|
||||||
int matches = 0;
|
"hiddenDirs_hiddenFiles/.hiddenFile"_L1,
|
||||||
int failures = 0;
|
"hiddenDirs_hiddenFiles/normalDirectory/normalFile"_L1,
|
||||||
constexpr auto filters = QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot;
|
"hiddenDirs_hiddenFiles/normalDirectory/.hiddenFile"_L1,
|
||||||
for (const auto &dirEntry : QDirListing(u"hiddenDirs_hiddenFiles"_s, filters,
|
"hiddenDirs_hiddenFiles/.hiddenDirectory/normalFile"_L1,
|
||||||
ItFlag::Recursive)) {
|
"hiddenDirs_hiddenFiles/.hiddenDirectory/.hiddenFile"_L1,
|
||||||
++matches;
|
};
|
||||||
if (dirEntry.isDir())
|
expected.sort();
|
||||||
++failures; // search was only supposed to find files
|
|
||||||
}
|
constexpr auto filters = QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot;
|
||||||
QCOMPARE(matches, 6);
|
QStringList list;
|
||||||
QCOMPARE(failures, 0);
|
list.reserve(expected.size());
|
||||||
}
|
for (const auto &dirEntry : QDirListing(u"hiddenDirs_hiddenFiles"_s, filters,
|
||||||
// Only directories
|
ItFlag::Recursive)) {
|
||||||
{
|
QVERIFY(dirEntry.isFile());
|
||||||
int matches = 0;
|
list.emplace_back(dirEntry.filePath());
|
||||||
int failures = 0;
|
|
||||||
constexpr auto filters = QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot;
|
|
||||||
for (const auto &dirEntry : QDirListing(u"hiddenDirs_hiddenFiles"_s, filters,
|
|
||||||
ItFlag::Recursive)) {
|
|
||||||
++matches;
|
|
||||||
if (!dirEntry.isDir())
|
|
||||||
++failures; // search was only supposed to find files
|
|
||||||
}
|
|
||||||
QCOMPARE(matches, 6);
|
|
||||||
QCOMPARE(failures, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.sort();
|
||||||
|
|
||||||
|
QCOMPARE_EQ(list, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QDirListing::hiddenDirs()
|
||||||
|
{
|
||||||
|
QStringList expected = {
|
||||||
|
"hiddenDirs_hiddenFiles/normalDirectory"_L1,
|
||||||
|
"hiddenDirs_hiddenFiles/normalDirectory/subdir"_L1,
|
||||||
|
"hiddenDirs_hiddenFiles/normalDirectory/.hidden-subdir"_L1,
|
||||||
|
"hiddenDirs_hiddenFiles/.hiddenDirectory"_L1,
|
||||||
|
"hiddenDirs_hiddenFiles/.hiddenDirectory/subdir"_L1,
|
||||||
|
"hiddenDirs_hiddenFiles/.hiddenDirectory/.hidden-subdir"_L1,
|
||||||
|
};
|
||||||
|
expected.sort();
|
||||||
|
|
||||||
|
constexpr auto filters = QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot;
|
||||||
|
QStringList list;
|
||||||
|
list.reserve(expected.size());
|
||||||
|
for (const auto &dirEntry : QDirListing(u"hiddenDirs_hiddenFiles"_s, filters,
|
||||||
|
ItFlag::Recursive)) {
|
||||||
|
QVERIFY(dirEntry.isDir());
|
||||||
|
list.emplace_back(dirEntry.filePath());
|
||||||
|
}
|
||||||
|
list.sort();
|
||||||
|
|
||||||
|
QCOMPARE_EQ(list, expected);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // Q_OS_WIN
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
QTEST_MAIN(tst_QDirListing)
|
QTEST_MAIN(tst_QDirListing)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user