diff options
Diffstat (limited to 'base/test')
-rw-r--r-- | base/test/test_mock_time_task_runner.cc | 6 | ||||
-rw-r--r-- | base/test/test_mock_time_task_runner.h | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/base/test/test_mock_time_task_runner.cc b/base/test/test_mock_time_task_runner.cc index 6bcab8b..8cc2e6d 100644 --- a/base/test/test_mock_time_task_runner.cc +++ b/base/test/test_mock_time_task_runner.cc @@ -164,6 +164,10 @@ bool TestMockTimeTaskRunner::PostNonNestableDelayedTask( return PostDelayedTask(from_here, task, delay); } +bool TestMockTimeTaskRunner::IsElapsingStopped() { + return false; +} + void TestMockTimeTaskRunner::OnBeforeSelectingTask() { // Empty default implementation. } @@ -179,7 +183,7 @@ void TestMockTimeTaskRunner::OnAfterTaskRun() { void TestMockTimeTaskRunner::ProcessAllTasksNoLaterThan(TimeDelta max_delta) { DCHECK_GE(max_delta, TimeDelta()); const TimeTicks original_now_ticks = now_ticks_; - while (true) { + while (!IsElapsingStopped()) { OnBeforeSelectingTask(); TestPendingTask task_info; if (!DequeueNextTask(original_now_ticks, max_delta, &task_info)) diff --git a/base/test/test_mock_time_task_runner.h b/base/test/test_mock_time_task_runner.h index c38fd6d..705af10 100644 --- a/base/test/test_mock_time_task_runner.h +++ b/base/test/test_mock_time_task_runner.h @@ -94,6 +94,11 @@ class TestMockTimeTaskRunner : public SingleThreadTaskRunner { protected: ~TestMockTimeTaskRunner() override; + // Whether the elapsing of virtual time is stopped or not. Subclasses can + // override this method to perform early exits from a running task runner. + // Defaults to always return false. + virtual bool IsElapsingStopped(); + // Called before the next task to run is selected, so that subclasses have a // last chance to make sure all tasks are posted. virtual void OnBeforeSelectingTask(); |