diff options
Diffstat (limited to 'base/test/test_mock_time_task_runner.cc')
-rw-r--r-- | base/test/test_mock_time_task_runner.cc | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/base/test/test_mock_time_task_runner.cc b/base/test/test_mock_time_task_runner.cc deleted file mode 100644 index 1698391..0000000 --- a/base/test/test_mock_time_task_runner.cc +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/test/test_mock_time_task_runner.h" - -#include "base/logging.h" -#include "base/memory/ref_counted.h" - -namespace base { - -namespace { - -// TickClock that always returns the then-current mock time of |task_runner| as -// the current time. -class MockTickClock : public TickClock { - public: - explicit MockTickClock( - scoped_refptr<const TestMockTimeTaskRunner> task_runner); - ~MockTickClock() override; - - // TickClock: - TimeTicks NowTicks() override; - - private: - scoped_refptr<const TestMockTimeTaskRunner> task_runner_; - - DISALLOW_COPY_AND_ASSIGN(MockTickClock); -}; - -MockTickClock::MockTickClock( - scoped_refptr<const TestMockTimeTaskRunner> task_runner) - : task_runner_(task_runner) { -} - -MockTickClock::~MockTickClock() { -} - -TimeTicks MockTickClock::NowTicks() { - return task_runner_->GetCurrentMockTime(); -} - -} // namespace - -bool TestMockTimeTaskRunner::TemporalOrder::operator()( - const TestPendingTask& first_task, - const TestPendingTask& second_task) const { - return first_task.GetTimeToRun() > second_task.GetTimeToRun(); -} - -TestMockTimeTaskRunner::TestMockTimeTaskRunner() { -} - -TestMockTimeTaskRunner::~TestMockTimeTaskRunner() { -} - -void TestMockTimeTaskRunner::FastForwardBy(TimeDelta delta) { - DCHECK(thread_checker_.CalledOnValidThread()); - - OnBeforeSelectingTask(); - - const base::TimeTicks original_now = now_; - TestPendingTask task_info; - while (DequeueNextTask(original_now, delta, &task_info)) { - if (task_info.GetTimeToRun() - now_ > base::TimeDelta()) { - now_ = task_info.GetTimeToRun(); - OnAfterTimePassed(); - } - - task_info.task.Run(); - - OnAfterTaskRun(); - OnBeforeSelectingTask(); - } - - if (!delta.is_max() && now_ - original_now < delta) { - now_ = original_now + delta; - OnAfterTimePassed(); - } -} - -void TestMockTimeTaskRunner::RunUntilIdle() { - FastForwardBy(TimeDelta()); -} - -void TestMockTimeTaskRunner::FastForwardUntilNoTasksRemain() { - FastForwardBy(TimeDelta::Max()); -} - -TimeTicks TestMockTimeTaskRunner::GetCurrentMockTime() const { - DCHECK(thread_checker_.CalledOnValidThread()); - return now_; -} - -scoped_ptr<TickClock> TestMockTimeTaskRunner::GetMockTickClock() const { - DCHECK(thread_checker_.CalledOnValidThread()); - return make_scoped_ptr(new MockTickClock(this)); -} - -bool TestMockTimeTaskRunner::HasPendingTask() const { - DCHECK(thread_checker_.CalledOnValidThread()); - return !tasks_.empty(); -} - -TimeDelta TestMockTimeTaskRunner::NextPendingTaskDelay() const { - DCHECK(thread_checker_.CalledOnValidThread()); - return tasks_.empty() ? TimeDelta::Max() : tasks_.top().GetTimeToRun() - now_; -} - -bool TestMockTimeTaskRunner::RunsTasksOnCurrentThread() const { - return thread_checker_.CalledOnValidThread(); -} - -bool TestMockTimeTaskRunner::PostDelayedTask( - const tracked_objects::Location& from_here, - const Closure& task, - TimeDelta delay) { - base::AutoLock scoped_lock(tasks_lock_); - tasks_.push( - TestPendingTask(from_here, task, now_, delay, TestPendingTask::NESTABLE)); - return true; -} - -bool TestMockTimeTaskRunner::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const Closure& task, - TimeDelta delay) { - NOTREACHED(); - return false; -} - -void TestMockTimeTaskRunner::OnBeforeSelectingTask() { - // Empty default implementation. -} - -void TestMockTimeTaskRunner::OnAfterTimePassed() { - // Empty default implementation. -} - -void TestMockTimeTaskRunner::OnAfterTaskRun() { - // Empty default implementation. -} - -bool TestMockTimeTaskRunner::DequeueNextTask(const base::TimeTicks& reference, - const base::TimeDelta& max_delta, - TestPendingTask* next_task) { - base::AutoLock scoped_lock(tasks_lock_); - if (!tasks_.empty() && - (tasks_.top().GetTimeToRun() - reference) <= max_delta) { - *next_task = tasks_.top(); - tasks_.pop(); - return true; - } - return false; -} - -} // namespace base |