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

Side by Side Diff: components/scheduler/base/task_queue_manager_unittest.cc

Issue 2132593002: Remove remaining calls to deprecated MessageLoop methods on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: h264_vt_encoder_unittest.cc Created 4 years, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/scheduler/base/task_queue_manager.h" 5 #include "components/scheduler/base/task_queue_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 for (size_t i = 0; i < 3; i++) 146 for (size_t i = 0; i < 3; i++)
147 runners_.push_back(manager_->NewTaskQueue(TaskQueue::Spec("test_queue"))); 147 runners_.push_back(manager_->NewTaskQueue(TaskQueue::Spec("test_queue")));
148 148
149 runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask)); 149 runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask));
150 runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask)); 150 runners_[0]->PostTask(FROM_HERE, base::Bind(&NopTask));
151 runners_[1]->PostTask(FROM_HERE, base::Bind(&NopTask)); 151 runners_[1]->PostTask(FROM_HERE, base::Bind(&NopTask));
152 runners_[1]->PostTask(FROM_HERE, base::Bind(&NopTask)); 152 runners_[1]->PostTask(FROM_HERE, base::Bind(&NopTask));
153 runners_[2]->PostTask(FROM_HERE, base::Bind(&NopTask)); 153 runners_[2]->PostTask(FROM_HERE, base::Bind(&NopTask));
154 runners_[2]->PostTask(FROM_HERE, base::Bind(&NopTask)); 154 runners_[2]->PostTask(FROM_HERE, base::Bind(&NopTask));
155 155
156 message_loop_->RunUntilIdle(); 156 base::RunLoop().RunUntilIdle();
157 // We need to call Now for the beginning of the first task, and then the end 157 // We need to call Now for the beginning of the first task, and then the end
158 // of every task after. We reuse the end time of one task for the start time 158 // of every task after. We reuse the end time of one task for the start time
159 // of the next task. In this case, there were 6 tasks, so we expect 7 calls to 159 // of the next task. In this case, there were 6 tasks, so we expect 7 calls to
160 // Now. 160 // Now.
161 EXPECT_EQ(7, test_count_uses_time_source->now_calls_count()); 161 EXPECT_EQ(7, test_count_uses_time_source->now_calls_count());
162 } 162 }
163 163
164 TEST_F(TaskQueueManagerTest, 164 TEST_F(TaskQueueManagerTest,
165 NowNotCalledForNestedTasks) { 165 NowNotCalledForNestedTasks) {
166 message_loop_.reset(new base::MessageLoop()); 166 message_loop_.reset(new base::MessageLoop());
(...skipping 14 matching lines...) Expand all
181 for (int i = 0; i <= 6; ++i) { 181 for (int i = 0; i <= 6; ++i) {
182 tasks_to_post_from_nested_loop.push_back( 182 tasks_to_post_from_nested_loop.push_back(
183 std::make_pair(base::Bind(&NopTask), true)); 183 std::make_pair(base::Bind(&NopTask), true));
184 } 184 }
185 185
186 runners_[0]->PostTask( 186 runners_[0]->PostTask(
187 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(), 187 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(),
188 base::RetainedRef(runners_[0]), 188 base::RetainedRef(runners_[0]),
189 base::Unretained(&tasks_to_post_from_nested_loop))); 189 base::Unretained(&tasks_to_post_from_nested_loop)));
190 190
191 message_loop_->RunUntilIdle(); 191 base::RunLoop().RunUntilIdle();
192 // We need to call Now twice, to measure the start and end of the outermost 192 // We need to call Now twice, to measure the start and end of the outermost
193 // task. We shouldn't call it for any of the nested tasks. 193 // task. We shouldn't call it for any of the nested tasks.
194 EXPECT_EQ(2, test_count_uses_time_source->now_calls_count()); 194 EXPECT_EQ(2, test_count_uses_time_source->now_calls_count());
195 } 195 }
196 196
197 void NullTask() {} 197 void NullTask() {}
198 198
199 void TestTask(EnqueueOrder value, std::vector<EnqueueOrder>* out_result) { 199 void TestTask(EnqueueOrder value, std::vector<EnqueueOrder>* out_result) {
200 out_result->push_back(value); 200 out_result->push_back(value);
201 } 201 }
(...skipping 25 matching lines...) Expand all
227 EXPECT_THAT(run_order, ElementsAre(1, 2, 3, 4, 5, 6)); 227 EXPECT_THAT(run_order, ElementsAre(1, 2, 3, 4, 5, 6));
228 } 228 }
229 229
230 TEST_F(TaskQueueManagerTest, NonNestableTaskPosting) { 230 TEST_F(TaskQueueManagerTest, NonNestableTaskPosting) {
231 InitializeWithRealMessageLoop(1u); 231 InitializeWithRealMessageLoop(1u);
232 232
233 std::vector<EnqueueOrder> run_order; 233 std::vector<EnqueueOrder> run_order;
234 runners_[0]->PostNonNestableTask(FROM_HERE, 234 runners_[0]->PostNonNestableTask(FROM_HERE,
235 base::Bind(&TestTask, 1, &run_order)); 235 base::Bind(&TestTask, 1, &run_order));
236 236
237 message_loop_->RunUntilIdle(); 237 base::RunLoop().RunUntilIdle();
238 EXPECT_THAT(run_order, ElementsAre(1)); 238 EXPECT_THAT(run_order, ElementsAre(1));
239 } 239 }
240 240
241 TEST_F(TaskQueueManagerTest, NonNestableTaskExecutesInExpectedOrder) { 241 TEST_F(TaskQueueManagerTest, NonNestableTaskExecutesInExpectedOrder) {
242 InitializeWithRealMessageLoop(1u); 242 InitializeWithRealMessageLoop(1u);
243 243
244 std::vector<EnqueueOrder> run_order; 244 std::vector<EnqueueOrder> run_order;
245 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 245 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
246 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 246 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
247 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order)); 247 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order));
248 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 4, &run_order)); 248 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 4, &run_order));
249 runners_[0]->PostNonNestableTask(FROM_HERE, 249 runners_[0]->PostNonNestableTask(FROM_HERE,
250 base::Bind(&TestTask, 5, &run_order)); 250 base::Bind(&TestTask, 5, &run_order));
251 251
252 message_loop_->RunUntilIdle(); 252 base::RunLoop().RunUntilIdle();
253 EXPECT_THAT(run_order, ElementsAre(1, 2, 3, 4, 5)); 253 EXPECT_THAT(run_order, ElementsAre(1, 2, 3, 4, 5));
254 } 254 }
255 255
256 TEST_F(TaskQueueManagerTest, NonNestableTaskDoesntExecuteInNestedLoop) { 256 TEST_F(TaskQueueManagerTest, NonNestableTaskDoesntExecuteInNestedLoop) {
257 InitializeWithRealMessageLoop(1u); 257 InitializeWithRealMessageLoop(1u);
258 258
259 std::vector<EnqueueOrder> run_order; 259 std::vector<EnqueueOrder> run_order;
260 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 260 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
261 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 261 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
262 262
263 std::vector<std::pair<base::Closure, bool>> tasks_to_post_from_nested_loop; 263 std::vector<std::pair<base::Closure, bool>> tasks_to_post_from_nested_loop;
264 tasks_to_post_from_nested_loop.push_back( 264 tasks_to_post_from_nested_loop.push_back(
265 std::make_pair(base::Bind(&TestTask, 3, &run_order), false)); 265 std::make_pair(base::Bind(&TestTask, 3, &run_order), false));
266 tasks_to_post_from_nested_loop.push_back( 266 tasks_to_post_from_nested_loop.push_back(
267 std::make_pair(base::Bind(&TestTask, 4, &run_order), true)); 267 std::make_pair(base::Bind(&TestTask, 4, &run_order), true));
268 tasks_to_post_from_nested_loop.push_back( 268 tasks_to_post_from_nested_loop.push_back(
269 std::make_pair(base::Bind(&TestTask, 5, &run_order), true)); 269 std::make_pair(base::Bind(&TestTask, 5, &run_order), true));
270 270
271 runners_[0]->PostTask( 271 runners_[0]->PostTask(
272 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(), 272 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(),
273 base::RetainedRef(runners_[0]), 273 base::RetainedRef(runners_[0]),
274 base::Unretained(&tasks_to_post_from_nested_loop))); 274 base::Unretained(&tasks_to_post_from_nested_loop)));
275 275
276 message_loop_->RunUntilIdle(); 276 base::RunLoop().RunUntilIdle();
277 // Note we expect task 3 to run last because it's non-nestable. 277 // Note we expect task 3 to run last because it's non-nestable.
278 EXPECT_THAT(run_order, ElementsAre(1, 2, 4, 5, 3)); 278 EXPECT_THAT(run_order, ElementsAre(1, 2, 4, 5, 3));
279 } 279 }
280 280
281 TEST_F(TaskQueueManagerTest, QueuePolling) { 281 TEST_F(TaskQueueManagerTest, QueuePolling) {
282 Initialize(1u); 282 Initialize(1u);
283 283
284 std::vector<EnqueueOrder> run_order; 284 std::vector<EnqueueOrder> run_order;
285 EXPECT_FALSE(runners_[0]->HasPendingImmediateWork()); 285 EXPECT_FALSE(runners_[0]->HasPendingImmediateWork());
286 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 286 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 TEST_F(TaskQueueManagerTest, PostFromThread) { 635 TEST_F(TaskQueueManagerTest, PostFromThread) {
636 InitializeWithRealMessageLoop(1u); 636 InitializeWithRealMessageLoop(1u);
637 637
638 std::vector<EnqueueOrder> run_order; 638 std::vector<EnqueueOrder> run_order;
639 base::Thread thread("TestThread"); 639 base::Thread thread("TestThread");
640 thread.Start(); 640 thread.Start();
641 thread.task_runner()->PostTask( 641 thread.task_runner()->PostTask(
642 FROM_HERE, base::Bind(&PostTaskToRunner, runners_[0], &run_order)); 642 FROM_HERE, base::Bind(&PostTaskToRunner, runners_[0], &run_order));
643 thread.Stop(); 643 thread.Stop();
644 644
645 message_loop_->RunUntilIdle(); 645 base::RunLoop().RunUntilIdle();
646 EXPECT_THAT(run_order, ElementsAre(1)); 646 EXPECT_THAT(run_order, ElementsAre(1));
647 } 647 }
648 648
649 void RePostingTestTask(scoped_refptr<base::SingleThreadTaskRunner> runner, 649 void RePostingTestTask(scoped_refptr<base::SingleThreadTaskRunner> runner,
650 int* run_count) { 650 int* run_count) {
651 (*run_count)++; 651 (*run_count)++;
652 runner->PostTask(FROM_HERE, Bind(&RePostingTestTask, 652 runner->PostTask(FROM_HERE, Bind(&RePostingTestTask,
653 base::Unretained(runner.get()), run_count)); 653 base::Unretained(runner.get()), run_count));
654 } 654 }
655 655
(...skipping 19 matching lines...) Expand all
675 tasks_to_post_from_nested_loop.push_back( 675 tasks_to_post_from_nested_loop.push_back(
676 std::make_pair(base::Bind(&TestTask, 1, &run_order), true)); 676 std::make_pair(base::Bind(&TestTask, 1, &run_order), true));
677 677
678 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 0, &run_order)); 678 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 0, &run_order));
679 runners_[0]->PostTask( 679 runners_[0]->PostTask(
680 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(), 680 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(),
681 base::RetainedRef(runners_[0]), 681 base::RetainedRef(runners_[0]),
682 base::Unretained(&tasks_to_post_from_nested_loop))); 682 base::Unretained(&tasks_to_post_from_nested_loop)));
683 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 683 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
684 684
685 message_loop_->RunUntilIdle(); 685 base::RunLoop().RunUntilIdle();
686 686
687 EXPECT_THAT(run_order, ElementsAre(0, 2, 1)); 687 EXPECT_THAT(run_order, ElementsAre(0, 2, 1));
688 } 688 }
689 689
690 TEST_F(TaskQueueManagerTest, WorkBatching) { 690 TEST_F(TaskQueueManagerTest, WorkBatching) {
691 Initialize(1u); 691 Initialize(1u);
692 692
693 manager_->SetWorkBatchSize(2); 693 manager_->SetWorkBatchSize(2);
694 694
695 std::vector<EnqueueOrder> run_order; 695 std::vector<EnqueueOrder> run_order;
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 865
866 manager_->SetWorkBatchSize(2); 866 manager_->SetWorkBatchSize(2);
867 manager_->AddTaskObserver(&observer); 867 manager_->AddTaskObserver(&observer);
868 868
869 std::vector<EnqueueOrder> run_order; 869 std::vector<EnqueueOrder> run_order;
870 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 870 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
871 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 871 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
872 872
873 EXPECT_CALL(observer, WillProcessTask(_)).Times(2); 873 EXPECT_CALL(observer, WillProcessTask(_)).Times(2);
874 EXPECT_CALL(observer, DidProcessTask(_)).Times(2); 874 EXPECT_CALL(observer, DidProcessTask(_)).Times(2);
875 message_loop_->RunUntilIdle(); 875 base::RunLoop().RunUntilIdle();
876 } 876 }
877 877
878 TEST_F(TaskQueueManagerTest, TaskObserverRemoving) { 878 TEST_F(TaskQueueManagerTest, TaskObserverRemoving) {
879 InitializeWithRealMessageLoop(1u); 879 InitializeWithRealMessageLoop(1u);
880 MockTaskObserver observer; 880 MockTaskObserver observer;
881 manager_->SetWorkBatchSize(2); 881 manager_->SetWorkBatchSize(2);
882 manager_->AddTaskObserver(&observer); 882 manager_->AddTaskObserver(&observer);
883 manager_->RemoveTaskObserver(&observer); 883 manager_->RemoveTaskObserver(&observer);
884 884
885 std::vector<EnqueueOrder> run_order; 885 std::vector<EnqueueOrder> run_order;
886 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 886 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
887 887
888 EXPECT_CALL(observer, WillProcessTask(_)).Times(0); 888 EXPECT_CALL(observer, WillProcessTask(_)).Times(0);
889 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 889 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
890 890
891 message_loop_->RunUntilIdle(); 891 base::RunLoop().RunUntilIdle();
892 } 892 }
893 893
894 void RemoveObserverTask(TaskQueueManager* manager, 894 void RemoveObserverTask(TaskQueueManager* manager,
895 base::MessageLoop::TaskObserver* observer) { 895 base::MessageLoop::TaskObserver* observer) {
896 manager->RemoveTaskObserver(observer); 896 manager->RemoveTaskObserver(observer);
897 } 897 }
898 898
899 TEST_F(TaskQueueManagerTest, TaskObserverRemovingInsideTask) { 899 TEST_F(TaskQueueManagerTest, TaskObserverRemovingInsideTask) {
900 InitializeWithRealMessageLoop(1u); 900 InitializeWithRealMessageLoop(1u);
901 MockTaskObserver observer; 901 MockTaskObserver observer;
902 manager_->SetWorkBatchSize(3); 902 manager_->SetWorkBatchSize(3);
903 manager_->AddTaskObserver(&observer); 903 manager_->AddTaskObserver(&observer);
904 904
905 runners_[0]->PostTask( 905 runners_[0]->PostTask(
906 FROM_HERE, base::Bind(&RemoveObserverTask, manager_.get(), &observer)); 906 FROM_HERE, base::Bind(&RemoveObserverTask, manager_.get(), &observer));
907 907
908 EXPECT_CALL(observer, WillProcessTask(_)).Times(1); 908 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
909 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 909 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
910 message_loop_->RunUntilIdle(); 910 base::RunLoop().RunUntilIdle();
911 } 911 }
912 912
913 TEST_F(TaskQueueManagerTest, QueueTaskObserverAdding) { 913 TEST_F(TaskQueueManagerTest, QueueTaskObserverAdding) {
914 InitializeWithRealMessageLoop(2u); 914 InitializeWithRealMessageLoop(2u);
915 MockTaskObserver observer; 915 MockTaskObserver observer;
916 916
917 manager_->SetWorkBatchSize(2); 917 manager_->SetWorkBatchSize(2);
918 runners_[0]->AddTaskObserver(&observer); 918 runners_[0]->AddTaskObserver(&observer);
919 919
920 std::vector<EnqueueOrder> run_order; 920 std::vector<EnqueueOrder> run_order;
921 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 921 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
922 runners_[1]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 922 runners_[1]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
923 923
924 EXPECT_CALL(observer, WillProcessTask(_)).Times(1); 924 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
925 EXPECT_CALL(observer, DidProcessTask(_)).Times(1); 925 EXPECT_CALL(observer, DidProcessTask(_)).Times(1);
926 message_loop_->RunUntilIdle(); 926 base::RunLoop().RunUntilIdle();
927 } 927 }
928 928
929 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemoving) { 929 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemoving) {
930 InitializeWithRealMessageLoop(1u); 930 InitializeWithRealMessageLoop(1u);
931 MockTaskObserver observer; 931 MockTaskObserver observer;
932 manager_->SetWorkBatchSize(2); 932 manager_->SetWorkBatchSize(2);
933 runners_[0]->AddTaskObserver(&observer); 933 runners_[0]->AddTaskObserver(&observer);
934 runners_[0]->RemoveTaskObserver(&observer); 934 runners_[0]->RemoveTaskObserver(&observer);
935 935
936 std::vector<EnqueueOrder> run_order; 936 std::vector<EnqueueOrder> run_order;
937 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 937 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
938 938
939 EXPECT_CALL(observer, WillProcessTask(_)).Times(0); 939 EXPECT_CALL(observer, WillProcessTask(_)).Times(0);
940 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 940 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
941 941
942 message_loop_->RunUntilIdle(); 942 base::RunLoop().RunUntilIdle();
943 } 943 }
944 944
945 void RemoveQueueObserverTask(scoped_refptr<TaskQueue> queue, 945 void RemoveQueueObserverTask(scoped_refptr<TaskQueue> queue,
946 base::MessageLoop::TaskObserver* observer) { 946 base::MessageLoop::TaskObserver* observer) {
947 queue->RemoveTaskObserver(observer); 947 queue->RemoveTaskObserver(observer);
948 } 948 }
949 949
950 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemovingInsideTask) { 950 TEST_F(TaskQueueManagerTest, QueueTaskObserverRemovingInsideTask) {
951 InitializeWithRealMessageLoop(1u); 951 InitializeWithRealMessageLoop(1u);
952 MockTaskObserver observer; 952 MockTaskObserver observer;
953 runners_[0]->AddTaskObserver(&observer); 953 runners_[0]->AddTaskObserver(&observer);
954 954
955 runners_[0]->PostTask( 955 runners_[0]->PostTask(
956 FROM_HERE, base::Bind(&RemoveQueueObserverTask, runners_[0], &observer)); 956 FROM_HERE, base::Bind(&RemoveQueueObserverTask, runners_[0], &observer));
957 957
958 EXPECT_CALL(observer, WillProcessTask(_)).Times(1); 958 EXPECT_CALL(observer, WillProcessTask(_)).Times(1);
959 EXPECT_CALL(observer, DidProcessTask(_)).Times(0); 959 EXPECT_CALL(observer, DidProcessTask(_)).Times(0);
960 message_loop_->RunUntilIdle(); 960 base::RunLoop().RunUntilIdle();
961 } 961 }
962 962
963 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) { 963 TEST_F(TaskQueueManagerTest, ThreadCheckAfterTermination) {
964 Initialize(1u); 964 Initialize(1u);
965 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread()); 965 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread());
966 manager_.reset(); 966 manager_.reset();
967 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread()); 967 EXPECT_TRUE(runners_[0]->RunsTasksOnCurrentThread());
968 } 968 }
969 969
970 TEST_F(TaskQueueManagerTest, TimeDomain_NextScheduledRunTime) { 970 TEST_F(TaskQueueManagerTest, TimeDomain_NextScheduledRunTime) {
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1254 InitializeWithRealMessageLoop(1u); 1254 InitializeWithRealMessageLoop(1u);
1255 manager_->SetWorkBatchSize(2); 1255 manager_->SetWorkBatchSize(2);
1256 1256
1257 bool was_nested = true; 1257 bool was_nested = true;
1258 base::RunLoop run_loop; 1258 base::RunLoop run_loop;
1259 runners_[0]->PostTask(FROM_HERE, base::Bind(&PostAndQuitFromNestedRunloop, 1259 runners_[0]->PostTask(FROM_HERE, base::Bind(&PostAndQuitFromNestedRunloop,
1260 base::Unretained(&run_loop), 1260 base::Unretained(&run_loop),
1261 base::RetainedRef(runners_[0]), 1261 base::RetainedRef(runners_[0]),
1262 base::Unretained(&was_nested))); 1262 base::Unretained(&was_nested)));
1263 1263
1264 message_loop_->RunUntilIdle(); 1264 base::RunLoop().RunUntilIdle();
1265 EXPECT_FALSE(was_nested); 1265 EXPECT_FALSE(was_nested);
1266 } 1266 }
1267 1267
1268 class SequenceNumberCapturingTaskObserver 1268 class SequenceNumberCapturingTaskObserver
1269 : public base::MessageLoop::TaskObserver { 1269 : public base::MessageLoop::TaskObserver {
1270 public: 1270 public:
1271 // MessageLoop::TaskObserver overrides. 1271 // MessageLoop::TaskObserver overrides.
1272 void WillProcessTask(const base::PendingTask& pending_task) override {} 1272 void WillProcessTask(const base::PendingTask& pending_task) override {}
1273 void DidProcessTask(const base::PendingTask& pending_task) override { 1273 void DidProcessTask(const base::PendingTask& pending_task) override {
1274 sequence_numbers_.push_back(pending_task.sequence_num); 1274 sequence_numbers_.push_back(pending_task.sequence_num);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 // nested run loop does not trigger the pumping of an on-wakeup queue. 1414 // nested run loop does not trigger the pumping of an on-wakeup queue.
1415 InitializeWithRealMessageLoop(2u); 1415 InitializeWithRealMessageLoop(2u);
1416 runners_[1]->SetPumpPolicy(TaskQueue::PumpPolicy::AFTER_WAKEUP); 1416 runners_[1]->SetPumpPolicy(TaskQueue::PumpPolicy::AFTER_WAKEUP);
1417 1417
1418 std::vector<EnqueueOrder> run_order; 1418 std::vector<EnqueueOrder> run_order;
1419 runners_[0]->PostTask( 1419 runners_[0]->PostTask(
1420 FROM_HERE, 1420 FROM_HERE,
1421 base::Bind(&PostTestTasksFromNestedMessageLoop, message_loop_.get(), 1421 base::Bind(&PostTestTasksFromNestedMessageLoop, message_loop_.get(),
1422 runners_[0], runners_[1], base::Unretained(&run_order))); 1422 runners_[0], runners_[1], base::Unretained(&run_order)));
1423 1423
1424 message_loop_->RunUntilIdle(); 1424 base::RunLoop().RunUntilIdle();
1425 ASSERT_THAT(run_order, ElementsAre(1)); 1425 ASSERT_THAT(run_order, ElementsAre(1));
1426 } 1426 }
1427 1427
1428 namespace { 1428 namespace {
1429 1429
1430 class MockObserver : public TaskQueueManager::Observer { 1430 class MockObserver : public TaskQueueManager::Observer {
1431 public: 1431 public:
1432 MOCK_METHOD1(OnUnregisterTaskQueue, 1432 MOCK_METHOD1(OnUnregisterTaskQueue,
1433 void(const scoped_refptr<TaskQueue>& queue)); 1433 void(const scoped_refptr<TaskQueue>& queue));
1434 MOCK_METHOD2(OnTriedToExecuteBlockedTask, 1434 MOCK_METHOD2(OnTriedToExecuteBlockedTask,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1512 base::Bind(&internal::TaskQueueImpl::UnregisterTaskQueue, 1512 base::Bind(&internal::TaskQueueImpl::UnregisterTaskQueue,
1513 base::Unretained(task_queue.get())), true)); 1513 base::Unretained(task_queue.get())), true));
1514 tasks_to_post_from_nested_loop.push_back( 1514 tasks_to_post_from_nested_loop.push_back(
1515 std::make_pair(base::Bind(&HasOneRefTask, base::Unretained(&log), 1515 std::make_pair(base::Bind(&HasOneRefTask, base::Unretained(&log),
1516 base::Unretained(task_queue.get())), 1516 base::Unretained(task_queue.get())),
1517 true)); 1517 true));
1518 runners_[0]->PostTask( 1518 runners_[0]->PostTask(
1519 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(), 1519 FROM_HERE, base::Bind(&PostFromNestedRunloop, message_loop_.get(),
1520 base::RetainedRef(runners_[0]), 1520 base::RetainedRef(runners_[0]),
1521 base::Unretained(&tasks_to_post_from_nested_loop))); 1521 base::Unretained(&tasks_to_post_from_nested_loop)));
1522 message_loop_->RunUntilIdle(); 1522 base::RunLoop().RunUntilIdle();
1523 1523
1524 // Add a final call to HasOneRefTask. This gives the manager a chance to 1524 // Add a final call to HasOneRefTask. This gives the manager a chance to
1525 // release its reference, and checks that it has. 1525 // release its reference, and checks that it has.
1526 runners_[0]->PostTask(FROM_HERE, 1526 runners_[0]->PostTask(FROM_HERE,
1527 base::Bind(&HasOneRefTask, base::Unretained(&log), 1527 base::Bind(&HasOneRefTask, base::Unretained(&log),
1528 base::Unretained(task_queue.get()))); 1528 base::Unretained(task_queue.get())));
1529 message_loop_->RunUntilIdle(); 1529 base::RunLoop().RunUntilIdle();
1530 1530
1531 EXPECT_THAT(log, ElementsAre(false, false, true)); 1531 EXPECT_THAT(log, ElementsAre(false, false, true));
1532 } 1532 }
1533 1533
1534 TEST_F(TaskQueueManagerTest, TimeDomainsAreIndependant) { 1534 TEST_F(TaskQueueManagerTest, TimeDomainsAreIndependant) {
1535 Initialize(2u); 1535 Initialize(2u);
1536 1536
1537 base::TimeTicks start_time = manager_->delegate()->NowTicks(); 1537 base::TimeTicks start_time = manager_->delegate()->NowTicks();
1538 std::unique_ptr<VirtualTimeDomain> domain_a( 1538 std::unique_ptr<VirtualTimeDomain> domain_a(
1539 new VirtualTimeDomain(nullptr, start_time)); 1539 new VirtualTimeDomain(nullptr, start_time));
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 tasks_to_post_from_nested_loop.push_back( 1890 tasks_to_post_from_nested_loop.push_back(
1891 std::make_pair(base::Bind(&CurrentlyExecutingTaskQueueTestTask, 1891 std::make_pair(base::Bind(&CurrentlyExecutingTaskQueueTestTask,
1892 manager_.get(), &task_sources), 1892 manager_.get(), &task_sources),
1893 queue2)); 1893 queue2));
1894 1894
1895 queue0->PostTask( 1895 queue0->PostTask(
1896 FROM_HERE, base::Bind(&RunloopCurrentlyExecutingTaskQueueTestTask, 1896 FROM_HERE, base::Bind(&RunloopCurrentlyExecutingTaskQueueTestTask,
1897 message_loop_.get(), manager_.get(), &task_sources, 1897 message_loop_.get(), manager_.get(), &task_sources,
1898 &tasks_to_post_from_nested_loop)); 1898 &tasks_to_post_from_nested_loop));
1899 1899
1900 message_loop_->RunUntilIdle(); 1900 base::RunLoop().RunUntilIdle();
1901 EXPECT_THAT(task_sources, ElementsAre(queue0, queue1, queue2, queue0)); 1901 EXPECT_THAT(task_sources, ElementsAre(queue0, queue1, queue2, queue0));
1902 EXPECT_EQ(nullptr, manager_->currently_executing_task_queue()); 1902 EXPECT_EQ(nullptr, manager_->currently_executing_task_queue());
1903 } 1903 }
1904 1904
1905 void OnTraceDataCollected(base::Closure quit_closure, 1905 void OnTraceDataCollected(base::Closure quit_closure,
1906 base::trace_event::TraceResultBuffer* buffer, 1906 base::trace_event::TraceResultBuffer* buffer,
1907 const scoped_refptr<base::RefCountedString>& json, 1907 const scoped_refptr<base::RefCountedString>& json,
1908 bool has_more_events) { 1908 bool has_more_events) {
1909 buffer->AddFragment(json->data()); 1909 buffer->AddFragment(json->data());
1910 if (!has_more_events) 1910 if (!has_more_events)
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1951 InitializeWithRealMessageLoop(1u); 1951 InitializeWithRealMessageLoop(1u);
1952 TaskQueue* queue = runners_[0].get(); 1952 TaskQueue* queue = runners_[0].get();
1953 1953
1954 StartTracing(); 1954 StartTracing();
1955 { 1955 {
1956 base::trace_event::BlameContext blame_context("cat", "name", "type", 1956 base::trace_event::BlameContext blame_context("cat", "name", "type",
1957 "scope", 0, nullptr); 1957 "scope", 0, nullptr);
1958 blame_context.Initialize(); 1958 blame_context.Initialize();
1959 queue->SetBlameContext(&blame_context); 1959 queue->SetBlameContext(&blame_context);
1960 queue->PostTask(FROM_HERE, base::Bind(&NopTask)); 1960 queue->PostTask(FROM_HERE, base::Bind(&NopTask));
1961 message_loop_->RunUntilIdle(); 1961 base::RunLoop().RunUntilIdle();
1962 } 1962 }
1963 StopTracing(); 1963 StopTracing();
1964 std::unique_ptr<trace_analyzer::TraceAnalyzer> analyzer = 1964 std::unique_ptr<trace_analyzer::TraceAnalyzer> analyzer =
1965 CreateTraceAnalyzer(); 1965 CreateTraceAnalyzer();
1966 1966
1967 trace_analyzer::TraceEventVector events; 1967 trace_analyzer::TraceEventVector events;
1968 Query q = Query::EventPhaseIs(TRACE_EVENT_PHASE_ENTER_CONTEXT) || 1968 Query q = Query::EventPhaseIs(TRACE_EVENT_PHASE_ENTER_CONTEXT) ||
1969 Query::EventPhaseIs(TRACE_EVENT_PHASE_LEAVE_CONTEXT); 1969 Query::EventPhaseIs(TRACE_EVENT_PHASE_LEAVE_CONTEXT);
1970 analyzer->FindEvents(q, &events); 1970 analyzer->FindEvents(q, &events);
1971 1971
1972 EXPECT_EQ(2u, events.size()); 1972 EXPECT_EQ(2u, events.size());
1973 } 1973 }
1974 1974
1975 } // namespace scheduler 1975 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/base/task_queue_manager_perftest.cc ('k') | components/scheduler/child/idle_helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698