diff options
-rw-r--r-- | chrome/browser/file_path_watcher_unittest.cc | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/chrome/browser/file_path_watcher_unittest.cc b/chrome/browser/file_path_watcher_unittest.cc index 34c49d9..cea627e 100644 --- a/chrome/browser/file_path_watcher_unittest.cc +++ b/chrome/browser/file_path_watcher_unittest.cc @@ -19,6 +19,14 @@ #include "base/waitable_event.h" #include "testing/gtest/include/gtest/gtest.h" +#if defined(OS_MACOSX) +// TODO(mnissler): There are flakes on Mac (http://crbug.com/54822) at least for +// FilePathWatcherTest.MultipleWatchersSingleFile. +#define MAYBE(name) FLAKY_ ## name +#else +#define MAYBE(name) name +#endif + namespace { // The time we wait for events to happen. It should be large enough to be @@ -166,7 +174,7 @@ class FilePathWatcherTest : public testing::Test { }; // Basic test: Create the file and verify that we notice. -TEST_F(FilePathWatcherTest, NewFile) { +TEST_F(FilePathWatcherTest, MAYBE(NewFile)) { FilePathWatcher watcher; scoped_refptr<TestDelegate> delegate(new TestDelegate); SetupWatch(test_file(), &watcher, delegate.get()); @@ -176,7 +184,7 @@ TEST_F(FilePathWatcherTest, NewFile) { } // Verify that modifying the file is caught. -TEST_F(FilePathWatcherTest, ModifiedFile) { +TEST_F(FilePathWatcherTest, MAYBE(ModifiedFile)) { ASSERT_TRUE(WriteFile(test_file(), "content")); FilePathWatcher watcher; @@ -189,7 +197,7 @@ TEST_F(FilePathWatcherTest, ModifiedFile) { } // Verify that moving the file into place is caught. -TEST_F(FilePathWatcherTest, MovedFile) { +TEST_F(FilePathWatcherTest, MAYBE(MovedFile)) { FilePath source_file(temp_dir_->path().AppendASCII("source")); ASSERT_TRUE(WriteFile(source_file, "content")); @@ -202,7 +210,7 @@ TEST_F(FilePathWatcherTest, MovedFile) { EXPECT_LE(1, WaitForEvents(delegate.get())); } -TEST_F(FilePathWatcherTest, DeletedFile) { +TEST_F(FilePathWatcherTest, MAYBE(DeletedFile)) { ASSERT_TRUE(WriteFile(test_file(), "content")); FilePathWatcher watcher; @@ -216,7 +224,7 @@ TEST_F(FilePathWatcherTest, DeletedFile) { } // Verify that letting the watcher go out of scope stops notifications. -TEST_F(FilePathWatcherTest, Unregister) { +TEST_F(FilePathWatcherTest, MAYBE(Unregister)) { scoped_refptr<TestDelegate> delegate(new TestDelegate); { @@ -252,7 +260,7 @@ class Deleter : public FilePathWatcher::Delegate { } // anonymous namespace // Verify that deleting a watcher during the callback doesn't crash. -TEST_F(FilePathWatcherTest, DeleteDuringNotify) { +TEST_F(FilePathWatcherTest, MAYBE(DeleteDuringNotify)) { FilePathWatcher* watcher = new FilePathWatcher; // Takes ownership of watcher. scoped_refptr<Deleter> deleter(new Deleter(watcher, &loop_)); @@ -268,7 +276,7 @@ TEST_F(FilePathWatcherTest, DeleteDuringNotify) { // Verify that deleting the watcher works even if there is a pending // notification. -TEST_F(FilePathWatcherTest, DestroyWithPendingNotification) { +TEST_F(FilePathWatcherTest, MAYBE(DestroyWithPendingNotification)) { scoped_refptr<TestDelegate> delegate(new TestDelegate); FilePathWatcher* watcher = new FilePathWatcher; SetupWatch(test_file(), watcher, delegate.get()); @@ -278,7 +286,7 @@ TEST_F(FilePathWatcherTest, DestroyWithPendingNotification) { WaitForEvents(delegate.get()); } -TEST_F(FilePathWatcherTest, MultipleWatchersSingleFile) { +TEST_F(FilePathWatcherTest, MAYBE(MultipleWatchersSingleFile)) { FilePathWatcher watcher1, watcher2; scoped_refptr<TestDelegate> delegate1(new TestDelegate); scoped_refptr<TestDelegate> delegate2(new TestDelegate); @@ -292,7 +300,7 @@ TEST_F(FilePathWatcherTest, MultipleWatchersSingleFile) { // Verify that watching a file whose parent directory doesn't exist yet works if // the directory and file are created eventually. -TEST_F(FilePathWatcherTest, NonExistentDirectory) { +TEST_F(FilePathWatcherTest, MAYBE(NonExistentDirectory)) { FilePathWatcher watcher; FilePath dir(temp_dir_->path().AppendASCII("dir")); FilePath file(dir.AppendASCII("file")); @@ -314,7 +322,7 @@ TEST_F(FilePathWatcherTest, NonExistentDirectory) { // Exercises watch reconfiguration for the case that directories on the path // are rapidly created. -TEST_F(FilePathWatcherTest, DirectoryChain) { +TEST_F(FilePathWatcherTest, MAYBE(DirectoryChain)) { FilePath path(temp_dir_->path()); std::vector<std::string> dir_names; for (int i = 0; i < 20; i++) { @@ -341,7 +349,7 @@ TEST_F(FilePathWatcherTest, DirectoryChain) { EXPECT_LE(1, WaitForEvents(delegate.get())); } -TEST_F(FilePathWatcherTest, DisappearingDirectory) { +TEST_F(FilePathWatcherTest, MAYBE(DisappearingDirectory)) { FilePathWatcher watcher; FilePath dir(temp_dir_->path().AppendASCII("dir")); FilePath file(dir.AppendASCII("file")); @@ -361,7 +369,7 @@ TEST_F(FilePathWatcherTest, DisappearingDirectory) { } // Tests that a file that is deleted and reappears is tracked correctly. -TEST_F(FilePathWatcherTest, DeleteAndRecreate) { +TEST_F(FilePathWatcherTest, MAYBE(DeleteAndRecreate)) { ASSERT_TRUE(WriteFile(test_file(), "content")); FilePathWatcher watcher; scoped_refptr<TestDelegate> delegate(new TestDelegate); @@ -374,7 +382,7 @@ TEST_F(FilePathWatcherTest, DeleteAndRecreate) { EXPECT_LE(1, WaitForEvents(delegate.get())); } -TEST_F(FilePathWatcherTest, WatchDirectory) { +TEST_F(FilePathWatcherTest, MAYBE(WatchDirectory)) { FilePathWatcher watcher; FilePath dir(temp_dir_->path().AppendASCII("dir")); FilePath file1(dir.AppendASCII("file1")); @@ -399,7 +407,7 @@ TEST_F(FilePathWatcherTest, WatchDirectory) { EXPECT_LE(1, WaitForEvents(delegate.get())); } -TEST_F(FilePathWatcherTest, MoveParent) { +TEST_F(FilePathWatcherTest, MAYBE(MoveParent)) { FilePathWatcher file_watcher; FilePathWatcher subdir_watcher; FilePath dir(temp_dir_->path().AppendASCII("dir")); @@ -429,7 +437,7 @@ TEST_F(FilePathWatcherTest, MoveParent) { EXPECT_LE(1, WaitForEvents(subdir_delegate.get())); } -TEST_F(FilePathWatcherTest, MoveChild) { +TEST_F(FilePathWatcherTest, MAYBE(MoveChild)) { FilePathWatcher file_watcher; FilePathWatcher subdir_watcher; FilePath source_dir(temp_dir_->path().AppendASCII("source")); |