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

Side by Side Diff: base/test/scoped_task_scheduler_unittest.cc

Issue 2859053006: Use constexpr TaskTraits constructor in base (part 2). (Closed)
Patch Set: self-review Created 3 years, 7 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 | « base/task_scheduler/task_unittest.cc ('k') | base/threading/sequenced_worker_pool.cc » ('j') | 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/test/scoped_task_scheduler.h" 5 #include "base/test/scoped_task_scheduler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 250
251 RunLoop().RunUntilIdle(); 251 RunLoop().RunUntilIdle();
252 252
253 EXPECT_TRUE(com_task_ran); 253 EXPECT_TRUE(com_task_ran);
254 } 254 }
255 #endif // defined(OS_WIN) 255 #endif // defined(OS_WIN)
256 256
257 TEST(ScopedTaskSchedulerTest, NonBlockShutdownTasksPostedAfterShutdownDontRun) { 257 TEST(ScopedTaskSchedulerTest, NonBlockShutdownTasksPostedAfterShutdownDontRun) {
258 ScopedTaskScheduler scoped_task_scheduler; 258 ScopedTaskScheduler scoped_task_scheduler;
259 TaskScheduler::GetInstance()->Shutdown(); 259 TaskScheduler::GetInstance()->Shutdown();
260 PostTaskWithTraits(FROM_HERE, 260 PostTaskWithTraits(FROM_HERE, {TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
261 TaskTraits().WithShutdownBehavior(
262 TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN),
263 BindOnce([]() { 261 BindOnce([]() {
264 ADD_FAILURE() 262 ADD_FAILURE()
265 << "CONTINUE_ON_SHUTDOWN task should not run"; 263 << "CONTINUE_ON_SHUTDOWN task should not run";
266 })); 264 }));
267 PostTaskWithTraits( 265 PostTaskWithTraits(FROM_HERE, {TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
268 FROM_HERE, 266 BindOnce([]() {
269 TaskTraits().WithShutdownBehavior(TaskShutdownBehavior::SKIP_ON_SHUTDOWN), 267 ADD_FAILURE() << "SKIP_ON_SHUTDOWN task should not run";
270 BindOnce( 268 }));
271 []() { ADD_FAILURE() << "SKIP_ON_SHUTDOWN task should not run"; }));
272 269
273 // This should not run anything. 270 // This should not run anything.
274 RunLoop().RunUntilIdle(); 271 RunLoop().RunUntilIdle();
275 } 272 }
276 273
277 TEST(ScopedTaskSchedulerTest, DestructorRunsBlockShutdownTasksOnly) { 274 TEST(ScopedTaskSchedulerTest, DestructorRunsBlockShutdownTasksOnly) {
278 bool block_shutdown_task_ran = false; 275 bool block_shutdown_task_ran = false;
279 { 276 {
280 ScopedTaskScheduler scoped_task_scheduler; 277 ScopedTaskScheduler scoped_task_scheduler;
281 PostTaskWithTraits(FROM_HERE, 278 PostTaskWithTraits(FROM_HERE, {TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN},
282 TaskTraits().WithShutdownBehavior(
283 TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN),
284 BindOnce([]() { 279 BindOnce([]() {
285 ADD_FAILURE() 280 ADD_FAILURE()
286 << "CONTINUE_ON_SHUTDOWN task should not run"; 281 << "CONTINUE_ON_SHUTDOWN task should not run";
287 })); 282 }));
288 PostTaskWithTraits(FROM_HERE, 283 PostTaskWithTraits(FROM_HERE, {TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
289 TaskTraits().WithShutdownBehavior(
290 TaskShutdownBehavior::SKIP_ON_SHUTDOWN),
291 BindOnce([]() { 284 BindOnce([]() {
292 ADD_FAILURE() 285 ADD_FAILURE()
293 << "SKIP_ON_SHUTDOWN task should not run"; 286 << "SKIP_ON_SHUTDOWN task should not run";
294 })); 287 }));
295 PostTaskWithTraits( 288 PostTaskWithTraits(FROM_HERE, {TaskShutdownBehavior::BLOCK_SHUTDOWN},
296 FROM_HERE, 289 BindOnce(
297 TaskTraits().WithShutdownBehavior(TaskShutdownBehavior::BLOCK_SHUTDOWN), 290 [](bool* block_shutdown_task_ran) {
298 BindOnce( 291 *block_shutdown_task_ran = true;
299 [](bool* block_shutdown_task_ran) { 292 },
300 *block_shutdown_task_ran = true; 293 Unretained(&block_shutdown_task_ran)));
301 },
302 Unretained(&block_shutdown_task_ran)));
303 } 294 }
304 EXPECT_TRUE(block_shutdown_task_ran); 295 EXPECT_TRUE(block_shutdown_task_ran);
305 } 296 }
306 297
307 TEST(ScopedTaskSchedulerTest, ReassignCurrentTaskRunner) { 298 TEST(ScopedTaskSchedulerTest, ReassignCurrentTaskRunner) {
308 bool first_task_ran = false; 299 bool first_task_ran = false;
309 bool second_task_ran = false; 300 bool second_task_ran = false;
310 301
311 auto TestTaskRan = [](bool* task_ran) { *task_ran = true; }; 302 auto TestTaskRan = [](bool* task_ran) { *task_ran = true; };
312 303
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 BindOnce([](bool* task_ran) { *task_ran = true; }, 336 BindOnce([](bool* task_ran) { *task_ran = true; },
346 Unretained(task_ran))); 337 Unretained(task_ran)));
347 }, 338 },
348 Unretained(&task_ran))); 339 Unretained(&task_ran)));
349 RunLoop().RunUntilIdle(); 340 RunLoop().RunUntilIdle();
350 EXPECT_TRUE(task_ran); 341 EXPECT_TRUE(task_ran);
351 } 342 }
352 343
353 } // namespace test 344 } // namespace test
354 } // namespace base 345 } // namespace base
OLDNEW
« no previous file with comments | « base/task_scheduler/task_unittest.cc ('k') | base/threading/sequenced_worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698