| OLD | NEW |
| 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 "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 | 307 |
| 308 TEST(SyncTaskManagerTest, ScheduleTask) { | 308 TEST(SyncTaskManagerTest, ScheduleTask) { |
| 309 base::MessageLoop message_loop; | 309 base::MessageLoop message_loop; |
| 310 TaskManagerClient client(0 /* maximum_background_task */); | 310 TaskManagerClient client(0 /* maximum_background_task */); |
| 311 int callback_count = 0; | 311 int callback_count = 0; |
| 312 SyncStatusCode callback_status = SYNC_STATUS_OK; | 312 SyncStatusCode callback_status = SYNC_STATUS_OK; |
| 313 | 313 |
| 314 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, | 314 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, |
| 315 &callback_count, | 315 &callback_count, |
| 316 &callback_status)); | 316 &callback_status)); |
| 317 message_loop.RunUntilIdle(); | 317 base::RunLoop().RunUntilIdle(); |
| 318 | 318 |
| 319 EXPECT_EQ(kStatus1, callback_status); | 319 EXPECT_EQ(kStatus1, callback_status); |
| 320 EXPECT_EQ(kStatus1, client.last_operation_status()); | 320 EXPECT_EQ(kStatus1, client.last_operation_status()); |
| 321 | 321 |
| 322 EXPECT_EQ(1, callback_count); | 322 EXPECT_EQ(1, callback_count); |
| 323 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); | 323 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); |
| 324 EXPECT_EQ(1, client.task_scheduled_count()); | 324 EXPECT_EQ(1, client.task_scheduled_count()); |
| 325 EXPECT_EQ(0, client.idle_task_scheduled_count()); | 325 EXPECT_EQ(0, client.idle_task_scheduled_count()); |
| 326 } | 326 } |
| 327 | 327 |
| 328 TEST(SyncTaskManagerTest, ScheduleTwoTasks) { | 328 TEST(SyncTaskManagerTest, ScheduleTwoTasks) { |
| 329 base::MessageLoop message_loop; | 329 base::MessageLoop message_loop; |
| 330 TaskManagerClient client(0 /* maximum_background_task */); | 330 TaskManagerClient client(0 /* maximum_background_task */); |
| 331 int callback_count = 0; | 331 int callback_count = 0; |
| 332 SyncStatusCode callback_status = SYNC_STATUS_OK; | 332 SyncStatusCode callback_status = SYNC_STATUS_OK; |
| 333 | 333 |
| 334 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, | 334 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, |
| 335 &callback_count, | 335 &callback_count, |
| 336 &callback_status)); | 336 &callback_status)); |
| 337 client.ScheduleTask(kStatus2, base::Bind(&IncrementAndAssign, 1, | 337 client.ScheduleTask(kStatus2, base::Bind(&IncrementAndAssign, 1, |
| 338 &callback_count, | 338 &callback_count, |
| 339 &callback_status)); | 339 &callback_status)); |
| 340 message_loop.RunUntilIdle(); | 340 base::RunLoop().RunUntilIdle(); |
| 341 | 341 |
| 342 EXPECT_EQ(kStatus2, callback_status); | 342 EXPECT_EQ(kStatus2, callback_status); |
| 343 EXPECT_EQ(kStatus2, client.last_operation_status()); | 343 EXPECT_EQ(kStatus2, client.last_operation_status()); |
| 344 | 344 |
| 345 EXPECT_EQ(2, callback_count); | 345 EXPECT_EQ(2, callback_count); |
| 346 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); | 346 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); |
| 347 EXPECT_EQ(2, client.task_scheduled_count()); | 347 EXPECT_EQ(2, client.task_scheduled_count()); |
| 348 EXPECT_EQ(0, client.idle_task_scheduled_count()); | 348 EXPECT_EQ(0, client.idle_task_scheduled_count()); |
| 349 } | 349 } |
| 350 | 350 |
| 351 TEST(SyncTaskManagerTest, ScheduleIdleTask) { | 351 TEST(SyncTaskManagerTest, ScheduleIdleTask) { |
| 352 base::MessageLoop message_loop; | 352 base::MessageLoop message_loop; |
| 353 TaskManagerClient client(0 /* maximum_background_task */); | 353 TaskManagerClient client(0 /* maximum_background_task */); |
| 354 | 354 |
| 355 client.ScheduleTaskIfIdle(kStatus1); | 355 client.ScheduleTaskIfIdle(kStatus1); |
| 356 message_loop.RunUntilIdle(); | 356 base::RunLoop().RunUntilIdle(); |
| 357 | 357 |
| 358 EXPECT_EQ(kStatus1, client.last_operation_status()); | 358 EXPECT_EQ(kStatus1, client.last_operation_status()); |
| 359 | 359 |
| 360 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); | 360 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); |
| 361 EXPECT_EQ(1, client.task_scheduled_count()); | 361 EXPECT_EQ(1, client.task_scheduled_count()); |
| 362 EXPECT_EQ(1, client.idle_task_scheduled_count()); | 362 EXPECT_EQ(1, client.idle_task_scheduled_count()); |
| 363 } | 363 } |
| 364 | 364 |
| 365 TEST(SyncTaskManagerTest, ScheduleIdleTaskWhileNotIdle) { | 365 TEST(SyncTaskManagerTest, ScheduleIdleTaskWhileNotIdle) { |
| 366 base::MessageLoop message_loop; | 366 base::MessageLoop message_loop; |
| 367 TaskManagerClient client(0 /* maximum_background_task */); | 367 TaskManagerClient client(0 /* maximum_background_task */); |
| 368 int callback_count = 0; | 368 int callback_count = 0; |
| 369 SyncStatusCode callback_status = SYNC_STATUS_OK; | 369 SyncStatusCode callback_status = SYNC_STATUS_OK; |
| 370 | 370 |
| 371 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, | 371 client.ScheduleTask(kStatus1, base::Bind(&IncrementAndAssign, 0, |
| 372 &callback_count, | 372 &callback_count, |
| 373 &callback_status)); | 373 &callback_status)); |
| 374 client.ScheduleTaskIfIdle(kStatus2); | 374 client.ScheduleTaskIfIdle(kStatus2); |
| 375 message_loop.RunUntilIdle(); | 375 base::RunLoop().RunUntilIdle(); |
| 376 | 376 |
| 377 // Idle task must not have run. | 377 // Idle task must not have run. |
| 378 EXPECT_EQ(kStatus1, callback_status); | 378 EXPECT_EQ(kStatus1, callback_status); |
| 379 EXPECT_EQ(kStatus1, client.last_operation_status()); | 379 EXPECT_EQ(kStatus1, client.last_operation_status()); |
| 380 | 380 |
| 381 EXPECT_EQ(1, callback_count); | 381 EXPECT_EQ(1, callback_count); |
| 382 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); | 382 EXPECT_EQ(1, client.maybe_schedule_next_task_count()); |
| 383 EXPECT_EQ(1, client.task_scheduled_count()); | 383 EXPECT_EQ(1, client.task_scheduled_count()); |
| 384 EXPECT_EQ(0, client.idle_task_scheduled_count()); | 384 EXPECT_EQ(0, client.idle_task_scheduled_count()); |
| 385 } | 385 } |
| 386 | 386 |
| 387 TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) { | 387 TEST(SyncTaskManagerTest, ScheduleAndCancelSyncTask) { |
| 388 base::MessageLoop message_loop; | 388 base::MessageLoop message_loop; |
| 389 | 389 |
| 390 int callback_count = 0; | 390 int callback_count = 0; |
| 391 SyncStatusCode status = SYNC_STATUS_UNKNOWN; | 391 SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
| 392 | 392 |
| 393 bool task_started = false; | 393 bool task_started = false; |
| 394 bool task_completed = false; | 394 bool task_completed = false; |
| 395 | 395 |
| 396 { | 396 { |
| 397 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), | 397 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
| 398 0 /* maximum_background_task */, | 398 0 /* maximum_background_task */, |
| 399 base::ThreadTaskRunnerHandle::Get(), | 399 base::ThreadTaskRunnerHandle::Get(), |
| 400 nullptr /* worker_pool */); | 400 nullptr /* worker_pool */); |
| 401 task_manager.Initialize(SYNC_STATUS_OK); | 401 task_manager.Initialize(SYNC_STATUS_OK); |
| 402 message_loop.RunUntilIdle(); | 402 base::RunLoop().RunUntilIdle(); |
| 403 task_manager.ScheduleSyncTask( | 403 task_manager.ScheduleSyncTask( |
| 404 FROM_HERE, std::unique_ptr<SyncTask>( | 404 FROM_HERE, std::unique_ptr<SyncTask>( |
| 405 new MultihopSyncTask(&task_started, &task_completed)), | 405 new MultihopSyncTask(&task_started, &task_completed)), |
| 406 SyncTaskManager::PRIORITY_MED, | 406 SyncTaskManager::PRIORITY_MED, |
| 407 base::Bind(&IncrementAndAssign, 0, &callback_count, &status)); | 407 base::Bind(&IncrementAndAssign, 0, &callback_count, &status)); |
| 408 } | 408 } |
| 409 message_loop.RunUntilIdle(); | 409 base::RunLoop().RunUntilIdle(); |
| 410 | 410 |
| 411 EXPECT_EQ(0, callback_count); | 411 EXPECT_EQ(0, callback_count); |
| 412 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); | 412 EXPECT_EQ(SYNC_STATUS_UNKNOWN, status); |
| 413 EXPECT_TRUE(task_started); | 413 EXPECT_TRUE(task_started); |
| 414 EXPECT_FALSE(task_completed); | 414 EXPECT_FALSE(task_completed); |
| 415 } | 415 } |
| 416 | 416 |
| 417 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { | 417 TEST(SyncTaskManagerTest, ScheduleTaskAtPriority) { |
| 418 base::MessageLoop message_loop; | 418 base::MessageLoop message_loop; |
| 419 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), | 419 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
| 420 0 /* maximum_background_task */, | 420 0 /* maximum_background_task */, |
| 421 base::ThreadTaskRunnerHandle::Get(), | 421 base::ThreadTaskRunnerHandle::Get(), |
| 422 nullptr /* worker_pool */); | 422 nullptr /* worker_pool */); |
| 423 task_manager.Initialize(SYNC_STATUS_OK); | 423 task_manager.Initialize(SYNC_STATUS_OK); |
| 424 message_loop.RunUntilIdle(); | 424 base::RunLoop().RunUntilIdle(); |
| 425 | 425 |
| 426 int callback_count = 0; | 426 int callback_count = 0; |
| 427 SyncStatusCode callback_status1 = SYNC_STATUS_OK; | 427 SyncStatusCode callback_status1 = SYNC_STATUS_OK; |
| 428 SyncStatusCode callback_status2 = SYNC_STATUS_OK; | 428 SyncStatusCode callback_status2 = SYNC_STATUS_OK; |
| 429 SyncStatusCode callback_status3 = SYNC_STATUS_OK; | 429 SyncStatusCode callback_status3 = SYNC_STATUS_OK; |
| 430 SyncStatusCode callback_status4 = SYNC_STATUS_OK; | 430 SyncStatusCode callback_status4 = SYNC_STATUS_OK; |
| 431 SyncStatusCode callback_status5 = SYNC_STATUS_OK; | 431 SyncStatusCode callback_status5 = SYNC_STATUS_OK; |
| 432 | 432 |
| 433 // This will run first even if its priority is low, since there're no | 433 // This will run first even if its priority is low, since there're no |
| 434 // pending tasks. | 434 // pending tasks. |
| (...skipping 24 matching lines...) Expand all Loading... |
| 459 SyncTaskManager::PRIORITY_MED, | 459 SyncTaskManager::PRIORITY_MED, |
| 460 base::Bind(&IncrementAndAssign, 3, &callback_count, &callback_status4)); | 460 base::Bind(&IncrementAndAssign, 3, &callback_count, &callback_status4)); |
| 461 | 461 |
| 462 // This runs third (expected counter == 2). | 462 // This runs third (expected counter == 2). |
| 463 task_manager.ScheduleTask( | 463 task_manager.ScheduleTask( |
| 464 FROM_HERE, | 464 FROM_HERE, |
| 465 base::Bind(&DumbTask, kStatus5), | 465 base::Bind(&DumbTask, kStatus5), |
| 466 SyncTaskManager::PRIORITY_HIGH, | 466 SyncTaskManager::PRIORITY_HIGH, |
| 467 base::Bind(&IncrementAndAssign, 2, &callback_count, &callback_status5)); | 467 base::Bind(&IncrementAndAssign, 2, &callback_count, &callback_status5)); |
| 468 | 468 |
| 469 message_loop.RunUntilIdle(); | 469 base::RunLoop().RunUntilIdle(); |
| 470 | 470 |
| 471 EXPECT_EQ(kStatus1, callback_status1); | 471 EXPECT_EQ(kStatus1, callback_status1); |
| 472 EXPECT_EQ(kStatus2, callback_status2); | 472 EXPECT_EQ(kStatus2, callback_status2); |
| 473 EXPECT_EQ(kStatus3, callback_status3); | 473 EXPECT_EQ(kStatus3, callback_status3); |
| 474 EXPECT_EQ(kStatus4, callback_status4); | 474 EXPECT_EQ(kStatus4, callback_status4); |
| 475 EXPECT_EQ(kStatus5, callback_status5); | 475 EXPECT_EQ(kStatus5, callback_status5); |
| 476 EXPECT_EQ(5, callback_count); | 476 EXPECT_EQ(5, callback_count); |
| 477 } | 477 } |
| 478 | 478 |
| 479 TEST(SyncTaskManagerTest, BackgroundTask_Sequential) { | 479 TEST(SyncTaskManagerTest, BackgroundTask_Sequential) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 494 task_manager.ScheduleSyncTask( | 494 task_manager.ScheduleSyncTask( |
| 495 FROM_HERE, std::unique_ptr<SyncTask>( | 495 FROM_HERE, std::unique_ptr<SyncTask>( |
| 496 new BackgroundTask("app_id", MAKE_PATH("/hoge"), &stats)), | 496 new BackgroundTask("app_id", MAKE_PATH("/hoge"), &stats)), |
| 497 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 497 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 498 | 498 |
| 499 task_manager.ScheduleSyncTask( | 499 task_manager.ScheduleSyncTask( |
| 500 FROM_HERE, std::unique_ptr<SyncTask>(new BackgroundTask( | 500 FROM_HERE, std::unique_ptr<SyncTask>(new BackgroundTask( |
| 501 "app_id", MAKE_PATH("/hoge/fuga/piyo"), &stats)), | 501 "app_id", MAKE_PATH("/hoge/fuga/piyo"), &stats)), |
| 502 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 502 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 503 | 503 |
| 504 message_loop.RunUntilIdle(); | 504 base::RunLoop().RunUntilIdle(); |
| 505 | 505 |
| 506 EXPECT_EQ(SYNC_STATUS_OK, status); | 506 EXPECT_EQ(SYNC_STATUS_OK, status); |
| 507 EXPECT_EQ(0, stats.running_background_task); | 507 EXPECT_EQ(0, stats.running_background_task); |
| 508 EXPECT_EQ(3, stats.finished_task); | 508 EXPECT_EQ(3, stats.finished_task); |
| 509 EXPECT_EQ(1, stats.max_parallel_task); | 509 EXPECT_EQ(1, stats.max_parallel_task); |
| 510 } | 510 } |
| 511 | 511 |
| 512 TEST(SyncTaskManagerTest, BackgroundTask_Parallel) { | 512 TEST(SyncTaskManagerTest, BackgroundTask_Parallel) { |
| 513 base::MessageLoop message_loop; | 513 base::MessageLoop message_loop; |
| 514 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), | 514 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 527 task_manager.ScheduleSyncTask( | 527 task_manager.ScheduleSyncTask( |
| 528 FROM_HERE, std::unique_ptr<SyncTask>( | 528 FROM_HERE, std::unique_ptr<SyncTask>( |
| 529 new BackgroundTask("app_id", MAKE_PATH("/fuga"), &stats)), | 529 new BackgroundTask("app_id", MAKE_PATH("/fuga"), &stats)), |
| 530 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 530 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 531 | 531 |
| 532 task_manager.ScheduleSyncTask( | 532 task_manager.ScheduleSyncTask( |
| 533 FROM_HERE, std::unique_ptr<SyncTask>( | 533 FROM_HERE, std::unique_ptr<SyncTask>( |
| 534 new BackgroundTask("app_id", MAKE_PATH("/piyo"), &stats)), | 534 new BackgroundTask("app_id", MAKE_PATH("/piyo"), &stats)), |
| 535 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 535 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 536 | 536 |
| 537 message_loop.RunUntilIdle(); | 537 base::RunLoop().RunUntilIdle(); |
| 538 | 538 |
| 539 EXPECT_EQ(SYNC_STATUS_OK, status); | 539 EXPECT_EQ(SYNC_STATUS_OK, status); |
| 540 EXPECT_EQ(0, stats.running_background_task); | 540 EXPECT_EQ(0, stats.running_background_task); |
| 541 EXPECT_EQ(3, stats.finished_task); | 541 EXPECT_EQ(3, stats.finished_task); |
| 542 EXPECT_EQ(3, stats.max_parallel_task); | 542 EXPECT_EQ(3, stats.max_parallel_task); |
| 543 } | 543 } |
| 544 | 544 |
| 545 TEST(SyncTaskManagerTest, BackgroundTask_Throttled) { | 545 TEST(SyncTaskManagerTest, BackgroundTask_Throttled) { |
| 546 base::MessageLoop message_loop; | 546 base::MessageLoop message_loop; |
| 547 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), | 547 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 560 task_manager.ScheduleSyncTask( | 560 task_manager.ScheduleSyncTask( |
| 561 FROM_HERE, std::unique_ptr<SyncTask>( | 561 FROM_HERE, std::unique_ptr<SyncTask>( |
| 562 new BackgroundTask("app_id", MAKE_PATH("/fuga"), &stats)), | 562 new BackgroundTask("app_id", MAKE_PATH("/fuga"), &stats)), |
| 563 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 563 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 564 | 564 |
| 565 task_manager.ScheduleSyncTask( | 565 task_manager.ScheduleSyncTask( |
| 566 FROM_HERE, std::unique_ptr<SyncTask>( | 566 FROM_HERE, std::unique_ptr<SyncTask>( |
| 567 new BackgroundTask("app_id", MAKE_PATH("/piyo"), &stats)), | 567 new BackgroundTask("app_id", MAKE_PATH("/piyo"), &stats)), |
| 568 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); | 568 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status)); |
| 569 | 569 |
| 570 message_loop.RunUntilIdle(); | 570 base::RunLoop().RunUntilIdle(); |
| 571 | 571 |
| 572 EXPECT_EQ(SYNC_STATUS_OK, status); | 572 EXPECT_EQ(SYNC_STATUS_OK, status); |
| 573 EXPECT_EQ(0, stats.running_background_task); | 573 EXPECT_EQ(0, stats.running_background_task); |
| 574 EXPECT_EQ(3, stats.finished_task); | 574 EXPECT_EQ(3, stats.finished_task); |
| 575 EXPECT_EQ(2, stats.max_parallel_task); | 575 EXPECT_EQ(2, stats.max_parallel_task); |
| 576 } | 576 } |
| 577 | 577 |
| 578 TEST(SyncTaskManagerTest, UpdateTaskBlocker) { | 578 TEST(SyncTaskManagerTest, UpdateTaskBlocker) { |
| 579 base::MessageLoop message_loop; | 579 base::MessageLoop message_loop; |
| 580 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), | 580 SyncTaskManager task_manager(base::WeakPtr<SyncTaskManager::Client>(), |
| (...skipping 21 matching lines...) Expand all Loading... |
| 602 std::vector<std::string> paths; | 602 std::vector<std::string> paths; |
| 603 paths.push_back("/foo"); | 603 paths.push_back("/foo"); |
| 604 paths.push_back("/foo/bar"); | 604 paths.push_back("/foo/bar"); |
| 605 paths.push_back("/hoge/fuga/piyo"); | 605 paths.push_back("/hoge/fuga/piyo"); |
| 606 task_manager.ScheduleSyncTask( | 606 task_manager.ScheduleSyncTask( |
| 607 FROM_HERE, std::unique_ptr<SyncTask>(new BlockerUpdateTestHelper( | 607 FROM_HERE, std::unique_ptr<SyncTask>(new BlockerUpdateTestHelper( |
| 608 "task2", "app_id", paths, &log)), | 608 "task2", "app_id", paths, &log)), |
| 609 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status2)); | 609 SyncTaskManager::PRIORITY_MED, CreateResultReceiver(&status2)); |
| 610 } | 610 } |
| 611 | 611 |
| 612 message_loop.RunUntilIdle(); | 612 base::RunLoop().RunUntilIdle(); |
| 613 | 613 |
| 614 EXPECT_EQ(SYNC_STATUS_OK, status1); | 614 EXPECT_EQ(SYNC_STATUS_OK, status1); |
| 615 EXPECT_EQ(SYNC_STATUS_OK, status2); | 615 EXPECT_EQ(SYNC_STATUS_OK, status2); |
| 616 | 616 |
| 617 ASSERT_EQ(14u, log.size()); | 617 ASSERT_EQ(14u, log.size()); |
| 618 int i = 0; | 618 int i = 0; |
| 619 | 619 |
| 620 // task1 takes "/foo/bar" first. | 620 // task1 takes "/foo/bar" first. |
| 621 EXPECT_EQ("task1: updating to /foo/bar", log[i++]); | 621 EXPECT_EQ("task1: updating to /foo/bar", log[i++]); |
| 622 | 622 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 640 | 640 |
| 641 EXPECT_EQ("task1: finished", log[i++]); | 641 EXPECT_EQ("task1: finished", log[i++]); |
| 642 | 642 |
| 643 EXPECT_EQ("task2: updating to /hoge/fuga/piyo", log[i++]); | 643 EXPECT_EQ("task2: updating to /hoge/fuga/piyo", log[i++]); |
| 644 EXPECT_EQ("task2: updated to /hoge/fuga/piyo", log[i++]); | 644 EXPECT_EQ("task2: updated to /hoge/fuga/piyo", log[i++]); |
| 645 EXPECT_EQ("task2: finished", log[i++]); | 645 EXPECT_EQ("task2: finished", log[i++]); |
| 646 } | 646 } |
| 647 | 647 |
| 648 } // namespace drive_backend | 648 } // namespace drive_backend |
| 649 } // namespace sync_file_system | 649 } // namespace sync_file_system |
| OLD | NEW |