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

Unified Diff: base/task_scheduler/scheduler_worker_pool_impl_unittest.cc

Issue 2480203002: ui: Cleanup class/struct forward declarations (Closed)
Patch Set: Sync CL to position 430550 Created 4 years, 1 month 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 | « base/task_scheduler/scheduler_worker_pool_impl.cc ('k') | blimp/client/core/compositor/blimp_compositor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
diff --git a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
index 1858ac5cdbd972cd80e88adb6bf1de8631c4c3e4..3b9393e19abcd7e5d484da54dd9d7f826cf86f93 100644
--- a/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
+++ b/base/task_scheduler/scheduler_worker_pool_impl_unittest.cc
@@ -341,7 +341,10 @@ TEST_P(TaskSchedulerWorkerPoolImplTest, PostDelayedTask) {
}
// Verify that the RunsTasksOnCurrentThread() method of a SEQUENCED TaskRunner
-// returns false when called from a task that isn't part of the sequence.
+// returns false when called from a task that isn't part of the sequence. Note:
+// Tests that use TestTaskFactory already verify that RunsTasksOnCurrentThread()
+// returns true when appropriate so this method complements it to get full
+// coverage of that method.
TEST_P(TaskSchedulerWorkerPoolImplTest, SequencedRunsTasksOnCurrentThread) {
scoped_refptr<TaskRunner> task_runner(
CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam()));
@@ -356,8 +359,6 @@ TEST_P(TaskSchedulerWorkerPoolImplTest, SequencedRunsTasksOnCurrentThread) {
[](scoped_refptr<TaskRunner> sequenced_task_runner,
WaitableEvent* task_ran) {
EXPECT_FALSE(sequenced_task_runner->RunsTasksOnCurrentThread());
- // Tests that use TestTaskFactory already verify that
- // RunsTasksOnCurrentThread() returns true when appropriate.
task_ran->Signal();
},
sequenced_task_runner, Unretained(&task_ran)));
@@ -377,6 +378,65 @@ INSTANTIATE_TEST_CASE_P(
namespace {
+// Same as TaskSchedulerWorkerPoolImplTest but its SchedulerWorkerPoolImpl
+// instance uses |max_threads == 1|.
+class TaskSchedulerWorkerPoolImplSingleWorkerTest
+ : public TaskSchedulerWorkerPoolImplTest {
+ public:
+ TaskSchedulerWorkerPoolImplSingleWorkerTest() = default;
+
+ protected:
+ void SetUp() override {
+ InitializeWorkerPool(TimeDelta::Max(), 1);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TaskSchedulerWorkerPoolImplSingleWorkerTest);
+};
+
+} // namespace
+
+// Verify that the RunsTasksOnCurrentThread() method of a
+// SchedulerSingleThreadTaskRunner returns false when called from a task that
+// isn't part of its sequence even though it's running on that
+// SchedulerSingleThreadTaskRunner's assigned worker. Note: Tests that use
+// TestTaskFactory already verify that RunsTasksOnCurrentThread() returns true
+// when appropriate so this method complements it to get full coverage of that
+// method.
+TEST_P(TaskSchedulerWorkerPoolImplSingleWorkerTest,
+ SingleThreadRunsTasksOnCurrentThread) {
+ scoped_refptr<TaskRunner> task_runner(
+ CreateTaskRunnerWithExecutionMode(worker_pool_.get(), GetParam()));
+ scoped_refptr<SingleThreadTaskRunner> single_thread_task_runner(
+ worker_pool_->CreateSingleThreadTaskRunnerWithTraits(TaskTraits()));
+
+ WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL,
+ WaitableEvent::InitialState::NOT_SIGNALED);
+ task_runner->PostTask(
+ FROM_HERE,
+ Bind(
+ [](scoped_refptr<TaskRunner> single_thread_task_runner,
+ WaitableEvent* task_ran) {
+ EXPECT_FALSE(single_thread_task_runner->RunsTasksOnCurrentThread());
+ task_ran->Signal();
+ },
+ single_thread_task_runner, Unretained(&task_ran)));
+ task_ran.Wait();
+}
+
+INSTANTIATE_TEST_CASE_P(Parallel,
+ TaskSchedulerWorkerPoolImplSingleWorkerTest,
+ ::testing::Values(test::ExecutionMode::PARALLEL));
+INSTANTIATE_TEST_CASE_P(Sequenced,
+ TaskSchedulerWorkerPoolImplSingleWorkerTest,
+ ::testing::Values(test::ExecutionMode::SEQUENCED));
+INSTANTIATE_TEST_CASE_P(
+ SingleThreaded,
+ TaskSchedulerWorkerPoolImplSingleWorkerTest,
+ ::testing::Values(test::ExecutionMode::SINGLE_THREADED));
+
+namespace {
+
void NotReachedReEnqueueSequenceCallback(scoped_refptr<Sequence> sequence) {
ADD_FAILURE()
<< "Unexpected invocation of NotReachedReEnqueueSequenceCallback.";
« no previous file with comments | « base/task_scheduler/scheduler_worker_pool_impl.cc ('k') | blimp/client/core/compositor/blimp_compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698