1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/*
* This software is in the public domain, furnished "as is", without technical
* support, and with no warranty, express or implied, as to its usefulness for
* any purpose.
* */
#include <QtTest>
#include "folderwatcher_linux.h"
#include "testutils/testutils.h"
using namespace OCC;
class TestInotifyWatcher: public FolderWatcherPrivate
{
Q_OBJECT
private:
QString _root;
private Q_SLOTS:
void initTestCase() {
_root = QDir::tempPath() + QStringLiteral("/test_") + QString::number(QRandomGenerator::global()->generate());
qDebug() << "creating test directory tree in " << _root;
QDir rootDir(_root);
rootDir.mkpath(_root + QStringLiteral("/a1/b1/c1"));
rootDir.mkpath(_root + QStringLiteral("/a1/b1/c2"));
rootDir.mkpath(_root + QStringLiteral("/a1/b2/c1"));
rootDir.mkpath(_root + QStringLiteral("/a1/b3/c3"));
rootDir.mkpath(_root + QStringLiteral("/a2/b3/c3"));
}
// Test the recursive path listing function findFoldersBelow
void testDirsBelowPath() {
QStringList dirs;
bool ok = findFoldersBelow(QDir(_root), dirs);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b1")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b1/c1")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b1/c2")) > -1);
QVERIFY(TestUtils::writeRandomFile(_root + QStringLiteral("/a1/rand1.dat")));
QVERIFY(TestUtils::writeRandomFile(_root + QStringLiteral("/a1/b1/rand2.dat")));
QVERIFY(TestUtils::writeRandomFile(_root + QStringLiteral("/a1/b1/c1/rand3.dat")));
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b2")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b2/c1")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b3")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a1/b3/c3")) > -1);
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a2")));
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a2/b3")));
QVERIFY(dirs.indexOf(_root + QStringLiteral("/a2/b3/c3")));
QVERIFY2(dirs.count() == 11, "Directory count wrong.");
QVERIFY2(ok, "findFoldersBelow failed.");
}
void cleanupTestCase() {
if( _root.startsWith(QDir::tempPath() )) {
system(QStringLiteral("rm -rf %1").arg(_root).toLocal8Bit().constData());
}
}
};
QTEST_APPLESS_MAIN(TestInotifyWatcher)
#include "testinotifywatcher.moc"
|