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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc

Issue 363373003: Replace MessageLoopProxy::current() with ThreadTaskRunnerHandle::Get() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 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 | Annotate | Revision Log
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 <deque> 5 #include <deque>
6 #include <string> 6 #include <string>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/thread_task_runner_handle.h"
13 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" 14 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h"
14 #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h" 15 #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h"
15 #include "chrome/browser/sync_file_system/drive_backend/sync_task_token.h" 16 #include "chrome/browser/sync_file_system/drive_backend/sync_task_token.h"
16 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h" 17 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 #include "webkit/common/fileapi/file_system_util.h" 19 #include "webkit/common/fileapi/file_system_util.h"
19 20
20 #define MAKE_PATH(path) \ 21 #define MAKE_PATH(path) \
21 base::FilePath(fileapi::VirtualPath::GetNormalizedFilePath( \ 22 base::FilePath(fileapi::VirtualPath::GetNormalizedFilePath( \
22 base::FilePath(FILE_PATH_LITERAL(path)))) 23 base::FilePath(FILE_PATH_LITERAL(path))))
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 : public SyncTaskManager::Client, 55 : public SyncTaskManager::Client,
55 public base::SupportsWeakPtr<TaskManagerClient> { 56 public base::SupportsWeakPtr<TaskManagerClient> {
56 public: 57 public:
57 explicit TaskManagerClient(int64 maximum_background_task) 58 explicit TaskManagerClient(int64 maximum_background_task)
58 : maybe_schedule_next_task_count_(0), 59 : maybe_schedule_next_task_count_(0),
59 task_scheduled_count_(0), 60 task_scheduled_count_(0),
60 idle_task_scheduled_count_(0), 61 idle_task_scheduled_count_(0),
61 last_operation_status_(SYNC_STATUS_OK) { 62 last_operation_status_(SYNC_STATUS_OK) {
62 task_manager_.reset(new SyncTaskManager( 63 task_manager_.reset(new SyncTaskManager(
63 AsWeakPtr(), maximum_background_task, 64 AsWeakPtr(), maximum_background_task,
64 base::MessageLoopProxy::current())); 65 base::ThreadTaskRunnerHandle::Get()));
65 task_manager_->Initialize(SYNC_STATUS_OK); 66 task_manager_->Initialize(SYNC_STATUS_OK);
66 base::MessageLoop::current()->RunUntilIdle(); 67 base::MessageLoop::current()->RunUntilIdle();
67 maybe_schedule_next_task_count_ = 0; 68 maybe_schedule_next_task_count_ = 0;
68 } 69 }
69 virtual ~TaskManagerClient() {} 70 virtual ~TaskManagerClient() {}
70 71
71 // DriveFileSyncManager::Client overrides. 72 // DriveFileSyncManager::Client overrides.
72 virtual void MaybeScheduleNextTask() OVERRIDE { 73 virtual void MaybeScheduleNextTask() OVERRIDE {
73 ++maybe_schedule_next_task_count_; 74 ++maybe_schedule_next_task_count_;
74 } 75 }
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 390
390 int callback_count = 0; 391 int callback_count = 0;
391 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 392 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
392 393
393 bool task_started = false; 394 bool task_started = false;
394 bool task_completed = false; 395 bool task_completed = false;
395 396
396 { 397 {
397 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 398 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
398 0 /* maximum_background_task */, 399 0 /* maximum_background_task */,
399 base::MessageLoopProxy::current()); 400 base::ThreadTaskRunnerHandle::Get());
400 task_manager.Initialize(SYNC_STATUS_OK); 401 task_manager.Initialize(SYNC_STATUS_OK);
401 message_loop.RunUntilIdle(); 402 message_loop.RunUntilIdle();
402 task_manager.ScheduleSyncTask( 403 task_manager.ScheduleSyncTask(
403 FROM_HERE, 404 FROM_HERE,
404 scoped_ptr<SyncTask>(new MultihopSyncTask( 405 scoped_ptr<SyncTask>(new MultihopSyncTask(
405 &task_started, &task_completed)), 406 &task_started, &task_completed)),
406 SyncTaskManager::PRIORITY_MED, 407 SyncTaskManager::PRIORITY_MED,
407 base::Bind(&IncrementAndAssign, 0, &callback_count, &status)); 408 base::Bind(&IncrementAndAssign, 0, &callback_count, &status));
408 } 409 }
409 message_loop.RunUntilIdle(); 410 message_loop.RunUntilIdle();
410 411
411 EXPECT_EQ(0, callback_count); 412 EXPECT_EQ(0, callback_count);
412 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); 413 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status);
413 EXPECT_TRUE(task_started); 414 EXPECT_TRUE(task_started);
414 EXPECT_FALSE(task_completed); 415 EXPECT_FALSE(task_completed);
415 } 416 }
416 417
417 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { 418 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) {
418 base::MessageLoop message_loop; 419 base::MessageLoop message_loop;
419 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 420 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
420 0 /* maximum_background_task */, 421 0 /* maximum_background_task */,
421 base::MessageLoopProxy::current()); 422 base::ThreadTaskRunnerHandle::Get());
422 task_manager.Initialize(SYNC_STATUS_OK); 423 task_manager.Initialize(SYNC_STATUS_OK);
423 message_loop.RunUntilIdle(); 424 message_loop.RunUntilIdle();
424 425
425 int callback_count = 0; 426 int callback_count = 0;
426 SyncStatusCode callback_status1 = SYNC_STATUS_OK; 427 SyncStatusCode callback_status1 = SYNC_STATUS_OK;
427 SyncStatusCode callback_status2 = SYNC_STATUS_OK; 428 SyncStatusCode callback_status2 = SYNC_STATUS_OK;
428 SyncStatusCode callback_status3 = SYNC_STATUS_OK; 429 SyncStatusCode callback_status3 = SYNC_STATUS_OK;
429 SyncStatusCode callback_status4 = SYNC_STATUS_OK; 430 SyncStatusCode callback_status4 = SYNC_STATUS_OK;
430 SyncStatusCode callback_status5 = SYNC_STATUS_OK; 431 SyncStatusCode callback_status5 = SYNC_STATUS_OK;
431 432
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 EXPECT_EQ(kStatus3, callback_status3); 473 EXPECT_EQ(kStatus3, callback_status3);
473 EXPECT_EQ(kStatus4, callback_status4); 474 EXPECT_EQ(kStatus4, callback_status4);
474 EXPECT_EQ(kStatus5, callback_status5); 475 EXPECT_EQ(kStatus5, callback_status5);
475 EXPECT_EQ(5, callback_count); 476 EXPECT_EQ(5, callback_count);
476 } 477 }
477 478
478 TEST(SyncTaskManagerTest, BackgroundTask_Sequential) { 479 TEST(SyncTaskManagerTest, BackgroundTask_Sequential) {
479 base::MessageLoop message_loop; 480 base::MessageLoop message_loop;
480 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 481 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
481 10 /* maximum_background_task */, 482 10 /* maximum_background_task */,
482 base::MessageLoopProxy::current()); 483 base::ThreadTaskRunnerHandle::Get());
483 task_manager.Initialize(SYNC_STATUS_OK); 484 task_manager.Initialize(SYNC_STATUS_OK);
484 485
485 SyncStatusCode status = SYNC_STATUS_FAILED; 486 SyncStatusCode status = SYNC_STATUS_FAILED;
486 BackgroundTask::Stats stats; 487 BackgroundTask::Stats stats;
487 task_manager.ScheduleSyncTask( 488 task_manager.ScheduleSyncTask(
488 FROM_HERE, 489 FROM_HERE,
489 scoped_ptr<SyncTask>(new BackgroundTask( 490 scoped_ptr<SyncTask>(new BackgroundTask(
490 "app_id", MAKE_PATH("/hoge/fuga"), 491 "app_id", MAKE_PATH("/hoge/fuga"),
491 &stats)), 492 &stats)),
492 SyncTaskManager::PRIORITY_MED, 493 SyncTaskManager::PRIORITY_MED,
(...skipping 20 matching lines...) Expand all
513 EXPECT_EQ(SYNC_STATUS_OK, status); 514 EXPECT_EQ(SYNC_STATUS_OK, status);
514 EXPECT_EQ(0, stats.running_background_task); 515 EXPECT_EQ(0, stats.running_background_task);
515 EXPECT_EQ(3, stats.finished_task); 516 EXPECT_EQ(3, stats.finished_task);
516 EXPECT_EQ(1, stats.max_parallel_task); 517 EXPECT_EQ(1, stats.max_parallel_task);
517 } 518 }
518 519
519 TEST(SyncTaskManagerTest, BackgroundTask_Parallel) { 520 TEST(SyncTaskManagerTest, BackgroundTask_Parallel) {
520 base::MessageLoop message_loop; 521 base::MessageLoop message_loop;
521 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 522 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
522 10 /* maximum_background_task */, 523 10 /* maximum_background_task */,
523 base::MessageLoopProxy::current()); 524 base::ThreadTaskRunnerHandle::Get());
524 task_manager.Initialize(SYNC_STATUS_OK); 525 task_manager.Initialize(SYNC_STATUS_OK);
525 526
526 SyncStatusCode status = SYNC_STATUS_FAILED; 527 SyncStatusCode status = SYNC_STATUS_FAILED;
527 BackgroundTask::Stats stats; 528 BackgroundTask::Stats stats;
528 task_manager.ScheduleSyncTask( 529 task_manager.ScheduleSyncTask(
529 FROM_HERE, 530 FROM_HERE,
530 scoped_ptr<SyncTask>(new BackgroundTask( 531 scoped_ptr<SyncTask>(new BackgroundTask(
531 "app_id", MAKE_PATH("/hoge"), 532 "app_id", MAKE_PATH("/hoge"),
532 &stats)), 533 &stats)),
533 SyncTaskManager::PRIORITY_MED, 534 SyncTaskManager::PRIORITY_MED,
(...skipping 20 matching lines...) Expand all
554 EXPECT_EQ(SYNC_STATUS_OK, status); 555 EXPECT_EQ(SYNC_STATUS_OK, status);
555 EXPECT_EQ(0, stats.running_background_task); 556 EXPECT_EQ(0, stats.running_background_task);
556 EXPECT_EQ(3, stats.finished_task); 557 EXPECT_EQ(3, stats.finished_task);
557 EXPECT_EQ(3, stats.max_parallel_task); 558 EXPECT_EQ(3, stats.max_parallel_task);
558 } 559 }
559 560
560 TEST(SyncTaskManagerTest, BackgroundTask_Throttled) { 561 TEST(SyncTaskManagerTest, BackgroundTask_Throttled) {
561 base::MessageLoop message_loop; 562 base::MessageLoop message_loop;
562 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 563 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
563 2 /* maximum_background_task */, 564 2 /* maximum_background_task */,
564 base::MessageLoopProxy::current()); 565 base::ThreadTaskRunnerHandle::Get());
565 task_manager.Initialize(SYNC_STATUS_OK); 566 task_manager.Initialize(SYNC_STATUS_OK);
566 567
567 SyncStatusCode status = SYNC_STATUS_FAILED; 568 SyncStatusCode status = SYNC_STATUS_FAILED;
568 BackgroundTask::Stats stats; 569 BackgroundTask::Stats stats;
569 task_manager.ScheduleSyncTask( 570 task_manager.ScheduleSyncTask(
570 FROM_HERE, 571 FROM_HERE,
571 scoped_ptr<SyncTask>(new BackgroundTask( 572 scoped_ptr<SyncTask>(new BackgroundTask(
572 "app_id", MAKE_PATH("/hoge"), 573 "app_id", MAKE_PATH("/hoge"),
573 &stats)), 574 &stats)),
574 SyncTaskManager::PRIORITY_MED, 575 SyncTaskManager::PRIORITY_MED,
(...skipping 20 matching lines...) Expand all
595 EXPECT_EQ(SYNC_STATUS_OK, status); 596 EXPECT_EQ(SYNC_STATUS_OK, status);
596 EXPECT_EQ(0, stats.running_background_task); 597 EXPECT_EQ(0, stats.running_background_task);
597 EXPECT_EQ(3, stats.finished_task); 598 EXPECT_EQ(3, stats.finished_task);
598 EXPECT_EQ(2, stats.max_parallel_task); 599 EXPECT_EQ(2, stats.max_parallel_task);
599 } 600 }
600 601
601 TEST(SyncTaskManagerTest, UpdateBlockingFactor) { 602 TEST(SyncTaskManagerTest, UpdateBlockingFactor) {
602 base::MessageLoop message_loop; 603 base::MessageLoop message_loop;
603 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), 604 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
604 10 /* maximum_background_task */, 605 10 /* maximum_background_task */,
605 base::MessageLoopProxy::current()); 606 base::ThreadTaskRunnerHandle::Get());
606 task_manager.Initialize(SYNC_STATUS_OK); 607 task_manager.Initialize(SYNC_STATUS_OK);
607 608
608 SyncStatusCode status1 = SYNC_STATUS_FAILED; 609 SyncStatusCode status1 = SYNC_STATUS_FAILED;
609 SyncStatusCode status2 = SYNC_STATUS_FAILED; 610 SyncStatusCode status2 = SYNC_STATUS_FAILED;
610 BlockerUpdateTestHelper::Log log; 611 BlockerUpdateTestHelper::Log log;
611 612
612 { 613 {
613 std::vector<std::string> paths; 614 std::vector<std::string> paths;
614 paths.push_back("/foo/bar"); 615 paths.push_back("/foo/bar");
615 paths.push_back("/foo"); 616 paths.push_back("/foo");
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 667
667 EXPECT_EQ("task1: finished", log[i++]); 668 EXPECT_EQ("task1: finished", log[i++]);
668 669
669 EXPECT_EQ("task2: updating to /hoge/fuga/piyo", log[i++]); 670 EXPECT_EQ("task2: updating to /hoge/fuga/piyo", log[i++]);
670 EXPECT_EQ("task2: updated to /hoge/fuga/piyo", log[i++]); 671 EXPECT_EQ("task2: updated to /hoge/fuga/piyo", log[i++]);
671 EXPECT_EQ("task2: finished", log[i++]); 672 EXPECT_EQ("task2: finished", log[i++]);
672 } 673 }
673 674
674 } // namespace drive_backend 675 } // namespace drive_backend
675 } // namespace sync_file_system 676 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698