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

Side by Side Diff: components/scheduler/base/task_queue_selector_unittest.cc

Issue 1432263002: (reland) Adds TimeDomains to the TaskQueueManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix thread_hop_task DCHECK Created 5 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/base/task_queue_selector.h" 5 #include "components/scheduler/base/task_queue_selector.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/pending_task.h" 9 #include "base/pending_task.h"
10 #include "components/scheduler/base/task_queue_impl.h" 10 #include "components/scheduler/base/task_queue_impl.h"
11 #include "components/scheduler/base/task_queue_sets.h" 11 #include "components/scheduler/base/task_queue_sets.h"
12 #include "components/scheduler/base/virtual_time_domain.h"
12 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 using testing::_; 16 using testing::_;
16 17
17 namespace scheduler { 18 namespace scheduler {
18 namespace internal { 19 namespace internal {
19 20
20 class MockObserver : public TaskQueueSelector::Observer { 21 class MockObserver : public TaskQueueSelector::Observer {
21 public: 22 public:
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 chosen_queue->PopTaskFromWorkQueueForTest(); 68 chosen_queue->PopTaskFromWorkQueueForTest();
68 selector_.GetTaskQueueSets()->OnPopQueue(chosen_queue); 69 selector_.GetTaskQueueSets()->OnPopQueue(chosen_queue);
69 } 70 }
70 return order; 71 return order;
71 } 72 }
72 73
73 static void TestFunction() {} 74 static void TestFunction() {}
74 75
75 protected: 76 protected:
76 void SetUp() final { 77 void SetUp() final {
78 virtual_time_domain_ = make_scoped_refptr<VirtualTimeDomain>(
79 new VirtualTimeDomain(base::TimeTicks()));
77 for (size_t i = 0; i < kTaskQueueCount; i++) { 80 for (size_t i = 0; i < kTaskQueueCount; i++) {
78 scoped_refptr<TaskQueueImpl> task_queue = 81 scoped_refptr<TaskQueueImpl> task_queue = make_scoped_refptr(
79 make_scoped_refptr(new TaskQueueImpl( 82 new TaskQueueImpl(nullptr, virtual_time_domain_,
80 nullptr, TaskQueue::Spec("test queue"), "test", "test")); 83 TaskQueue::Spec("test queue"), "test", "test"));
81 selector_.AddQueue(task_queue.get()); 84 selector_.AddQueue(task_queue.get());
82 task_queues_.push_back(task_queue); 85 task_queues_.push_back(task_queue);
83 } 86 }
84 for (size_t i = 0; i < kTaskQueueCount; i++) { 87 for (size_t i = 0; i < kTaskQueueCount; i++) {
85 EXPECT_TRUE(selector_.IsQueueEnabled(task_queues_[i].get())) << i; 88 EXPECT_TRUE(selector_.IsQueueEnabled(task_queues_[i].get())) << i;
86 queue_to_index_map_.insert(std::make_pair(task_queues_[i].get(), i)); 89 queue_to_index_map_.insert(std::make_pair(task_queues_[i].get(), i));
87 } 90 }
88 } 91 }
89 92
90 const size_t kTaskQueueCount = 5; 93 const size_t kTaskQueueCount = 5;
91 base::Closure test_closure_; 94 base::Closure test_closure_;
92 TaskQueueSelector selector_; 95 TaskQueueSelector selector_;
96 scoped_refptr<VirtualTimeDomain> virtual_time_domain_;
93 std::vector<scoped_refptr<TaskQueueImpl>> task_queues_; 97 std::vector<scoped_refptr<TaskQueueImpl>> task_queues_;
94 std::map<TaskQueueImpl*, size_t> queue_to_index_map_; 98 std::map<TaskQueueImpl*, size_t> queue_to_index_map_;
95 }; 99 };
96 100
97 TEST_F(TaskQueueSelectorTest, TestDefaultPriority) { 101 TEST_F(TaskQueueSelectorTest, TestDefaultPriority) {
98 std::vector<TaskQueueImpl::Task> tasks = GetTasks(5); 102 std::vector<TaskQueueImpl::Task> tasks = GetTasks(5);
99 size_t queue_order[] = {4, 3, 2, 1, 0}; 103 size_t queue_order[] = {4, 3, 2, 1, 0};
100 PushTasks(tasks, queue_order); 104 PushTasks(tasks, queue_order);
101 EXPECT_THAT(PopTasks(), testing::ElementsAre(4, 3, 2, 1, 0)); 105 EXPECT_THAT(PopTasks(), testing::ElementsAre(4, 3, 2, 1, 0));
102 } 106 }
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 size_t queue_order[] = {0, 1}; 278 size_t queue_order[] = {0, 1};
275 PushTasks(tasks, queue_order); 279 PushTasks(tasks, queue_order);
276 280
277 EXPECT_FALSE(selector_.EnabledWorkQueuesEmpty()); 281 EXPECT_FALSE(selector_.EnabledWorkQueuesEmpty());
278 PopTasks(); 282 PopTasks();
279 EXPECT_TRUE(selector_.EnabledWorkQueuesEmpty()); 283 EXPECT_TRUE(selector_.EnabledWorkQueuesEmpty());
280 } 284 }
281 285
282 } // namespace internal 286 } // namespace internal
283 } // namespace scheduler 287 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/base/task_queue_manager_unittest.cc ('k') | components/scheduler/base/task_queue_sets_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698