[DirectoryWatcher] Relax assumption to prevent test flakiness

llvm-svn: 367632
This commit is contained in:
Jan Korous 2019-08-01 23:24:30 +00:00
parent d544d1441d
commit 9debb024d4
2 changed files with 19 additions and 1 deletions

View File

@ -25,6 +25,24 @@ static void stopFSEventStream(FSEventStreamRef);
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(

View File

@ -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,