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

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

Issue 1058873010: Move blink scheduler implementation into a component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 years, 8 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 "content/child/scheduler/task_queue_manager.h" 5 #include "components/scheduler/child/task_queue_manager.h"
6 6
7 #include "base/threading/thread.h" 7 #include "base/threading/thread.h"
8 #include "cc/test/ordered_simple_task_runner.h" 8 #include "cc/test/ordered_simple_task_runner.h"
9 #include "cc/test/test_now_source.h" 9 #include "cc/test/test_now_source.h"
10 #include "content/child/scheduler/nestable_task_runner_for_test.h" 10 #include "components/scheduler/child/nestable_task_runner_for_test.h"
11 #include "content/child/scheduler/scheduler_message_loop_delegate.h" 11 #include "components/scheduler/child/scheduler_message_loop_delegate.h"
12 #include "content/child/scheduler/task_queue_selector.h" 12 #include "components/scheduler/child/task_queue_selector.h"
13 #include "content/test/test_time_source.h" 13 #include "components/scheduler/child/test_time_source.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 15
16 using testing::ElementsAre; 16 using testing::ElementsAre;
17 using testing::_; 17 using testing::_;
18 18
19 namespace content { 19 namespace scheduler {
20 namespace { 20 namespace {
21 21
22 class SelectorForTest : public TaskQueueSelector { 22 class SelectorForTest : public TaskQueueSelector {
23 public: 23 public:
24 ~SelectorForTest() override {} 24 ~SelectorForTest() override {}
25 25
26 virtual void AppendQueueToService(size_t queue_index) = 0; 26 virtual void AppendQueueToService(size_t queue_index) = 0;
27 27
28 virtual const std::vector<const base::TaskQueue*>& work_queues() = 0; 28 virtual const std::vector<const base::TaskQueue*>& work_queues() = 0;
29 29
(...skipping 22 matching lines...) Expand all
52 } 52 }
53 53
54 void AppendQueueToService(size_t queue_index) override { 54 void AppendQueueToService(size_t queue_index) override {
55 DCHECK(false) << "Not supported"; 55 DCHECK(false) << "Not supported";
56 } 56 }
57 57
58 const std::vector<const base::TaskQueue*>& work_queues() override { 58 const std::vector<const base::TaskQueue*>& work_queues() override {
59 return work_queues_; 59 return work_queues_;
60 } 60 }
61 61
62 void SetTaskQueueSelectorObserver(Observer* observer) override { 62 void SetTaskQueueSelectorObserver(Observer* observer) override {}
63 }
64 63
65 private: 64 private:
66 std::vector<const base::TaskQueue*> work_queues_; 65 std::vector<const base::TaskQueue*> work_queues_;
67 66
68 DISALLOW_COPY_AND_ASSIGN(AutomaticSelectorForTest); 67 DISALLOW_COPY_AND_ASSIGN(AutomaticSelectorForTest);
69 }; 68 };
70 69
71 class ExplicitSelectorForTest : public SelectorForTest { 70 class ExplicitSelectorForTest : public SelectorForTest {
72 public: 71 public:
73 ExplicitSelectorForTest() {} 72 ExplicitSelectorForTest() {}
(...skipping 13 matching lines...) Expand all
87 } 86 }
88 87
89 void AppendQueueToService(size_t queue_index) override { 88 void AppendQueueToService(size_t queue_index) override {
90 queues_to_service_.push_back(queue_index); 89 queues_to_service_.push_back(queue_index);
91 } 90 }
92 91
93 const std::vector<const base::TaskQueue*>& work_queues() override { 92 const std::vector<const base::TaskQueue*>& work_queues() override {
94 return work_queues_; 93 return work_queues_;
95 } 94 }
96 95
97 void SetTaskQueueSelectorObserver(Observer* observer) override { 96 void SetTaskQueueSelectorObserver(Observer* observer) override {}
98 }
99 97
100 private: 98 private:
101 std::deque<size_t> queues_to_service_; 99 std::deque<size_t> queues_to_service_;
102 std::vector<const base::TaskQueue*> work_queues_; 100 std::vector<const base::TaskQueue*> work_queues_;
103 101
104 DISALLOW_COPY_AND_ASSIGN(ExplicitSelectorForTest); 102 DISALLOW_COPY_AND_ASSIGN(ExplicitSelectorForTest);
105 }; 103 };
106 104
107 class TaskQueueManagerTest : public testing::Test { 105 class TaskQueueManagerTest : public testing::Test {
108 public: 106 public:
109 void DeleteTaskQueueManager() { 107 void DeleteTaskQueueManager() { manager_.reset(); }
110 manager_.reset();
111 }
112 108
113 protected: 109 protected:
114 enum class SelectorType { 110 enum class SelectorType {
115 Automatic, 111 Automatic,
116 Explicit, 112 Explicit,
117 }; 113 };
118 114
119 void Initialize(size_t num_queues, SelectorType type) { 115 void Initialize(size_t num_queues, SelectorType type) {
120 now_src_ = cc::TestNowSource::Create(1000); 116 now_src_ = cc::TestNowSource::Create(1000);
121 test_task_runner_ = 117 test_task_runner_ =
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 443
448 TestObject::destructor_count_ = 0; 444 TestObject::destructor_count_ = 0;
449 445
450 scoped_refptr<base::SingleThreadTaskRunner> runner = 446 scoped_refptr<base::SingleThreadTaskRunner> runner =
451 manager_->TaskRunnerForQueue(0); 447 manager_->TaskRunnerForQueue(0);
452 448
453 base::TimeDelta delay(base::TimeDelta::FromMilliseconds(10)); 449 base::TimeDelta delay(base::TimeDelta::FromMilliseconds(10));
454 runner->PostDelayedTask( 450 runner->PostDelayedTask(
455 FROM_HERE, base::Bind(&TestObject::Run, base::Owned(new TestObject())), 451 FROM_HERE, base::Bind(&TestObject::Run, base::Owned(new TestObject())),
456 delay); 452 delay);
457 runner->PostTask( 453 runner->PostTask(FROM_HERE,
458 FROM_HERE, base::Bind(&TestObject::Run, base::Owned(new TestObject()))); 454 base::Bind(&TestObject::Run, base::Owned(new TestObject())));
459 455
460 manager_.reset(); 456 manager_.reset();
461 457
462 EXPECT_EQ(2, TestObject::destructor_count_); 458 EXPECT_EQ(2, TestObject::destructor_count_);
463 } 459 }
464 460
465 TEST_F(TaskQueueManagerTest, ManualPumping) { 461 TEST_F(TaskQueueManagerTest, ManualPumping) {
466 Initialize(1u, SelectorType::Automatic); 462 Initialize(1u, SelectorType::Automatic);
467 manager_->SetPumpPolicy(0, TaskQueueManager::PumpPolicy::MANUAL); 463 manager_->SetPumpPolicy(0, TaskQueueManager::PumpPolicy::MANUAL);
468 464
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 1092
1097 TEST_F(TaskQueueManagerTest, GetAndClearTaskWasRunBitmap_ManyQueues) { 1093 TEST_F(TaskQueueManagerTest, GetAndClearTaskWasRunBitmap_ManyQueues) {
1098 Initialize(64u, SelectorType::Automatic); 1094 Initialize(64u, SelectorType::Automatic);
1099 1095
1100 manager_->TaskRunnerForQueue(63)->PostTask(FROM_HERE, base::Bind(&NopTask)); 1096 manager_->TaskRunnerForQueue(63)->PostTask(FROM_HERE, base::Bind(&NopTask));
1101 test_task_runner_->RunUntilIdle(); 1097 test_task_runner_->RunUntilIdle();
1102 EXPECT_EQ(1ull << 63, manager_->GetAndClearTaskWasRunOnQueueBitmap()); 1098 EXPECT_EQ(1ull << 63, manager_->GetAndClearTaskWasRunOnQueueBitmap());
1103 } 1099 }
1104 1100
1105 } // namespace 1101 } // namespace
1106 } // namespace content 1102 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/child/task_queue_manager_perftest.cc ('k') | components/scheduler/child/task_queue_selector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698