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

Side by Side Diff: base/task_scheduler/delayed_task_manager_unittest.cc

Issue 2831883003: Do not inherit TaskPriority in TaskTraits. (Closed)
Patch Set: self-review Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/task_scheduler/delayed_task_manager.h" 5 #include "base/task_scheduler/delayed_task_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/task_scheduler/task.h" 13 #include "base/task_scheduler/task.h"
14 #include "base/task_scheduler/test_utils.h"
14 #include "base/test/test_mock_time_task_runner.h" 15 #include "base/test/test_mock_time_task_runner.h"
15 #include "base/time/time.h" 16 #include "base/time/time.h"
16 #include "testing/gmock/include/gmock/gmock.h" 17 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace base { 20 namespace base {
20 namespace internal { 21 namespace internal {
21 namespace { 22 namespace {
22 23
23 constexpr TimeDelta kLongDelay = TimeDelta::FromHours(1); 24 constexpr TimeDelta kLongDelay = TimeDelta::FromHours(1);
(...skipping 17 matching lines...) Expand all
41 42
42 class TaskSchedulerDelayedTaskManagerTest : public testing::Test { 43 class TaskSchedulerDelayedTaskManagerTest : public testing::Test {
43 public: 44 public:
44 TaskSchedulerDelayedTaskManagerTest() 45 TaskSchedulerDelayedTaskManagerTest()
45 : delayed_task_manager_(service_thread_task_runner_->GetMockTickClock()) { 46 : delayed_task_manager_(service_thread_task_runner_->GetMockTickClock()) {
46 } 47 }
47 ~TaskSchedulerDelayedTaskManagerTest() override = default; 48 ~TaskSchedulerDelayedTaskManagerTest() override = default;
48 49
49 protected: 50 protected:
50 std::unique_ptr<Task> CreateTask(TimeDelta delay) { 51 std::unique_ptr<Task> CreateTask(TimeDelta delay) {
51 auto task = 52 auto task = MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing),
52 MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing), TaskTraits(), delay); 53 test::CreateTaskTraits(), delay);
53 54
54 // The constructor of Task computes |delayed_run_time| by adding |delay| to 55 // The constructor of Task computes |delayed_run_time| by adding |delay| to
55 // the real time. Recompute it by adding |delay| to the mock time. 56 // the real time. Recompute it by adding |delay| to the mock time.
56 task->delayed_run_time = 57 task->delayed_run_time =
57 service_thread_task_runner_->GetMockTickClock()->NowTicks() + delay; 58 service_thread_task_runner_->GetMockTickClock()->NowTicks() + delay;
58 59
59 return task; 60 return task;
60 } 61 }
61 62
62 testing::StrictMock<MockTaskTarget> task_target_; 63 testing::StrictMock<MockTaskTarget> task_target_;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 159
159 // Fast-forward time. Expect the task is forwarded to |task_target_|. 160 // Fast-forward time. Expect the task is forwarded to |task_target_|.
160 EXPECT_CALL(task_target_, DoPostTaskNowCallback(task_raw_)); 161 EXPECT_CALL(task_target_, DoPostTaskNowCallback(task_raw_));
161 service_thread_task_runner_->FastForwardBy(kLongDelay); 162 service_thread_task_runner_->FastForwardBy(kLongDelay);
162 } 163 }
163 164
164 // Verify that multiple delayed tasks added after Start() are forwarded when 165 // Verify that multiple delayed tasks added after Start() are forwarded when
165 // they are ripe for execution. 166 // they are ripe for execution.
166 TEST_F(TaskSchedulerDelayedTaskManagerTest, DelayedTasksRunAfterDelay) { 167 TEST_F(TaskSchedulerDelayedTaskManagerTest, DelayedTasksRunAfterDelay) {
167 delayed_task_manager_.Start(service_thread_task_runner_); 168 delayed_task_manager_.Start(service_thread_task_runner_);
168 auto task_a = MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing), TaskTraits(), 169 auto task_a =
169 TimeDelta::FromHours(1)); 170 MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing),
171 test::CreateTaskTraits(), TimeDelta::FromHours(1));
170 const Task* task_a_raw = task_a.get(); 172 const Task* task_a_raw = task_a.get();
171 173
172 auto task_b = MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing), TaskTraits(), 174 auto task_b =
173 TimeDelta::FromHours(2)); 175 MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing),
176 test::CreateTaskTraits(), TimeDelta::FromHours(2));
174 const Task* task_b_raw = task_b.get(); 177 const Task* task_b_raw = task_b.get();
175 178
176 auto task_c = MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing), TaskTraits(), 179 auto task_c =
177 TimeDelta::FromHours(1)); 180 MakeUnique<Task>(FROM_HERE, BindOnce(&DoNothing),
181 test::CreateTaskTraits(), TimeDelta::FromHours(1));
178 const Task* task_c_raw = task_c.get(); 182 const Task* task_c_raw = task_c.get();
179 183
180 // Send tasks to the DelayedTaskManager. 184 // Send tasks to the DelayedTaskManager.
181 delayed_task_manager_.AddDelayedTask( 185 delayed_task_manager_.AddDelayedTask(
182 std::move(task_a), BindOnce(&MockTaskTarget::PostTaskNowCallback, 186 std::move(task_a), BindOnce(&MockTaskTarget::PostTaskNowCallback,
183 Unretained(&task_target_))); 187 Unretained(&task_target_)));
184 delayed_task_manager_.AddDelayedTask( 188 delayed_task_manager_.AddDelayedTask(
185 std::move(task_b), BindOnce(&MockTaskTarget::PostTaskNowCallback, 189 std::move(task_b), BindOnce(&MockTaskTarget::PostTaskNowCallback,
186 Unretained(&task_target_))); 190 Unretained(&task_target_)));
187 delayed_task_manager_.AddDelayedTask( 191 delayed_task_manager_.AddDelayedTask(
(...skipping 12 matching lines...) Expand all
200 testing::Mock::VerifyAndClear(&task_target_); 204 testing::Mock::VerifyAndClear(&task_target_);
201 205
202 // Fast-forward time. Expect |task_b_raw| to be forwarded to |task_target_|. 206 // Fast-forward time. Expect |task_b_raw| to be forwarded to |task_target_|.
203 EXPECT_CALL(task_target_, DoPostTaskNowCallback(task_b_raw)); 207 EXPECT_CALL(task_target_, DoPostTaskNowCallback(task_b_raw));
204 service_thread_task_runner_->FastForwardBy(TimeDelta::FromHours(1)); 208 service_thread_task_runner_->FastForwardBy(TimeDelta::FromHours(1));
205 testing::Mock::VerifyAndClear(&task_target_); 209 testing::Mock::VerifyAndClear(&task_target_);
206 } 210 }
207 211
208 } // namespace internal 212 } // namespace internal
209 } // namespace base 213 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698