diff options
Diffstat (limited to 'common/timer_unittest.cc')
-rw-r--r-- | common/timer_unittest.cc | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/common/timer_unittest.cc b/common/timer_unittest.cc index 7d2bc978a..1c676cc0b 100644 --- a/common/timer_unittest.cc +++ b/common/timer_unittest.cc @@ -250,14 +250,22 @@ TEST_F(TimerTest, cancel_periodic_task) { MessageLoopThread message_loop_thread(name); message_loop_thread.StartUp(); uint32_t delay_ms = 5; - uint32_t time_cancellation_ms = 3; + int num_tasks = 5; + auto future = promise_->get_future(); + timer_->SchedulePeriodic( message_loop_thread.GetWeakPtr(), FROM_HERE, - base::Bind(&TimerTest::ShouldNotHappen, base::Unretained(this)), + base::Bind(&TimerTest::IncreaseTaskCounter, base::Unretained(this), + num_tasks, promise_), base::TimeDelta::FromMilliseconds(delay_ms)); - std::this_thread::sleep_for(std::chrono::milliseconds(time_cancellation_ms)); + future.wait(); timer_->CancelAndWait(); - std::this_thread::sleep_for(std::chrono::milliseconds(delay_error_ms)); + std::this_thread::sleep_for( + std::chrono::milliseconds(delay_ms + delay_error_ms)); + int counter = counter_; + std::this_thread::sleep_for( + std::chrono::milliseconds(delay_ms + delay_error_ms)); + ASSERT_EQ(counter, counter_); } // Verify that if a task is being executed, then cancelling it is no-op @@ -388,6 +396,6 @@ TEST_F(TimerTest, reschedule_task_when_firing_must_schedule_new_task) { base::Bind(&TimerTest::GetName, base::Unretained(this), &my_name, promise_), base::TimeDelta::FromMilliseconds(delay_ms)); - future.wait_for(std::chrono::milliseconds(delay_ms + delay_error_ms)); + future.get(); ASSERT_EQ(name, my_name); } |