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

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

Issue 2044023003: Virtualize The Existence of a Scheduler Worker Thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@detach
Patch Set: Apply Renames Created 4 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 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/scheduler_worker_stack.h" 5 #include "base/task_scheduler/scheduler_worker_stack.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/task_scheduler/scheduler_worker.h" 10 #include "base/task_scheduler/scheduler_worker.h"
(...skipping 14 matching lines...) Expand all
25 void OnMainEntry(SchedulerWorker* worker) override {} 25 void OnMainEntry(SchedulerWorker* worker) override {}
26 scoped_refptr<Sequence> GetWork(SchedulerWorker* worker) override { 26 scoped_refptr<Sequence> GetWork(SchedulerWorker* worker) override {
27 return nullptr; 27 return nullptr;
28 } 28 }
29 void ReEnqueueSequence(scoped_refptr<Sequence> sequence) override { 29 void ReEnqueueSequence(scoped_refptr<Sequence> sequence) override {
30 ADD_FAILURE() << "This delegate not expect to have sequences to reenqueue."; 30 ADD_FAILURE() << "This delegate not expect to have sequences to reenqueue.";
31 } 31 }
32 TimeDelta GetSleepTimeout() override { 32 TimeDelta GetSleepTimeout() override {
33 return TimeDelta::Max(); 33 return TimeDelta::Max();
34 } 34 }
35 bool CanDetach(SchedulerWorker* worker) override {
36 return false;
37 }
35 }; 38 };
36 39
37 class TaskSchedulerWorkerStackTest : public testing::Test { 40 class TaskSchedulerWorkerStackTest : public testing::Test {
38 protected: 41 protected:
39 void SetUp() override { 42 void SetUp() override {
40 worker_a_ = SchedulerWorker::Create( 43 worker_a_ = SchedulerWorker::Create(
41 ThreadPriority::NORMAL, 44 ThreadPriority::NORMAL,
42 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_); 45 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_,
46 SchedulerWorker::InitialState::ALIVE);
43 ASSERT_TRUE(worker_a_); 47 ASSERT_TRUE(worker_a_);
44 worker_b_ = SchedulerWorker::Create( 48 worker_b_ = SchedulerWorker::Create(
45 ThreadPriority::NORMAL, 49 ThreadPriority::NORMAL,
46 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_); 50 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_,
51 SchedulerWorker::InitialState::ALIVE);
47 ASSERT_TRUE(worker_b_); 52 ASSERT_TRUE(worker_b_);
48 worker_c_ = SchedulerWorker::Create( 53 worker_c_ = SchedulerWorker::Create(
49 ThreadPriority::NORMAL, 54 ThreadPriority::NORMAL,
50 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_); 55 WrapUnique(new MockSchedulerWorkerDelegate), &task_tracker_,
56 SchedulerWorker::InitialState::ALIVE);
51 ASSERT_TRUE(worker_c_); 57 ASSERT_TRUE(worker_c_);
52 } 58 }
53 59
54 void TearDown() override { 60 void TearDown() override {
55 worker_a_->JoinForTesting(); 61 worker_a_->JoinForTesting();
56 worker_b_->JoinForTesting(); 62 worker_b_->JoinForTesting();
57 worker_c_->JoinForTesting(); 63 worker_c_->JoinForTesting();
58 } 64 }
59 65
60 std::unique_ptr<SchedulerWorker> worker_a_; 66 std::unique_ptr<SchedulerWorker> worker_a_;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 164
159 // Verify that Push() DCHECKs when a value is inserted twice. 165 // Verify that Push() DCHECKs when a value is inserted twice.
160 TEST_F(TaskSchedulerWorkerStackTest, PushTwice) { 166 TEST_F(TaskSchedulerWorkerStackTest, PushTwice) {
161 SchedulerWorkerStack stack; 167 SchedulerWorkerStack stack;
162 stack.Push(worker_a_.get()); 168 stack.Push(worker_a_.get());
163 EXPECT_DCHECK_DEATH({ stack.Push(worker_a_.get()); }, ""); 169 EXPECT_DCHECK_DEATH({ stack.Push(worker_a_.get()); }, "");
164 } 170 }
165 171
166 } // namespace internal 172 } // namespace internal
167 } // namespace base 173 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698