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

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

Issue 2710853002: Synchronize Test Code Based off of Comments from https://codereview.chromium.org/2698843006/ (Closed)
Patch Set: 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_pool_impl.h" 5 #include "base/task_scheduler/scheduler_worker_pool_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 const scoped_refptr<TaskRunner> task_runner_; 174 const scoped_refptr<TaskRunner> task_runner_;
175 const WaitBeforePostTask wait_before_post_task_; 175 const WaitBeforePostTask wait_before_post_task_;
176 const PostNestedTask post_nested_task_; 176 const PostNestedTask post_nested_task_;
177 test::TestTaskFactory factory_; 177 test::TestTaskFactory factory_;
178 178
179 DISALLOW_COPY_AND_ASSIGN(ThreadPostingTasks); 179 DISALLOW_COPY_AND_ASSIGN(ThreadPostingTasks);
180 }; 180 };
181 181
182 using WaitBeforePostTask = ThreadPostingTasks::WaitBeforePostTask; 182 using WaitBeforePostTask = ThreadPostingTasks::WaitBeforePostTask;
183 183
184 void ShouldNotRunCallback() { 184 void ShouldNotRun() {
185 ADD_FAILURE() << "Ran a task that shouldn't run."; 185 ADD_FAILURE() << "Ran a task that shouldn't run.";
186 } 186 }
187 187
188 } // namespace 188 } // namespace
189 189
190 TEST_P(TaskSchedulerWorkerPoolImplTest, PostTasks) { 190 TEST_P(TaskSchedulerWorkerPoolImplTest, PostTasks) {
191 // Create threads to post tasks. 191 // Create threads to post tasks.
192 std::vector<std::unique_ptr<ThreadPostingTasks>> threads_posting_tasks; 192 std::vector<std::unique_ptr<ThreadPostingTasks>> threads_posting_tasks;
193 for (size_t i = 0; i < kNumThreadsPostingTasks; ++i) { 193 for (size_t i = 0; i < kNumThreadsPostingTasks; ++i) {
194 threads_posting_tasks.push_back(MakeUnique<ThreadPostingTasks>( 194 threads_posting_tasks.push_back(MakeUnique<ThreadPostingTasks>(
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 // Wait until all workers are idle to be sure that no task accesses 309 // Wait until all workers are idle to be sure that no task accesses
310 // its TestTaskFactory after it is destroyed. 310 // its TestTaskFactory after it is destroyed.
311 worker_pool_->WaitForAllWorkersIdleForTesting(); 311 worker_pool_->WaitForAllWorkersIdleForTesting();
312 } 312 }
313 313
314 // Verify that a Task can't be posted after shutdown. 314 // Verify that a Task can't be posted after shutdown.
315 TEST_P(TaskSchedulerWorkerPoolImplTest, PostTaskAfterShutdown) { 315 TEST_P(TaskSchedulerWorkerPoolImplTest, PostTaskAfterShutdown) {
316 auto task_runner = 316 auto task_runner =
317 CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam()); 317 CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam());
318 task_tracker_.Shutdown(); 318 task_tracker_.Shutdown();
319 EXPECT_FALSE(task_runner->PostTask(FROM_HERE, Bind(&ShouldNotRunCallback))); 319 EXPECT_FALSE(task_runner->PostTask(FROM_HERE, Bind(&ShouldNotRun)));
320 } 320 }
321 321
322 // Verify that a Task runs shortly after its delay expires. 322 // Verify that a Task runs shortly after its delay expires.
323 TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) { 323 TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) {
324 TimeTicks start_time = TimeTicks::Now(); 324 TimeTicks start_time = TimeTicks::Now();
325 325
326 // Post a task with a short delay. 326 // Post a task with a short delay.
327 WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL, 327 WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL,
328 WaitableEvent::InitialState::NOT_SIGNALED); 328 WaitableEvent::InitialState::NOT_SIGNALED);
329 EXPECT_TRUE(CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam()) 329 EXPECT_TRUE(CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam())
(...skipping 11 matching lines...) Expand all
341 EXPECT_LT(actual_delay, 341 EXPECT_LT(actual_delay,
342 TimeDelta::FromMilliseconds(250) + TestTimeouts::tiny_timeout()); 342 TimeDelta::FromMilliseconds(250) + TestTimeouts::tiny_timeout());
343 } 343 }
344 344
345 // Verify that the RunsTasksOnCurrentThread() method of a SEQUENCED TaskRunner 345 // Verify that the RunsTasksOnCurrentThread() method of a SEQUENCED TaskRunner
346 // returns false when called from a task that isn't part of the sequence. Note: 346 // returns false when called from a task that isn't part of the sequence. Note:
347 // Tests that use TestTaskFactory already verify that RunsTasksOnCurrentThread() 347 // Tests that use TestTaskFactory already verify that RunsTasksOnCurrentThread()
348 // returns true when appropriate so this method complements it to get full 348 // returns true when appropriate so this method complements it to get full
349 // coverage of that method. 349 // coverage of that method.
350 TEST_P(TaskSchedulerWorkerPoolImplTest, SequencedRunsTasksOnCurrentThread) { 350 TEST_P(TaskSchedulerWorkerPoolImplTest, SequencedRunsTasksOnCurrentThread) {
351 scoped_refptr<TaskRunner> task_runner( 351 auto task_runner =
352 CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam())); 352 CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam());
353 scoped_refptr<SequencedTaskRunner> sequenced_task_runner( 353 auto sequenced_task_runner =
354 worker_pool_->CreateSequencedTaskRunnerWithTraits(TaskTraits())); 354 worker_pool_->CreateSequencedTaskRunnerWithTraits(TaskTraits());
355 355
356 WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL, 356 WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL,
357 WaitableEvent::InitialState::NOT_SIGNALED); 357 WaitableEvent::InitialState::NOT_SIGNALED);
358 task_runner->PostTask( 358 task_runner->PostTask(
359 FROM_HERE, 359 FROM_HERE,
360 Bind( 360 Bind(
361 [](scoped_refptr<TaskRunner> sequenced_task_runner, 361 [](scoped_refptr<TaskRunner> sequenced_task_runner,
362 WaitableEvent* task_ran) { 362 WaitableEvent* task_ran) {
363 EXPECT_FALSE(sequenced_task_runner->RunsTasksOnCurrentThread()); 363 EXPECT_FALSE(sequenced_task_runner->RunsTasksOnCurrentThread());
364 task_ran->Signal(); 364 task_ran->Signal();
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 StandbyThreadPolicy::ONE, 8U, TimeDelta::Max()), 797 StandbyThreadPolicy::ONE, 8U, TimeDelta::Max()),
798 Bind(&NotReachedReEnqueueSequenceCallback), &task_tracker, 798 Bind(&NotReachedReEnqueueSequenceCallback), &task_tracker,
799 &delayed_task_manager); 799 &delayed_task_manager);
800 ASSERT_TRUE(worker_pool); 800 ASSERT_TRUE(worker_pool);
801 EXPECT_EQ(1U, worker_pool->NumberOfAliveWorkersForTesting()); 801 EXPECT_EQ(1U, worker_pool->NumberOfAliveWorkersForTesting());
802 worker_pool->JoinForTesting(); 802 worker_pool->JoinForTesting();
803 } 803 }
804 804
805 } // namespace internal 805 } // namespace internal
806 } // namespace base 806 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698