diff options
author | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-24 19:32:28 +0000 |
---|---|---|
committer | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-24 19:32:28 +0000 |
commit | 90ce61b5448c93e52a34b71535d86605a4f7f90d (patch) | |
tree | 357c076b80e6bf248511878c8cde5b262466158f /sync/engine/sync_scheduler_unittest.cc | |
parent | 7500c55e2fc2219e50e3b6b40e6c8e3ed3820d20 (diff) | |
download | chromium_src-90ce61b5448c93e52a34b71535d86605a4f7f90d.zip chromium_src-90ce61b5448c93e52a34b71535d86605a4f7f90d.tar.gz chromium_src-90ce61b5448c93e52a34b71535d86605a4f7f90d.tar.bz2 |
[Sync] Convert SyncSessionSnapshot to a copy-able class.
Previously it was an immutable struct that was passed around by making
dynamic allocations and passing pointers. We now just have a class with
only getters and no setters, but support for default copy and assign.
This cleans up some code and makes some future work easier to pass snapshots
around.
BUG=none
TEST=sync_unit_tests
Review URL: http://codereview.chromium.org/10197004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133747 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/engine/sync_scheduler_unittest.cc')
-rw-r--r-- | sync/engine/sync_scheduler_unittest.cc | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/sync/engine/sync_scheduler_unittest.cc b/sync/engine/sync_scheduler_unittest.cc index 45b148a..4488eb2 100644 --- a/sync/engine/sync_scheduler_unittest.cc +++ b/sync/engine/sync_scheduler_unittest.cc @@ -45,7 +45,7 @@ class MockSyncer : public Syncer { // Used when tests want to record syncing activity to examine later. struct SyncShareRecords { std::vector<TimeTicks> times; - std::vector<linked_ptr<SyncSessionSnapshot> > snapshots; + std::vector<SyncSessionSnapshot> snapshots; }; void QuitLoopNow() { @@ -130,7 +130,7 @@ class SyncSchedulerTest : public testing::Test { TimeTicks optimal_next_sync = optimal_start + poll_interval * i; EXPECT_GE(data[i], optimal_next_sync); EXPECT_EQ(GetUpdatesCallerInfo::PERIODIC, - records.snapshots[i]->source.updates_source); + records.snapshots[i].source().updates_source); } } @@ -220,8 +220,7 @@ class BackoffTriggersSyncSchedulerTest : public SyncSchedulerTest { void RecordSyncShareImpl(SyncSession* s, SyncShareRecords* record) { record->times.push_back(TimeTicks::Now()); - record->snapshots.push_back(make_linked_ptr(new SyncSessionSnapshot( - s->TakeSnapshot()))); + record->snapshots.push_back(s->TakeSnapshot()); } ACTION_P(RecordSyncShare, record) { @@ -265,9 +264,9 @@ TEST_F(SyncSchedulerTest, Nudge) { ASSERT_EQ(1U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records.snapshots[0]->source.types)); + records.snapshots[0].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - records.snapshots[0]->source.updates_source); + records.snapshots[0].source().updates_source); Mock::VerifyAndClearExpectations(syncer()); @@ -284,9 +283,9 @@ TEST_F(SyncSchedulerTest, Nudge) { ASSERT_EQ(1U, records2.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records2.snapshots[0]->source.types)); + records2.snapshots[0].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - records2.snapshots[0]->source.updates_source); + records2.snapshots[0].source().updates_source); } // Make sure a regular config command is scheduled fine in the absence of any @@ -308,9 +307,9 @@ TEST_F(SyncSchedulerTest, Config) { ASSERT_EQ(1U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records.snapshots[0]->source.types)); + records.snapshots[0].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::RECONFIGURATION, - records.snapshots[0]->source.updates_source); + records.snapshots[0].source().updates_source); } // Simulate a failure and make sure the config request is retried. @@ -340,9 +339,9 @@ TEST_F(SyncSchedulerTest, ConfigWithBackingOff) { ASSERT_EQ(2U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records.snapshots[1]->source.types)); + records.snapshots[1].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::RECONFIGURATION, - records.snapshots[1]->source.updates_source); + records.snapshots[1].source().updates_source); } // Issue 2 config commands. Second one right after the first has failed @@ -382,9 +381,9 @@ TEST_F(SyncSchedulerTest, MultipleConfigWithBackingOff) { ASSERT_EQ(3U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types2, - records.snapshots[2]->source.types)); + records.snapshots[2].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::RECONFIGURATION, - records.snapshots[2]->source.updates_source); + records.snapshots[2].source().updates_source); } // Issue a nudge when the config has failed. Make sure both the config and @@ -430,14 +429,14 @@ TEST_F(SyncSchedulerTest, NudgeWithConfigWithBackingOff) { ASSERT_EQ(4U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records.snapshots[2]->source.types)); + records.snapshots[2].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::RECONFIGURATION, - records.snapshots[2]->source.updates_source); + records.snapshots[2].source().updates_source); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(model_types, - records.snapshots[3]->source.types)); + records.snapshots[3].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - records.snapshots[3]->source.updates_source); + records.snapshots[3].source().updates_source); } @@ -465,9 +464,9 @@ TEST_F(SyncSchedulerTest, NudgeCoalescing) { ASSERT_EQ(1U, r.snapshots.size()); EXPECT_GE(r.times[0], optimal_time); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap( - Union(types1, types2), r.snapshots[0]->source.types)); + Union(types1, types2), r.snapshots[0].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - r.snapshots[0]->source.updates_source); + r.snapshots[0].source().updates_source); Mock::VerifyAndClearExpectations(syncer()); @@ -481,9 +480,9 @@ TEST_F(SyncSchedulerTest, NudgeCoalescing) { ASSERT_EQ(1U, r2.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(types3, - r2.snapshots[0]->source.types)); + r2.snapshots[0].source().types)); EXPECT_EQ(GetUpdatesCallerInfo::NOTIFICATION, - r2.snapshots[0]->source.updates_source); + r2.snapshots[0].source().updates_source); } // Test that nudges are coalesced. @@ -515,7 +514,7 @@ TEST_F(SyncSchedulerTest, NudgeCoalescingWithDifferentTimings) { // Make sure the sync has happened. ASSERT_EQ(1U, r.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap( - Union(types1, types2), r.snapshots[0]->source.types)); + Union(types1, types2), r.snapshots[0].source().types)); // Make sure the sync happened at the right time. EXPECT_GE(r.times[0], min_time); @@ -540,9 +539,9 @@ TEST_F(SyncSchedulerTest, NudgeWithPayloads) { RunLoop(); ASSERT_EQ(1U, records.snapshots.size()); - EXPECT_EQ(model_types_with_payloads, records.snapshots[0]->source.types); + EXPECT_EQ(model_types_with_payloads, records.snapshots[0].source().types); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - records.snapshots[0]->source.updates_source); + records.snapshots[0].source().updates_source); Mock::VerifyAndClearExpectations(syncer()); @@ -558,9 +557,9 @@ TEST_F(SyncSchedulerTest, NudgeWithPayloads) { RunLoop(); ASSERT_EQ(1U, records2.snapshots.size()); - EXPECT_EQ(model_types_with_payloads, records2.snapshots[0]->source.types); + EXPECT_EQ(model_types_with_payloads, records2.snapshots[0].source().types); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - records2.snapshots[0]->source.updates_source); + records2.snapshots[0].source().updates_source); } // Test that nudges are coalesced. @@ -589,9 +588,9 @@ TEST_F(SyncSchedulerTest, NudgeWithPayloadsCoalescing) { syncable::ModelTypePayloadMap coalesced_types; syncable::CoalescePayloads(&coalesced_types, types1); syncable::CoalescePayloads(&coalesced_types, types2); - EXPECT_EQ(coalesced_types, r.snapshots[0]->source.types); + EXPECT_EQ(coalesced_types, r.snapshots[0].source().types); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - r.snapshots[0]->source.updates_source); + r.snapshots[0].source().updates_source); Mock::VerifyAndClearExpectations(syncer()); @@ -604,9 +603,9 @@ TEST_F(SyncSchedulerTest, NudgeWithPayloadsCoalescing) { RunLoop(); ASSERT_EQ(1U, r2.snapshots.size()); - EXPECT_EQ(types3, r2.snapshots[0]->source.types); + EXPECT_EQ(types3, r2.snapshots[0].source().types); EXPECT_EQ(GetUpdatesCallerInfo::NOTIFICATION, - r2.snapshots[0]->source.updates_source); + r2.snapshots[0].source().updates_source); } // Test that polling works as expected. @@ -799,7 +798,7 @@ TEST_F(SyncSchedulerTest, ConfigurationMode) { ASSERT_EQ(1U, records.snapshots.size()); EXPECT_TRUE(CompareModelTypeSetToModelTypePayloadMap(config_types, - records.snapshots[0]->source.types)); + records.snapshots[0].source().types)); } // Have the sycner fail during commit. Expect that the scheduler enters @@ -866,7 +865,8 @@ TEST_F(SyncSchedulerTest, BackoffDropsJobs) { Mock::VerifyAndClearExpectations(syncer()); ASSERT_EQ(1U, r.snapshots.size()); - EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, r.snapshots[0]->source.updates_source); + EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, + r.snapshots[0].source().updates_source); EXPECT_CALL(*syncer(), SyncShare(_,_,_)).Times(1) .WillOnce(DoAll(Invoke(sessions::test_util::SimulateCommitFailed), @@ -880,7 +880,8 @@ TEST_F(SyncSchedulerTest, BackoffDropsJobs) { Mock::VerifyAndClearExpectations(syncer()); Mock::VerifyAndClearExpectations(delay()); ASSERT_EQ(2U, r.snapshots.size()); - EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, r.snapshots[1]->source.updates_source); + EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, + r.snapshots[1].source().updates_source); EXPECT_CALL(*syncer(), SyncShare(_,_,_)).Times(0); EXPECT_CALL(*delay(), GetDelay(_)).Times(0); @@ -977,20 +978,20 @@ TEST_F(SyncSchedulerTest, BackoffRelief) { TimeTicks optimal_job_time = optimal_start; EXPECT_GE(r.times[0], optimal_job_time); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - r.snapshots[0]->source.updates_source); + r.snapshots[0].source().updates_source); // It was followed by a successful retry nudge shortly afterward. optimal_job_time = optimal_job_time + backoff; EXPECT_GE(r.times[1], optimal_job_time); EXPECT_EQ(GetUpdatesCallerInfo::LOCAL, - r.snapshots[1]->source.updates_source); + r.snapshots[1].source().updates_source); // After that, we went back to polling. for (size_t i = 2; i < r.snapshots.size(); i++) { optimal_job_time = optimal_job_time + poll; SCOPED_TRACE(testing::Message() << "SyncShare # (" << i << ")"); EXPECT_GE(r.times[i], optimal_job_time); EXPECT_EQ(GetUpdatesCallerInfo::PERIODIC, - r.snapshots[i]->source.updates_source); + r.snapshots[i].source().updates_source); } } |