Index: base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
diff --git a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
index fdfe41cd100e9b1d25109537dac2f3852f7c217f..0d044ecfa7b0ed5fe434892379c6fa278b3b5816 100644 |
--- a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
+++ b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc |
@@ -302,20 +302,6 @@ TEST_P(TaskSchedulerWorkerPoolImplTest, PostTaskAfterShutdown) { |
EXPECT_FALSE(task_runner->PostTask(FROM_HERE, Bind(&ShouldNotRunCallback))); |
} |
-// Verify that a Task doesn't run before its delay expires. |
-TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTaskNeverRuns) { |
- // Post a task with a very long delay. |
- EXPECT_TRUE(worker_pool_->CreateTaskRunnerWithTraits(TaskTraits(), GetParam()) |
- ->PostDelayedTask(FROM_HERE, Bind([]() { |
- ADD_FAILURE() |
- << "The delayed task should not run."; |
- }), |
- TimeDelta::FromDays(30))); |
- |
- // Wait a few milliseconds. The test will fail if the delayed task runs. |
- PlatformThread::Sleep(TestTimeouts::tiny_timeout()); |
-} |
- |
// Verify that a Task runs shortly after its delay expires. |
TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) { |
TimeTicks start_time = TimeTicks::Now(); |
@@ -331,8 +317,11 @@ TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) { |
// Wait until the task runs. |
task_ran.Wait(); |
- // Expect the task to run less than 250 ms after its delay expires. |
- EXPECT_LT(TimeTicks::Now() - start_time, |
+ // Expect the task to run after its delay expires, but not more than 250 ms |
+ // after that. |
+ const TimeDelta actual_delay = TimeTicks::Now() - start_time; |
+ EXPECT_GE(actual_delay, TestTimeouts::tiny_timeout()); |
+ EXPECT_LT(actual_delay, |
TimeDelta::FromMilliseconds(250) + TestTimeouts::tiny_timeout()); |
} |