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

Unified Diff: chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc

Issue 334053008: [SyncFS] Make task invocation in SyncTaskRunner async (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
index 4583553c60ee71847c3302741ba960c8b70e9ce0..1bbdf08657ff1b7925b701cae948bb63a439d84d 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
@@ -60,8 +60,10 @@ class TaskManagerClient
idle_task_scheduled_count_(0),
last_operation_status_(SYNC_STATUS_OK) {
task_manager_.reset(new SyncTaskManager(
- AsWeakPtr(), maximum_background_task));
+ AsWeakPtr(), maximum_background_task,
+ base::MessageLoopProxy::current()));
task_manager_->Initialize(SYNC_STATUS_OK);
+ base::MessageLoop::current()->RunUntilIdle();
maybe_schedule_next_task_count_ = 0;
}
virtual ~TaskManagerClient() {}
@@ -393,8 +395,10 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) {
{
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 0 /* maximum_background_task */);
+ 0 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
+ message_loop.RunUntilIdle();
task_manager.ScheduleSyncTask(
FROM_HERE,
scoped_ptr<SyncTask>(new MultihopSyncTask(
@@ -402,8 +406,8 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) {
SyncTaskManager::PRIORITY_MED,
base::Bind(&IncrementAndAssign, 0, &callback_count, &status));
}
-
message_loop.RunUntilIdle();
+
EXPECT_EQ(0, callback_count);
EXPECT_EQ(SYNC_STATUS_UNKNOWN, status);
EXPECT_TRUE(task_started);
@@ -413,8 +417,10 @@ TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) {
TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) {
base::MessageLoop message_loop;
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 0 /* maximum_background_task */);
+ 0 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
+ message_loop.RunUntilIdle();
int callback_count = 0;
SyncStatusCode callback_status1 = SYNC_STATUS_OK;
@@ -472,7 +478,8 @@ TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) {
TEST(SyncTaskManagerTest, BackgroundTask_Sequential) {
base::MessageLoop message_loop;
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 10 /* maximum_background_task */);
+ 10 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
SyncStatusCode status = SYNC_STATUS_FAILED;
@@ -512,7 +519,8 @@ TEST(SyncTaskManagerTest, BackgroundTask_Sequential) {
TEST(SyncTaskManagerTest, BackgroundTask_Parallel) {
base::MessageLoop message_loop;
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 10 /* maximum_background_task */);
+ 10 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
SyncStatusCode status = SYNC_STATUS_FAILED;
@@ -552,7 +560,8 @@ TEST(SyncTaskManagerTest, BackgroundTask_Parallel) {
TEST(SyncTaskManagerTest, BackgroundTask_Throttled) {
base::MessageLoop message_loop;
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 2 /* maximum_background_task */);
+ 2 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
SyncStatusCode status = SYNC_STATUS_FAILED;
@@ -592,10 +601,12 @@ TEST(SyncTaskManagerTest, BackgroundTask_Throttled) {
TEST(SyncTaskManagerTest, UpdateBlockingFactor) {
base::MessageLoop message_loop;
SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(),
- 10 /* maximum_background_task */);
+ 10 /* maximum_background_task */,
+ base::MessageLoopProxy::current());
task_manager.Initialize(SYNC_STATUS_OK);
- SyncStatusCode status = SYNC_STATUS_FAILED;
+ SyncStatusCode status1 = SYNC_STATUS_FAILED;
+ SyncStatusCode status2 = SYNC_STATUS_FAILED;
BlockerUpdateTestHelper::Log log;
{
@@ -608,7 +619,7 @@ TEST(SyncTaskManagerTest, UpdateBlockingFactor) {
scoped_ptr<SyncTask>(new BlockerUpdateTestHelper(
"task1", "app_id", paths, &log)),
SyncTaskManager::PRIORITY_MED,
- CreateResultReceiver(&status));
+ CreateResultReceiver(&status1));
}
{
@@ -621,22 +632,23 @@ TEST(SyncTaskManagerTest, UpdateBlockingFactor) {
scoped_ptr<SyncTask>(new BlockerUpdateTestHelper(
"task2", "app_id", paths, &log)),
SyncTaskManager::PRIORITY_MED,
- CreateResultReceiver(&status));
+ CreateResultReceiver(&status2));
}
message_loop.RunUntilIdle();
- EXPECT_EQ(SYNC_STATUS_OK, status);
+ EXPECT_EQ(SYNC_STATUS_OK, status1);
+ EXPECT_EQ(SYNC_STATUS_OK, status2);
ASSERT_EQ(14u, log.size());
int i = 0;
// task1 takes "/foo/bar" first.
EXPECT_EQ("task1: updating to /foo/bar", log[i++]);
- EXPECT_EQ("task1: updated to /foo/bar", log[i++]);
- // task1 blocks task2. task2's update should be pending until task1 update.
+ // task1 blocks task2. task2's update should not complete until task1 update.
EXPECT_EQ("task2: updating to /foo", log[i++]);
+ EXPECT_EQ("task1: updated to /foo/bar", log[i++]);
// task1 releases "/foo/bar" and tries to take "/foo". Then, pending task2
// takes "/foo" and blocks task1.

Powered by Google App Engine
This is Rietveld 408576698