diff options
author | leng@chromium.org <leng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-17 11:22:59 +0000 |
---|---|---|
committer | leng@chromium.org <leng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-17 11:22:59 +0000 |
commit | 835332b5007452324810de8913d7fe0a3861c4b7 (patch) | |
tree | 47d2ca4e671f1bbe0b9e4e22787f0302f8084ae0 /base/timer_unittest.cc | |
parent | a016195404c7e24658a900baba532b1b19dfe7c4 (diff) | |
download | chromium_src-835332b5007452324810de8913d7fe0a3861c4b7.zip chromium_src-835332b5007452324810de8913d7fe0a3861c4b7.tar.gz chromium_src-835332b5007452324810de8913d7fe0a3861c4b7.tar.bz2 |
Change explicit usage of each type of message loop in TimerTest to instead loop through an array of message loop types.
This allows for easier-to-read code while including a platform that cannot run the tests on every kind of message loop. Specifically, iOS cannot run the UI loop for unit tests.
Un-exclude timer_unittest.cc on ios in base.gyp.
BUG=b/6825060
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10786013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146980 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/timer_unittest.cc')
-rw-r--r-- | base/timer_unittest.cc | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/base/timer_unittest.cc b/base/timer_unittest.cc index 71a752e..67bd948 100644 --- a/base/timer_unittest.cc +++ b/base/timer_unittest.cc @@ -11,6 +11,17 @@ using base::TimeDelta; namespace { +// The message loops on which each timer should be tested. +const MessageLoop::Type testing_message_loops[] = { + MessageLoop::TYPE_DEFAULT, + MessageLoop::TYPE_IO, +#if !defined(OS_IOS) // iOS does not allow direct running of the UI loop. + MessageLoop::TYPE_UI, +#endif +}; + +const int kNumTestingMessageLoops = arraysize(testing_message_loops); + class OneShotTimerTester { public: OneShotTimerTester(bool* did_run, unsigned milliseconds = 10) @@ -276,60 +287,60 @@ void RunTest_DelayTimer_Deleted(MessageLoop::Type message_loop_type) { // that timers work properly in all configurations. TEST(TimerTest, OneShotTimer) { - RunTest_OneShotTimer(MessageLoop::TYPE_DEFAULT); - RunTest_OneShotTimer(MessageLoop::TYPE_UI); - RunTest_OneShotTimer(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_OneShotTimer(testing_message_loops[i]); + } } TEST(TimerTest, OneShotTimer_Cancel) { - RunTest_OneShotTimer_Cancel(MessageLoop::TYPE_DEFAULT); - RunTest_OneShotTimer_Cancel(MessageLoop::TYPE_UI); - RunTest_OneShotTimer_Cancel(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_OneShotTimer_Cancel(testing_message_loops[i]); + } } // If underline timer does not handle properly, we will crash or fail // in full page heap environment. TEST(TimerTest, OneShotSelfDeletingTimer) { - RunTest_OneShotSelfDeletingTimer(MessageLoop::TYPE_DEFAULT); - RunTest_OneShotSelfDeletingTimer(MessageLoop::TYPE_UI); - RunTest_OneShotSelfDeletingTimer(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_OneShotSelfDeletingTimer(testing_message_loops[i]); + } } TEST(TimerTest, RepeatingTimer) { - RunTest_RepeatingTimer(MessageLoop::TYPE_DEFAULT); - RunTest_RepeatingTimer(MessageLoop::TYPE_UI); - RunTest_RepeatingTimer(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_RepeatingTimer(testing_message_loops[i]); + } } TEST(TimerTest, RepeatingTimer_Cancel) { - RunTest_RepeatingTimer_Cancel(MessageLoop::TYPE_DEFAULT); - RunTest_RepeatingTimer_Cancel(MessageLoop::TYPE_UI); - RunTest_RepeatingTimer_Cancel(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_RepeatingTimer_Cancel(testing_message_loops[i]); + } } TEST(TimerTest, DelayTimer_NoCall) { - RunTest_DelayTimer_NoCall(MessageLoop::TYPE_DEFAULT); - RunTest_DelayTimer_NoCall(MessageLoop::TYPE_UI); - RunTest_DelayTimer_NoCall(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_DelayTimer_NoCall(testing_message_loops[i]); + } } TEST(TimerTest, DelayTimer_OneCall) { - RunTest_DelayTimer_OneCall(MessageLoop::TYPE_DEFAULT); - RunTest_DelayTimer_OneCall(MessageLoop::TYPE_UI); - RunTest_DelayTimer_OneCall(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_DelayTimer_OneCall(testing_message_loops[i]); + } } // It's flaky on the buildbot, http://crbug.com/25038. TEST(TimerTest, DISABLED_DelayTimer_Reset) { - RunTest_DelayTimer_Reset(MessageLoop::TYPE_DEFAULT); - RunTest_DelayTimer_Reset(MessageLoop::TYPE_UI); - RunTest_DelayTimer_Reset(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_DelayTimer_Reset(testing_message_loops[i]); + } } TEST(TimerTest, DelayTimer_Deleted) { - RunTest_DelayTimer_Deleted(MessageLoop::TYPE_DEFAULT); - RunTest_DelayTimer_Deleted(MessageLoop::TYPE_UI); - RunTest_DelayTimer_Deleted(MessageLoop::TYPE_IO); + for (int i = 0; i < kNumTestingMessageLoops; i++) { + RunTest_DelayTimer_Deleted(testing_message_loops[i]); + } } TEST(TimerTest, MessageLoopShutdown) { |