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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc

Issue 2940933003: DO NOT SUBMIT results of new clang-format (Closed)
Patch Set: Created 3 years, 6 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 "platform/scheduler/base/task_queue_manager.h" 5 #include "platform/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 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 test_task_runner_->RunUntilIdle(); 1390 test_task_runner_->RunUntilIdle();
1391 1391
1392 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40)); 1392 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40));
1393 ASSERT_THAT(run_order, ElementsAre(1, 3)); 1393 ASSERT_THAT(run_order, ElementsAre(1, 3));
1394 } 1394 }
1395 1395
1396 namespace { 1396 namespace {
1397 void UnregisterQueue(scoped_refptr<internal::TaskQueueImpl> queue) { 1397 void UnregisterQueue(scoped_refptr<internal::TaskQueueImpl> queue) {
1398 queue->UnregisterTaskQueue(); 1398 queue->UnregisterTaskQueue();
1399 } 1399 }
1400 } 1400 } // namespace
1401 1401
1402 TEST_F(TaskQueueManagerTest, UnregisterTaskQueue_InTasks) { 1402 TEST_F(TaskQueueManagerTest, UnregisterTaskQueue_InTasks) {
1403 Initialize(3u); 1403 Initialize(3u);
1404 1404
1405 std::vector<EnqueueOrder> run_order; 1405 std::vector<EnqueueOrder> run_order;
1406 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order)); 1406 runners_[0]->PostTask(FROM_HERE, base::Bind(&TestTask, 1, &run_order));
1407 runners_[0]->PostTask(FROM_HERE, base::Bind(&UnregisterQueue, runners_[1])); 1407 runners_[0]->PostTask(FROM_HERE, base::Bind(&UnregisterQueue, runners_[1]));
1408 runners_[0]->PostTask(FROM_HERE, base::Bind(&UnregisterQueue, runners_[2])); 1408 runners_[0]->PostTask(FROM_HERE, base::Bind(&UnregisterQueue, runners_[2]));
1409 runners_[1]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order)); 1409 runners_[1]->PostTask(FROM_HERE, base::Bind(&TestTask, 2, &run_order));
1410 runners_[2]->PostTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order)); 1410 runners_[2]->PostTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order));
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
2113 2113
2114 EXPECT_EQ(nullptr, manager_->currently_executing_task_queue()); 2114 EXPECT_EQ(nullptr, manager_->currently_executing_task_queue());
2115 } 2115 }
2116 2116
2117 namespace { 2117 namespace {
2118 void CurrentlyExecutingTaskQueueTestTask( 2118 void CurrentlyExecutingTaskQueueTestTask(
2119 TaskQueueManager* task_queue_manager, 2119 TaskQueueManager* task_queue_manager,
2120 std::vector<TaskQueue*>* task_sources) { 2120 std::vector<TaskQueue*>* task_sources) {
2121 task_sources->push_back(task_queue_manager->currently_executing_task_queue()); 2121 task_sources->push_back(task_queue_manager->currently_executing_task_queue());
2122 } 2122 }
2123 } 2123 } // namespace
2124 2124
2125 TEST_F(TaskQueueManagerTest, CurrentlyExecutingTaskQueue_TaskRunning) { 2125 TEST_F(TaskQueueManagerTest, CurrentlyExecutingTaskQueue_TaskRunning) {
2126 Initialize(2u); 2126 Initialize(2u);
2127 2127
2128 internal::TaskQueueImpl* queue0 = runners_[0].get(); 2128 internal::TaskQueueImpl* queue0 = runners_[0].get();
2129 internal::TaskQueueImpl* queue1 = runners_[1].get(); 2129 internal::TaskQueueImpl* queue1 = runners_[1].get();
2130 2130
2131 std::vector<TaskQueue*> task_sources; 2131 std::vector<TaskQueue*> task_sources;
2132 queue0->PostTask(FROM_HERE, base::Bind(&CurrentlyExecutingTaskQueueTestTask, 2132 queue0->PostTask(FROM_HERE, base::Bind(&CurrentlyExecutingTaskQueueTestTask,
2133 manager_.get(), &task_sources)); 2133 manager_.get(), &task_sources));
(...skipping 14 matching lines...) Expand all
2148 base::MessageLoop::ScopedNestableTaskAllower allow(message_loop); 2148 base::MessageLoop::ScopedNestableTaskAllower allow(message_loop);
2149 task_sources->push_back(task_queue_manager->currently_executing_task_queue()); 2149 task_sources->push_back(task_queue_manager->currently_executing_task_queue());
2150 2150
2151 for (std::pair<base::Closure, TaskQueue*>& pair : *tasks) { 2151 for (std::pair<base::Closure, TaskQueue*>& pair : *tasks) {
2152 pair.second->PostTask(FROM_HERE, pair.first); 2152 pair.second->PostTask(FROM_HERE, pair.first);
2153 } 2153 }
2154 2154
2155 base::RunLoop().RunUntilIdle(); 2155 base::RunLoop().RunUntilIdle();
2156 task_sources->push_back(task_queue_manager->currently_executing_task_queue()); 2156 task_sources->push_back(task_queue_manager->currently_executing_task_queue());
2157 } 2157 }
2158 } 2158 } // namespace
2159 2159
2160 TEST_F(TaskQueueManagerTest, CurrentlyExecutingTaskQueue_NestedLoop) { 2160 TEST_F(TaskQueueManagerTest, CurrentlyExecutingTaskQueue_NestedLoop) {
2161 InitializeWithRealMessageLoop(3u); 2161 InitializeWithRealMessageLoop(3u);
2162 2162
2163 TaskQueue* queue0 = runners_[0].get(); 2163 TaskQueue* queue0 = runners_[0].get();
2164 TaskQueue* queue1 = runners_[1].get(); 2164 TaskQueue* queue1 = runners_[1].get();
2165 TaskQueue* queue2 = runners_[2].get(); 2165 TaskQueue* queue2 = runners_[2].get();
2166 2166
2167 std::vector<TaskQueue*> task_sources; 2167 std::vector<TaskQueue*> task_sources;
2168 std::vector<std::pair<base::Closure, TaskQueue*>> 2168 std::vector<std::pair<base::Closure, TaskQueue*>>
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2264 CancelableTask task1(now_src_.get()); 2264 CancelableTask task1(now_src_.get());
2265 CancelableTask task2(now_src_.get()); 2265 CancelableTask task2(now_src_.get());
2266 CancelableTask task3(now_src_.get()); 2266 CancelableTask task3(now_src_.get());
2267 CancelableTask task4(now_src_.get()); 2267 CancelableTask task4(now_src_.get());
2268 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5)); 2268 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5));
2269 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10)); 2269 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10));
2270 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15)); 2270 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15));
2271 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30)); 2271 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30));
2272 std::vector<base::TimeTicks> run_times; 2272 std::vector<base::TimeTicks> run_times;
2273 runners_[0]->PostDelayedTask( 2273 runners_[0]->PostDelayedTask(
2274 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2274 FROM_HERE,
2275 task1.weak_factory_.GetWeakPtr(), &run_times), 2275 base::Bind(&CancelableTask::RecordTimeTask,
2276 task1.weak_factory_.GetWeakPtr(), &run_times),
2276 delay1); 2277 delay1);
2277 runners_[0]->PostDelayedTask( 2278 runners_[0]->PostDelayedTask(
2278 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2279 FROM_HERE,
2279 task2.weak_factory_.GetWeakPtr(), &run_times), 2280 base::Bind(&CancelableTask::RecordTimeTask,
2281 task2.weak_factory_.GetWeakPtr(), &run_times),
2280 delay2); 2282 delay2);
2281 runners_[0]->PostDelayedTask( 2283 runners_[0]->PostDelayedTask(
2282 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2284 FROM_HERE,
2283 task3.weak_factory_.GetWeakPtr(), &run_times), 2285 base::Bind(&CancelableTask::RecordTimeTask,
2286 task3.weak_factory_.GetWeakPtr(), &run_times),
2284 delay3); 2287 delay3);
2285 runners_[0]->PostDelayedTask( 2288 runners_[0]->PostDelayedTask(
2286 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2289 FROM_HERE,
2287 task4.weak_factory_.GetWeakPtr(), &run_times), 2290 base::Bind(&CancelableTask::RecordTimeTask,
2291 task4.weak_factory_.GetWeakPtr(), &run_times),
2288 delay4); 2292 delay4);
2289 2293
2290 task2.weak_factory_.InvalidateWeakPtrs(); 2294 task2.weak_factory_.InvalidateWeakPtrs();
2291 task3.weak_factory_.InvalidateWeakPtrs(); 2295 task3.weak_factory_.InvalidateWeakPtrs();
2292 2296
2293 std::set<base::TimeTicks> wake_up_times; 2297 std::set<base::TimeTicks> wake_up_times;
2294 2298
2295 RunUntilIdle(base::Bind( 2299 RunUntilIdle(base::Bind(
2296 [](std::set<base::TimeTicks>* wake_up_times, 2300 [](std::set<base::TimeTicks>* wake_up_times,
2297 base::SimpleTestTickClock* clock) { 2301 base::SimpleTestTickClock* clock) {
(...skipping 14 matching lines...) Expand all
2312 CancelableTask task1(now_src_.get()); 2316 CancelableTask task1(now_src_.get());
2313 CancelableTask task2(now_src_.get()); 2317 CancelableTask task2(now_src_.get());
2314 CancelableTask task3(now_src_.get()); 2318 CancelableTask task3(now_src_.get());
2315 CancelableTask task4(now_src_.get()); 2319 CancelableTask task4(now_src_.get());
2316 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5)); 2320 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5));
2317 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10)); 2321 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10));
2318 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15)); 2322 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15));
2319 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30)); 2323 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30));
2320 std::vector<base::TimeTicks> run_times; 2324 std::vector<base::TimeTicks> run_times;
2321 runners_[0]->PostDelayedTask( 2325 runners_[0]->PostDelayedTask(
2322 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2326 FROM_HERE,
2323 task4.weak_factory_.GetWeakPtr(), &run_times), 2327 base::Bind(&CancelableTask::RecordTimeTask,
2328 task4.weak_factory_.GetWeakPtr(), &run_times),
2324 delay4); 2329 delay4);
2325 runners_[0]->PostDelayedTask( 2330 runners_[0]->PostDelayedTask(
2326 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2331 FROM_HERE,
2327 task3.weak_factory_.GetWeakPtr(), &run_times), 2332 base::Bind(&CancelableTask::RecordTimeTask,
2333 task3.weak_factory_.GetWeakPtr(), &run_times),
2328 delay3); 2334 delay3);
2329 runners_[0]->PostDelayedTask( 2335 runners_[0]->PostDelayedTask(
2330 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2336 FROM_HERE,
2331 task2.weak_factory_.GetWeakPtr(), &run_times), 2337 base::Bind(&CancelableTask::RecordTimeTask,
2338 task2.weak_factory_.GetWeakPtr(), &run_times),
2332 delay2); 2339 delay2);
2333 runners_[0]->PostDelayedTask( 2340 runners_[0]->PostDelayedTask(
2334 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2341 FROM_HERE,
2335 task1.weak_factory_.GetWeakPtr(), &run_times), 2342 base::Bind(&CancelableTask::RecordTimeTask,
2343 task1.weak_factory_.GetWeakPtr(), &run_times),
2336 delay1); 2344 delay1);
2337 2345
2338 task2.weak_factory_.InvalidateWeakPtrs(); 2346 task2.weak_factory_.InvalidateWeakPtrs();
2339 task3.weak_factory_.InvalidateWeakPtrs(); 2347 task3.weak_factory_.InvalidateWeakPtrs();
2340 2348
2341 std::set<base::TimeTicks> wake_up_times; 2349 std::set<base::TimeTicks> wake_up_times;
2342 2350
2343 RunUntilIdle(base::Bind( 2351 RunUntilIdle(base::Bind(
2344 [](std::set<base::TimeTicks>* wake_up_times, 2352 [](std::set<base::TimeTicks>* wake_up_times,
2345 base::SimpleTestTickClock* clock) { 2353 base::SimpleTestTickClock* clock) {
(...skipping 14 matching lines...) Expand all
2360 CancelableTask task1(now_src_.get()); 2368 CancelableTask task1(now_src_.get());
2361 CancelableTask task2(now_src_.get()); 2369 CancelableTask task2(now_src_.get());
2362 CancelableTask task3(now_src_.get()); 2370 CancelableTask task3(now_src_.get());
2363 CancelableTask task4(now_src_.get()); 2371 CancelableTask task4(now_src_.get());
2364 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5)); 2372 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5));
2365 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10)); 2373 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10));
2366 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15)); 2374 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15));
2367 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30)); 2375 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30));
2368 std::vector<base::TimeTicks> run_times; 2376 std::vector<base::TimeTicks> run_times;
2369 runners_[0]->PostDelayedTask( 2377 runners_[0]->PostDelayedTask(
2370 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2378 FROM_HERE,
2371 task1.weak_factory_.GetWeakPtr(), &run_times), 2379 base::Bind(&CancelableTask::RecordTimeTask,
2380 task1.weak_factory_.GetWeakPtr(), &run_times),
2372 delay1); 2381 delay1);
2373 runners_[0]->PostDelayedTask( 2382 runners_[0]->PostDelayedTask(
2374 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2383 FROM_HERE,
2375 task2.weak_factory_.GetWeakPtr(), &run_times), 2384 base::Bind(&CancelableTask::RecordTimeTask,
2385 task2.weak_factory_.GetWeakPtr(), &run_times),
2376 delay2); 2386 delay2);
2377 runners_[0]->PostDelayedTask( 2387 runners_[0]->PostDelayedTask(
2378 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2388 FROM_HERE,
2379 task3.weak_factory_.GetWeakPtr(), &run_times), 2389 base::Bind(&CancelableTask::RecordTimeTask,
2390 task3.weak_factory_.GetWeakPtr(), &run_times),
2380 delay3); 2391 delay3);
2381 runners_[0]->PostDelayedTask( 2392 runners_[0]->PostDelayedTask(
2382 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2393 FROM_HERE,
2383 task4.weak_factory_.GetWeakPtr(), &run_times), 2394 base::Bind(&CancelableTask::RecordTimeTask,
2395 task4.weak_factory_.GetWeakPtr(), &run_times),
2384 delay4); 2396 delay4);
2385 2397
2386 // Post a non-canceled task with |delay3|. So we should still get a wake-up at 2398 // Post a non-canceled task with |delay3|. So we should still get a wake-up at
2387 // |delay3| even though we cancel |task3|. 2399 // |delay3| even though we cancel |task3|.
2388 runners_[0]->PostDelayedTask(FROM_HERE, 2400 runners_[0]->PostDelayedTask(FROM_HERE,
2389 base::Bind(&CancelableTask::RecordTimeTask, 2401 base::Bind(&CancelableTask::RecordTimeTask,
2390 base::Unretained(&task3), &run_times), 2402 base::Unretained(&task3), &run_times),
2391 delay3); 2403 delay3);
2392 2404
2393 task2.weak_factory_.InvalidateWeakPtrs(); 2405 task2.weak_factory_.InvalidateWeakPtrs();
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
2494 CancelableTask task1(now_src_.get()); 2506 CancelableTask task1(now_src_.get());
2495 CancelableTask task2(now_src_.get()); 2507 CancelableTask task2(now_src_.get());
2496 CancelableTask task3(now_src_.get()); 2508 CancelableTask task3(now_src_.get());
2497 CancelableTask task4(now_src_.get()); 2509 CancelableTask task4(now_src_.get());
2498 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5)); 2510 base::TimeDelta delay1(base::TimeDelta::FromSeconds(5));
2499 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10)); 2511 base::TimeDelta delay2(base::TimeDelta::FromSeconds(10));
2500 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15)); 2512 base::TimeDelta delay3(base::TimeDelta::FromSeconds(15));
2501 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30)); 2513 base::TimeDelta delay4(base::TimeDelta::FromSeconds(30));
2502 std::vector<base::TimeTicks> run_times; 2514 std::vector<base::TimeTicks> run_times;
2503 runners_[0]->PostDelayedTask( 2515 runners_[0]->PostDelayedTask(
2504 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2516 FROM_HERE,
2505 task1.weak_factory_.GetWeakPtr(), &run_times), 2517 base::Bind(&CancelableTask::RecordTimeTask,
2518 task1.weak_factory_.GetWeakPtr(), &run_times),
2506 delay1); 2519 delay1);
2507 runners_[0]->PostDelayedTask( 2520 runners_[0]->PostDelayedTask(
2508 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2521 FROM_HERE,
2509 task2.weak_factory_.GetWeakPtr(), &run_times), 2522 base::Bind(&CancelableTask::RecordTimeTask,
2523 task2.weak_factory_.GetWeakPtr(), &run_times),
2510 delay2); 2524 delay2);
2511 runners_[0]->PostDelayedTask( 2525 runners_[0]->PostDelayedTask(
2512 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2526 FROM_HERE,
2513 task3.weak_factory_.GetWeakPtr(), &run_times), 2527 base::Bind(&CancelableTask::RecordTimeTask,
2528 task3.weak_factory_.GetWeakPtr(), &run_times),
2514 delay3); 2529 delay3);
2515 runners_[0]->PostDelayedTask( 2530 runners_[0]->PostDelayedTask(
2516 FROM_HERE, base::Bind(&CancelableTask::RecordTimeTask, 2531 FROM_HERE,
2517 task4.weak_factory_.GetWeakPtr(), &run_times), 2532 base::Bind(&CancelableTask::RecordTimeTask,
2533 task4.weak_factory_.GetWeakPtr(), &run_times),
2518 delay4); 2534 delay4);
2519 2535
2520 EXPECT_EQ(4u, runners_[0]->GetNumberOfPendingTasks()); 2536 EXPECT_EQ(4u, runners_[0]->GetNumberOfPendingTasks());
2521 task2.weak_factory_.InvalidateWeakPtrs(); 2537 task2.weak_factory_.InvalidateWeakPtrs();
2522 task3.weak_factory_.InvalidateWeakPtrs(); 2538 task3.weak_factory_.InvalidateWeakPtrs();
2523 EXPECT_EQ(4u, runners_[0]->GetNumberOfPendingTasks()); 2539 EXPECT_EQ(4u, runners_[0]->GetNumberOfPendingTasks());
2524 2540
2525 manager_->SweepCanceledDelayedTasks(); 2541 manager_->SweepCanceledDelayedTasks();
2526 EXPECT_EQ(2u, runners_[0]->GetNumberOfPendingTasks()); 2542 EXPECT_EQ(2u, runners_[0]->GetNumberOfPendingTasks());
2527 2543
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
2947 manager_->RegisterTimeDomain(domain.get()); 2963 manager_->RegisterTimeDomain(domain.get());
2948 runners_[0]->SetTimeDomain(domain.get()); 2964 runners_[0]->SetTimeDomain(domain.get());
2949 2965
2950 // Tidy up. 2966 // Tidy up.
2951 runners_[0]->UnregisterTaskQueue(); 2967 runners_[0]->UnregisterTaskQueue();
2952 manager_->UnregisterTimeDomain(domain.get()); 2968 manager_->UnregisterTimeDomain(domain.get());
2953 } 2969 }
2954 2970
2955 } // namespace scheduler 2971 } // namespace scheduler
2956 } // namespace blink 2972 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698