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

Unified Diff: base/task_scheduler/scheduler_worker_unittest.cc

Issue 2362253002: TaskScheduler: Add FlushForTesting(). (Closed)
Patch Set: fix build error Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | base/task_scheduler/task_scheduler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task_scheduler/scheduler_worker_unittest.cc
diff --git a/base/task_scheduler/scheduler_worker_unittest.cc b/base/task_scheduler/scheduler_worker_unittest.cc
index 631fa7801102a6e3897896779cca9feed861f93d..47a35cbecac7d672156b7dcd555fabb24ca475e1 100644
--- a/base/task_scheduler/scheduler_worker_unittest.cc
+++ b/base/task_scheduler/scheduler_worker_unittest.cc
@@ -352,11 +352,14 @@ namespace {
class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate {
public:
- ControllableDetachDelegate()
- : work_processed_(WaitableEvent::ResetPolicy::MANUAL,
+ ControllableDetachDelegate(TaskTracker* task_tracker)
+ : task_tracker_(task_tracker),
+ work_processed_(WaitableEvent::ResetPolicy::MANUAL,
WaitableEvent::InitialState::NOT_SIGNALED),
detach_requested_(WaitableEvent::ResetPolicy::MANUAL,
- WaitableEvent::InitialState::NOT_SIGNALED) {}
+ WaitableEvent::InitialState::NOT_SIGNALED) {
+ EXPECT_TRUE(task_tracker_);
+ }
~ControllableDetachDelegate() override = default;
@@ -376,6 +379,7 @@ class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate {
std::unique_ptr<Task> task(new Task(
FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&work_processed_)),
TaskTraits(), TimeDelta()));
+ EXPECT_TRUE(task_tracker_->WillPostTask(task.get()));
sequence->PushTask(std::move(task));
return sequence;
}
@@ -404,6 +408,7 @@ class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate {
void set_can_detach(bool can_detach) { can_detach_ = can_detach; }
private:
+ TaskTracker* const task_tracker_;
bool work_requested_ = false;
bool can_detach_ = false;
WaitableEvent work_processed_;
@@ -418,7 +423,7 @@ TEST(TaskSchedulerWorkerTest, WorkerDetaches) {
TaskTracker task_tracker;
// Will be owned by SchedulerWorker.
ControllableDetachDelegate* delegate =
- new StrictMock<ControllableDetachDelegate>;
+ new StrictMock<ControllableDetachDelegate>(&task_tracker);
delegate->set_can_detach(true);
EXPECT_CALL(*delegate, OnMainEntry(_, TimeDelta::Max()));
std::unique_ptr<SchedulerWorker> worker =
@@ -438,7 +443,7 @@ TEST(TaskSchedulerWorkerTest, WorkerDetachesAndWakes) {
TaskTracker task_tracker;
// Will be owned by SchedulerWorker.
ControllableDetachDelegate* delegate =
- new StrictMock<ControllableDetachDelegate>;
+ new StrictMock<ControllableDetachDelegate>(&task_tracker);
delegate->set_can_detach(true);
EXPECT_CALL(*delegate, OnMainEntry(_, TimeDelta::Max()));
std::unique_ptr<SchedulerWorker> worker =
@@ -471,7 +476,7 @@ TEST(TaskSchedulerWorkerTest, CreateDetached) {
TaskTracker task_tracker;
// Will be owned by SchedulerWorker.
ControllableDetachDelegate* delegate =
- new StrictMock<ControllableDetachDelegate>;
+ new StrictMock<ControllableDetachDelegate>(&task_tracker);
std::unique_ptr<SchedulerWorker> worker =
SchedulerWorker::Create(
ThreadPriority::NORMAL, WrapUnique(delegate), &task_tracker,
« no previous file with comments | « no previous file | base/task_scheduler/task_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698