Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: components/scheduler/child/task_queue_manager_unittest.cc

Issue 1178423008: Provision to start base::SimpleTestTickClock at initial ticks Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/scheduler/child/task_queue_manager.h" 5 #include "components/scheduler/child/task_queue_manager.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/single_thread_task_runner.h" 8 #include "base/single_thread_task_runner.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "base/threading/thread.h" 10 #include "base/threading/thread.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 void DeleteTaskQueueManager() { manager_.reset(); } 112 void DeleteTaskQueueManager() { manager_.reset(); }
113 113
114 protected: 114 protected:
115 enum class SelectorType { 115 enum class SelectorType {
116 Automatic, 116 Automatic,
117 Explicit, 117 Explicit,
118 }; 118 };
119 119
120 void Initialize(size_t num_queues, SelectorType type) { 120 void Initialize(size_t num_queues, SelectorType type) {
121 now_src_.reset(new base::SimpleTestTickClock()); 121 now_src_.reset(new base::SimpleTestTickClock());
122 now_src_->Advance(base::TimeDelta::FromMicroseconds(1000));
123 test_task_runner_ = make_scoped_refptr( 122 test_task_runner_ = make_scoped_refptr(
124 new cc::OrderedSimpleTaskRunner(now_src_.get(), false)); 123 new cc::OrderedSimpleTaskRunner(now_src_.get(), false));
125 selector_ = make_scoped_ptr(createSelectorForTest(type)); 124 selector_ = make_scoped_ptr(createSelectorForTest(type));
126 manager_ = make_scoped_ptr(new TaskQueueManager( 125 manager_ = make_scoped_ptr(new TaskQueueManager(
127 num_queues, NestableTaskRunnerForTest::Create(test_task_runner_.get()), 126 num_queues, NestableTaskRunnerForTest::Create(test_task_runner_.get()),
128 selector_.get(), "test.scheduler")); 127 selector_.get(), "test.scheduler"));
129 manager_->SetTimeSourceForTesting( 128 manager_->SetTimeSourceForTesting(
130 make_scoped_ptr(new TestTimeSource(now_src_.get()))); 129 make_scoped_ptr(new TestTimeSource(now_src_.get())));
131 130
132 EXPECT_EQ(num_queues, selector_->work_queues().size()); 131 EXPECT_EQ(num_queues, selector_->work_queues().size());
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 Initialize(1u, SelectorType::Automatic); 1036 Initialize(1u, SelectorType::Automatic);
1038 scoped_refptr<base::SingleThreadTaskRunner> runner = 1037 scoped_refptr<base::SingleThreadTaskRunner> runner =
1039 manager_->TaskRunnerForQueue(0); 1038 manager_->TaskRunnerForQueue(0);
1040 EXPECT_TRUE(runner->RunsTasksOnCurrentThread()); 1039 EXPECT_TRUE(runner->RunsTasksOnCurrentThread());
1041 manager_.reset(); 1040 manager_.reset();
1042 EXPECT_TRUE(runner->RunsTasksOnCurrentThread()); 1041 EXPECT_TRUE(runner->RunsTasksOnCurrentThread());
1043 } 1042 }
1044 1043
1045 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) { 1044 TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime) {
1046 scoped_ptr<base::SimpleTestTickClock> clock(new base::SimpleTestTickClock()); 1045 scoped_ptr<base::SimpleTestTickClock> clock(new base::SimpleTestTickClock());
1047 clock->Advance(base::TimeDelta::FromMicroseconds(10000));
1048 Initialize(2u, SelectorType::Explicit); 1046 Initialize(2u, SelectorType::Explicit);
1049 manager_->SetTimeSourceForTesting( 1047 manager_->SetTimeSourceForTesting(
1050 make_scoped_ptr(new TestTimeSource(clock.get()))); 1048 make_scoped_ptr(new TestTimeSource(clock.get())));
1051 1049
1052 scoped_refptr<base::SingleThreadTaskRunner> runners[2] = { 1050 scoped_refptr<base::SingleThreadTaskRunner> runners[2] = {
1053 manager_->TaskRunnerForQueue(0), manager_->TaskRunnerForQueue(1)}; 1051 manager_->TaskRunnerForQueue(0), manager_->TaskRunnerForQueue(1)};
1054 1052
1055 // With no delayed tasks. 1053 // With no delayed tasks.
1056 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null()); 1054 EXPECT_TRUE(manager_->NextPendingDelayedTaskRunTime().is_null());
1057 1055
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1236 manager_->GetQueueState(1)); 1234 manager_->GetQueueState(1));
1237 1235
1238 test_task_runner_->RunUntilIdle(); 1236 test_task_runner_->RunUntilIdle();
1239 EXPECT_EQ(TaskQueueManager::QueueState::EMPTY, 1237 EXPECT_EQ(TaskQueueManager::QueueState::EMPTY,
1240 manager_->GetQueueState(0)); 1238 manager_->GetQueueState(0));
1241 EXPECT_EQ(TaskQueueManager::QueueState::EMPTY, 1239 EXPECT_EQ(TaskQueueManager::QueueState::EMPTY,
1242 manager_->GetQueueState(1)); 1240 manager_->GetQueueState(1));
1243 } 1241 }
1244 1242
1245 } // namespace scheduler 1243 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698