summaryrefslogtreecommitdiffstats
path: root/base/timer_unittest.cc
diff options
context:
space:
mode:
authorleng@chromium.org <leng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 11:22:59 +0000
committerleng@chromium.org <leng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 11:22:59 +0000
commit835332b5007452324810de8913d7fe0a3861c4b7 (patch)
tree47d2ca4e671f1bbe0b9e4e22787f0302f8084ae0 /base/timer_unittest.cc
parenta016195404c7e24658a900baba532b1b19dfe7c4 (diff)
downloadchromium_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.cc65
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) {