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

Unified Diff: base/task_scheduler/delayed_task_manager_unittest.cc

Issue 2686593003: DESIGN DISCUSSION ONLY Task Scheduler Single Thread Task Runner Manager for Dedicated Threads per S… (Closed)
Patch Set: Wait for Detached Thread to Complete Created 3 years, 10 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
Index: base/task_scheduler/delayed_task_manager_unittest.cc
diff --git a/base/task_scheduler/delayed_task_manager_unittest.cc b/base/task_scheduler/delayed_task_manager_unittest.cc
index f964cda5a67ab720ab8c8f475f575aa227f466e4..f1c0a75349ef7712deb941dc72d479b42ba4e094 100644
--- a/base/task_scheduler/delayed_task_manager_unittest.cc
+++ b/base/task_scheduler/delayed_task_manager_unittest.cc
@@ -71,6 +71,17 @@ class MockSchedulerWorkerPool : public SchedulerWorkerPool {
const SchedulerWorker* worker));
};
+// Posts |task|. The task will be forwarded to |worker_pool| with |sequence|
+// and |worker| when it becomes ripe for execution. |worker| is a
+// SchedulerWorker owned by |worker_pool| or nullptr.
+void PostTaskToWorkerPool(scoped_refptr<Sequence> sequence,
+ SchedulerWorker* worker,
+ SchedulerWorkerPool* worker_pool,
+ std::unique_ptr<Task> task) {
+ worker_pool->PostTaskWithSequenceNow(std::move(task), std::move(sequence),
+ worker);
+}
+
} // namespace
// Verify that a delayed task isn't forwarded to its SchedulerWorkerPool before
@@ -86,7 +97,9 @@ TEST(TaskSchedulerDelayedTaskManagerTest, DelayedTaskDoesNotRunTooEarly) {
testing::StrictMock<MockSchedulerWorkerPool> worker_pool;
// Send |task| to the DelayedTaskManager.
- manager.AddDelayedTask(std::move(task), sequence, nullptr, &worker_pool);
+ manager.AddDelayedTask(
+ std::move(task),
+ Bind(&PostTaskToWorkerPool, sequence, nullptr, Unretained(&worker_pool)));
// Run tasks that are ripe for execution. Don't expect any call to the mock
// method of |worker_pool|.
@@ -107,7 +120,9 @@ TEST(TaskSchedulerDelayedTaskManagerTest, DelayedTaskRunsAfterDelay) {
testing::StrictMock<MockSchedulerWorkerPool> worker_pool;
// Send |task| to the DelayedTaskManager.
- manager.AddDelayedTask(std::move(task), sequence, nullptr, &worker_pool);
+ manager.AddDelayedTask(
+ std::move(task),
+ Bind(&PostTaskToWorkerPool, sequence, nullptr, Unretained(&worker_pool)));
// Fast-forward time. Expect a call to the mock method of |worker_pool|.
EXPECT_CALL(worker_pool,
@@ -138,9 +153,15 @@ TEST(TaskSchedulerDelayedTaskManagerTest, DelayedTasksRunAfterDelay) {
const Task* task_c_raw = task_c.get();
// Send tasks to the DelayedTaskManager.
- manager.AddDelayedTask(std::move(task_a), sequence, nullptr, &worker_pool);
- manager.AddDelayedTask(std::move(task_b), sequence, nullptr, &worker_pool);
- manager.AddDelayedTask(std::move(task_c), sequence, nullptr, &worker_pool);
+ manager.AddDelayedTask(
+ std::move(task_a),
+ Bind(&PostTaskToWorkerPool, sequence, nullptr, Unretained(&worker_pool)));
+ manager.AddDelayedTask(
+ std::move(task_b),
+ Bind(&PostTaskToWorkerPool, sequence, nullptr, Unretained(&worker_pool)));
+ manager.AddDelayedTask(
+ std::move(task_c),
+ Bind(&PostTaskToWorkerPool, sequence, nullptr, Unretained(&worker_pool)));
// Run tasks that are ripe for execution on the service thread. Don't expect
// any call to the mock method of |worker_pool|.

Powered by Google App Engine
This is Rietveld 408576698