summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-06-09 09:53:18 +0200
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-06-09 09:50:35 +0000
commitbf440c18bb60a6964b32778157db2a22b168e946 (patch)
treefb2fe8c69ea5dc17961d2e4fd3b0c1436877ebe7 /tests/auto/corelib/io
parentb38615c7e4fbaea198503a8fde3224066a0ae616 (diff)
Fix return value of QWindowsFileSystemWatcherEngine::removePaths().
Previously, the path was removed from list returned (indicating failure to remove) only when the thread's list was empty (last file in directory). Move the statement up so that removal happens when it is found in thread's list. Task-number: QTBUG-46449 Change-Id: Ib79199c731f79357b0e5c17636254fbeb3a754a0 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
index 0ebfd2ae35..7e56ecaab3 100644
--- a/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
+++ b/tests/auto/corelib/io/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
@@ -62,6 +62,7 @@ private slots:
void removePath();
void addPaths();
void removePaths();
+ void removePathsFilesInSameDirectory();
void watchFileAndItsDirectory_data() { basicTest_data(); }
void watchFileAndItsDirectory();
@@ -460,6 +461,31 @@ void tst_QFileSystemWatcher::removePaths()
watcher.removePaths(paths);
}
+void tst_QFileSystemWatcher::removePathsFilesInSameDirectory()
+{
+ // QTBUG-46449/Windows: Check the return values of removePaths().
+ // When adding the 1st file, a thread is started to watch the temp path.
+ // After adding and removing the 2nd file, the thread is still running and
+ // success should be reported.
+ QTemporaryFile file1(m_tempDirPattern);
+ QTemporaryFile file2(m_tempDirPattern);
+ QVERIFY2(file1.open(), qPrintable(file1.errorString()));
+ QVERIFY2(file2.open(), qPrintable(file1.errorString()));
+ const QString path1 = file1.fileName();
+ const QString path2 = file2.fileName();
+ file1.close();
+ file2.close();
+ QFileSystemWatcher watcher;
+ QVERIFY(watcher.addPath(path1));
+ QCOMPARE(watcher.files().size(), 1);
+ QVERIFY(watcher.addPath(path2));
+ QCOMPARE(watcher.files().size(), 2);
+ QVERIFY(watcher.removePath(path1));
+ QCOMPARE(watcher.files().size(), 1);
+ QVERIFY(watcher.removePath(path2));
+ QCOMPARE(watcher.files().size(), 0);
+}
+
static QByteArray msgFileOperationFailed(const char *what, const QFile &f)
{
return what + QByteArrayLiteral(" failed on \"")