Chromium Code Reviews| Index: base/timer/hi_res_timer_manager_unittest.cc |
| diff --git a/base/timer/hi_res_timer_manager_unittest.cc b/base/timer/hi_res_timer_manager_unittest.cc |
| index ce10e3786d70e295710da4cd05aaa4317e103f6a..5475a91446bdef369b8d2974cbb17b48f170499e 100644 |
| --- a/base/timer/hi_res_timer_manager_unittest.cc |
| +++ b/base/timer/hi_res_timer_manager_unittest.cc |
| @@ -14,25 +14,22 @@ |
| namespace base { |
| #if defined(OS_WIN) |
| -// http://crbug.com/114048 |
| -TEST(HiResTimerManagerTest, DISABLED_ToggleOnOff) { |
| - base::MessageLoop loop; |
| +TEST(HiResTimerManagerTest, ToggleOnOff) { |
| + // The power monitor creates Window to receive power notifications from |
|
jamesr
2014/08/26 19:47:40
"creates Window" -> "creates a Window"
|
| + // Windows, which makes this test flaky if you run while the machine |
| + // goes in or out of AC power. |
| + base::MessageLoop loop(base::MessageLoop::TYPE_UI); |
| scoped_ptr<base::PowerMonitorSource> power_monitor_source( |
| new base::PowerMonitorDeviceSource()); |
| scoped_ptr<base::PowerMonitor> power_monitor( |
| new base::PowerMonitor(power_monitor_source.Pass())); |
| - HighResolutionTimerManager manager; |
| - // At this point, we don't know if the high resolution timers are on or off, |
| - // it depends on what system the tests are running on (for example, if this |
| - // test is running on a laptop/battery, then the PowerMonitor would have |
| - // already set the PowerState to battery power; but if we're running on a |
| - // desktop, then the PowerState will be non-battery power). Simulate a power |
| - // level change to get to a deterministic state. |
| - manager.OnPowerStateChange(/* on_battery */ false); |
| + HighResolutionTimerManager manager; |
| + // Simulate a on-AC power event to get to a known initial state. |
| + manager.OnPowerStateChange(false); |
| // Loop a few times to test power toggling. |
| - for (int loop = 2; loop >= 0; --loop) { |
| + for (int times = 0; times != 3; ++times) { |
| // The manager has the high resolution clock enabled now. |
| EXPECT_TRUE(manager.hi_res_clock_available()); |
| // But the Time class has it off, because it hasn't been activated. |
| @@ -43,12 +40,12 @@ TEST(HiResTimerManagerTest, DISABLED_ToggleOnOff) { |
| EXPECT_TRUE(base::Time::IsHighResolutionTimerInUse()); |
| // Simulate a on-battery power event. |
| - manager.OnPowerStateChange(/* on_battery */ true); |
| + manager.OnPowerStateChange(true); |
| EXPECT_FALSE(manager.hi_res_clock_available()); |
| EXPECT_FALSE(base::Time::IsHighResolutionTimerInUse()); |
| - // Simulate a off-battery power event. |
| - manager.OnPowerStateChange(/* on_battery */ false); |
| + // Back to on-AC power. |
| + manager.OnPowerStateChange(false); |
| EXPECT_TRUE(manager.hi_res_clock_available()); |
| EXPECT_TRUE(base::Time::IsHighResolutionTimerInUse()); |