From 05992b2a814db10d48e4deaeb9fea873e37bd329 Mon Sep 17 00:00:00 2001 From: "darin@google.com" Date: Wed, 24 Sep 2008 20:42:35 +0000 Subject: Run ObjectWatcher unit tests against all types of message loops. R=jar Review URL: http://codereview.chromium.org/4245 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2570 0039d316-1c4b-4281-b951-d872f2087c98 --- base/object_watcher_unittest.cc | 44 +++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) (limited to 'base/object_watcher_unittest.cc') diff --git a/base/object_watcher_unittest.cc b/base/object_watcher_unittest.cc index d830dfc..3d2b068 100644 --- a/base/object_watcher_unittest.cc +++ b/base/object_watcher_unittest.cc @@ -10,8 +10,6 @@ namespace { -typedef testing::Test ObjectWatcherTest; - class QuitDelegate : public base::ObjectWatcher::Delegate { public: virtual void OnObjectSignaled(HANDLE object) { @@ -32,8 +30,8 @@ class DecrementCountDelegate : public base::ObjectWatcher::Delegate { } // namespace -TEST(ObjectWatcherTest, BasicSignal) { - MessageLoop message_loop; +void RunTest_BasicSignal(MessageLoop::Type message_loop_type) { + MessageLoop message_loop(message_loop_type); base::ObjectWatcher watcher; @@ -51,8 +49,8 @@ TEST(ObjectWatcherTest, BasicSignal) { CloseHandle(event); } -TEST(ObjectWatcherTest, BasicCancel) { - MessageLoop message_loop; +void RunTest_BasicCancel(MessageLoop::Type message_loop_type) { + MessageLoop message_loop(message_loop_type); base::ObjectWatcher watcher; @@ -69,8 +67,8 @@ TEST(ObjectWatcherTest, BasicCancel) { } -TEST(ObjectWatcherTest, CancelAfterSet) { - MessageLoop message_loop; +void RunTest_CancelAfterSet(MessageLoop::Type message_loop_type) { + MessageLoop message_loop(message_loop_type); base::ObjectWatcher watcher; @@ -98,7 +96,7 @@ TEST(ObjectWatcherTest, CancelAfterSet) { CloseHandle(event); } -TEST(ObjectWatcherTest, OutlivesMessageLoop) { +void RunTest_OutlivesMessageLoop(MessageLoop::Type message_loop_type) { // Simulate a MessageLoop that dies before an ObjectWatcher. This ordinarily // doesn't happen when people use the Thread class, but it can happen when // people use the Singleton pattern or atexit. @@ -106,7 +104,7 @@ TEST(ObjectWatcherTest, OutlivesMessageLoop) { { base::ObjectWatcher watcher; { - MessageLoop message_loop; + MessageLoop message_loop(message_loop_type); QuitDelegate delegate; watcher.StartWatching(event, &delegate); @@ -114,3 +112,29 @@ TEST(ObjectWatcherTest, OutlivesMessageLoop) { } CloseHandle(event); } + +//----------------------------------------------------------------------------- + +TEST(ObjectWatcherTest, BasicSignal) { + RunTest_BasicSignal(MessageLoop::TYPE_DEFAULT); + RunTest_BasicSignal(MessageLoop::TYPE_IO); + RunTest_BasicSignal(MessageLoop::TYPE_UI); +} + +TEST(ObjectWatcherTest, BasicCancel) { + RunTest_BasicCancel(MessageLoop::TYPE_DEFAULT); + RunTest_BasicCancel(MessageLoop::TYPE_IO); + RunTest_BasicCancel(MessageLoop::TYPE_UI); +} + +TEST(ObjectWatcherTest, CancelAfterSet) { + RunTest_CancelAfterSet(MessageLoop::TYPE_DEFAULT); + RunTest_CancelAfterSet(MessageLoop::TYPE_IO); + RunTest_CancelAfterSet(MessageLoop::TYPE_UI); +} + +TEST(ObjectWatcherTest, OutlivesMessageLoop) { + RunTest_OutlivesMessageLoop(MessageLoop::TYPE_DEFAULT); + RunTest_OutlivesMessageLoop(MessageLoop::TYPE_IO); + RunTest_OutlivesMessageLoop(MessageLoop::TYPE_UI); +} -- cgit v1.1