Author: jkorous Date: Thu Aug 1 16:24:30 2019 New Revision: 367632 URL: http://llvm.org/viewvc/llvm-project?rev=367632&view=rev Log: [DirectoryWatcher] Relax assumption to prevent test flakiness
Modified: cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp Modified: cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp?rev=367632&r1=367631&r2=367632&view=diff ============================================================================== --- cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp (original) +++ cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp Thu Aug 1 16:24:30 2019 @@ -25,6 +25,24 @@ static void stopFSEventStream(FSEventStr namespace { +/// This implementation is based on FSEvents API which implementation is +/// aggressively coallescing events. This can manifest as duplicate events. +/// +/// For example this scenario has been observed: +/// +/// create foo/bar +/// sleep 5 s +/// create DirectoryWatcherMac for dir foo +/// receive notification: bar EventKind::Modified +/// sleep 5 s +/// modify foo/bar +/// receive notification: bar EventKind::Modified +/// receive notification: bar EventKind::Modified +/// sleep 5 s +/// delete foo/bar +/// receive notification: bar EventKind::Modified +/// receive notification: bar EventKind::Modified +/// receive notification: bar EventKind::Removed class DirectoryWatcherMac : public clang::DirectoryWatcher { public: DirectoryWatcherMac( Modified: cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp?rev=367632&r1=367631&r2=367632&view=diff ============================================================================== --- cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp (original) +++ cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp Thu Aug 1 16:24:30 2019 @@ -377,7 +377,7 @@ TEST(DirectoryWatcherTest, DeleteFile) { VerifyingConsumer TestConsumer{ {{EventKind::Modified, "a"}}, {{EventKind::Removed, "a"}}, - {{EventKind::Modified, "a"}}}; + {{EventKind::Modified, "a"}, {EventKind::Removed, "a"}}}; auto DW = DirectoryWatcher::create( fixture.TestWatchedDir, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits