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

Side by Side Diff: chrome/test/live_sync/performance/autofill_sync_perf_test.cc

Issue 7536001: Re-land: Allow sync integration tests to operate on multiple datatypes: Autofill (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on trunk (once again) Created 9 years, 4 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/stringprintf.h" 5 #include "base/stringprintf.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/autofill/autofill_common_test.h" 7 #include "chrome/browser/autofill/autofill_common_test.h"
8 #include "chrome/browser/sync/profile_sync_service_harness.h" 8 #include "chrome/browser/sync/profile_sync_service_harness.h"
9 #include "chrome/test/live_sync/live_autofill_sync_test.h" 9 #include "chrome/test/live_sync/autofill_helper.h"
10 #include "chrome/test/live_sync/live_sync_test.h"
10 #include "chrome/test/live_sync/performance/sync_timing_helper.h" 11 #include "chrome/test/live_sync/performance/sync_timing_helper.h"
11 12
12 // TODO(braffert): Move kNumBenchmarkPoints and kBenchmarkPoints for all 13 // TODO(braffert): Move kNumBenchmarkPoints and kBenchmarkPoints for all
13 // datatypes into a performance test base class, once it is possible to do so. 14 // datatypes into a performance test base class, once it is possible to do so.
14 static const int kNumProfiles = 150; 15 static const int kNumProfiles = 150;
15 static const int kNumBenchmarkPoints = 18; 16 static const int kNumBenchmarkPoints = 18;
16 static const int kBenchmarkPoints[] = {1, 10, 20, 30, 40, 50, 75, 100, 125, 17 static const int kBenchmarkPoints[] = {1, 10, 20, 30, 40, 50, 75, 100, 125,
17 150, 175, 200, 225, 250, 300, 350, 400, 18 150, 175, 200, 225, 250, 300, 350, 400,
18 500}; 19 500};
19 20
20 class AutofillSyncPerfTest : public TwoClientLiveAutofillSyncTest { 21 class AutofillSyncPerfTest : public LiveSyncTest {
21 public: 22 public:
22 AutofillSyncPerfTest() : guid_number_(0), name_number_(0) {} 23 AutofillSyncPerfTest()
24 : LiveSyncTest(TWO_CLIENT),
25 guid_number_(0),
26 name_number_(0) {}
23 27
24 // Adds |num_profiles| new autofill profiles to the sync profile |profile|. 28 // Adds |num_profiles| new autofill profiles to the sync profile |profile|.
25 void AddProfiles(int profile, int num_profiles); 29 void AddProfiles(int profile, int num_profiles);
26 30
27 // Updates all autofill profiles for the sync profile |profile|. 31 // Updates all autofill profiles for the sync profile |profile|.
28 void UpdateProfiles(int profile); 32 void UpdateProfiles(int profile);
29 33
30 // Removes all bookmarks in the bookmark bar for |profile|. 34 // Removes all bookmarks in the bookmark bar for |profile|.
31 void RemoveProfiles(int profile); 35 void RemoveProfiles(int profile);
32 36
(...skipping 15 matching lines...) Expand all
48 const std::string NextName(); 52 const std::string NextName();
49 53
50 // Returns a unique name based on the input integer |n|. 54 // Returns a unique name based on the input integer |n|.
51 const std::string IntToName(int n); 55 const std::string IntToName(int n);
52 56
53 int guid_number_; 57 int guid_number_;
54 int name_number_; 58 int name_number_;
55 DISALLOW_COPY_AND_ASSIGN(AutofillSyncPerfTest); 59 DISALLOW_COPY_AND_ASSIGN(AutofillSyncPerfTest);
56 }; 60 };
57 61
58 void AutofillSyncPerfTest::AddProfiles(int profile, 62 void AutofillSyncPerfTest::AddProfiles(int profile, int num_profiles) {
59 int num_profiles) { 63 const std::vector<AutofillProfile*>& all_profiles =
60 const std::vector<AutofillProfile*>& all_profiles = GetAllProfiles(profile); 64 AutofillHelper::GetAllProfiles(profile);
61 std::vector<AutofillProfile> autofill_profiles; 65 std::vector<AutofillProfile> autofill_profiles;
62 for (size_t i = 0; i < all_profiles.size(); ++i) { 66 for (size_t i = 0; i < all_profiles.size(); ++i) {
63 autofill_profiles.push_back(*all_profiles[i]); 67 autofill_profiles.push_back(*all_profiles[i]);
64 } 68 }
65 for (int i = 0; i < num_profiles; ++i) { 69 for (int i = 0; i < num_profiles; ++i) {
66 autofill_profiles.push_back(NextAutofillProfile()); 70 autofill_profiles.push_back(NextAutofillProfile());
67 } 71 }
68 SetProfiles(profile, &autofill_profiles); 72 AutofillHelper::SetProfiles(profile, &autofill_profiles);
69 } 73 }
70 74
71 void AutofillSyncPerfTest::UpdateProfiles(int profile) { 75 void AutofillSyncPerfTest::UpdateProfiles(int profile) {
72 const std::vector<AutofillProfile*>& all_profiles = GetAllProfiles(profile); 76 const std::vector<AutofillProfile*>& all_profiles =
77 AutofillHelper::GetAllProfiles(profile);
73 std::vector<AutofillProfile> autofill_profiles; 78 std::vector<AutofillProfile> autofill_profiles;
74 for (size_t i = 0; i < all_profiles.size(); ++i) { 79 for (size_t i = 0; i < all_profiles.size(); ++i) {
75 autofill_profiles.push_back(*all_profiles[i]); 80 autofill_profiles.push_back(*all_profiles[i]);
76 autofill_profiles.back().SetInfo(AutofillFieldType(NAME_FIRST), 81 autofill_profiles.back().SetInfo(AutofillFieldType(NAME_FIRST),
77 UTF8ToUTF16(NextName())); 82 UTF8ToUTF16(NextName()));
78 } 83 }
79 SetProfiles(profile, &autofill_profiles); 84 AutofillHelper::SetProfiles(profile, &autofill_profiles);
80 } 85 }
81 86
82 void AutofillSyncPerfTest::RemoveProfiles(int profile) { 87 void AutofillSyncPerfTest::RemoveProfiles(int profile) {
83 std::vector<AutofillProfile> empty; 88 std::vector<AutofillProfile> empty;
84 SetProfiles(profile, &empty); 89 AutofillHelper::SetProfiles(profile, &empty);
85 } 90 }
86 91
87 void AutofillSyncPerfTest::Cleanup() { 92 void AutofillSyncPerfTest::Cleanup() {
88 for (int i = 0; i < num_clients(); ++i) { 93 for (int i = 0; i < num_clients(); ++i) {
89 RemoveProfiles(i); 94 RemoveProfiles(i);
90 } 95 }
91 ASSERT_TRUE(AwaitQuiescence()); 96 ASSERT_TRUE(AwaitQuiescence());
92 } 97 }
93 98
94 const AutofillProfile AutofillSyncPerfTest::NextAutofillProfile() { 99 const AutofillProfile AutofillSyncPerfTest::NextAutofillProfile() {
(...skipping 20 matching lines...) Expand all
115 return StringPrintf("Name%d" , n); 120 return StringPrintf("Name%d" , n);
116 } 121 }
117 122
118 IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, P0) { 123 IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, P0) {
119 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 124 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
120 125
121 // TCM ID - 7557873. 126 // TCM ID - 7557873.
122 AddProfiles(0, kNumProfiles); 127 AddProfiles(0, kNumProfiles);
123 base::TimeDelta dt = 128 base::TimeDelta dt =
124 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 129 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
125 ASSERT_EQ(kNumProfiles, GetProfileCount(1)); 130 ASSERT_EQ(kNumProfiles, AutofillHelper::GetProfileCount(1));
126 SyncTimingHelper::PrintResult("autofill", "add", dt); 131 SyncTimingHelper::PrintResult("autofill", "add", dt);
127 132
128 // TCM ID - 7549835. 133 // TCM ID - 7549835.
129 UpdateProfiles(0); 134 UpdateProfiles(0);
130 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 135 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
131 ASSERT_EQ(kNumProfiles, GetProfileCount(1)); 136 ASSERT_EQ(kNumProfiles, AutofillHelper::GetProfileCount(1));
132 SyncTimingHelper::PrintResult("autofill", "update", dt); 137 SyncTimingHelper::PrintResult("autofill", "update", dt);
133 138
134 // TCM ID - 7553678. 139 // TCM ID - 7553678.
135 RemoveProfiles(0); 140 RemoveProfiles(0);
136 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 141 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
137 ASSERT_EQ(0, GetProfileCount(1)); 142 ASSERT_EQ(0, AutofillHelper::GetProfileCount(1));
138 SyncTimingHelper::PrintResult("autofill", "delete", dt); 143 SyncTimingHelper::PrintResult("autofill", "delete", dt);
139 } 144 }
140 145
141 IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, DISABLED_Benchmark) { 146 IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, DISABLED_Benchmark) {
142 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 147 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
143 148
144 for (int i = 0; i < kNumBenchmarkPoints; ++i) { 149 for (int i = 0; i < kNumBenchmarkPoints; ++i) {
145 int num_profiles = kBenchmarkPoints[i]; 150 int num_profiles = kBenchmarkPoints[i];
146 AddProfiles(0, num_profiles); 151 AddProfiles(0, num_profiles);
147 base::TimeDelta dt_add = 152 base::TimeDelta dt_add =
148 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 153 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
149 ASSERT_EQ(num_profiles, GetProfileCount(0)); 154 ASSERT_EQ(num_profiles, AutofillHelper::GetProfileCount(0));
150 ASSERT_TRUE(AllProfilesMatch()); 155 ASSERT_TRUE(AutofillHelper::AllProfilesMatch());
151 VLOG(0) << std::endl << "Add: " << num_profiles << " " 156 VLOG(0) << std::endl << "Add: " << num_profiles << " "
152 << dt_add.InSecondsF(); 157 << dt_add.InSecondsF();
153 158
154 UpdateProfiles(0); 159 UpdateProfiles(0);
155 base::TimeDelta dt_update = 160 base::TimeDelta dt_update =
156 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 161 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
157 ASSERT_EQ(num_profiles, GetProfileCount(0)); 162 ASSERT_EQ(num_profiles, AutofillHelper::GetProfileCount(0));
158 ASSERT_TRUE(AllProfilesMatch()); 163 ASSERT_TRUE(AutofillHelper::AllProfilesMatch());
159 VLOG(0) << std::endl << "Update: " << num_profiles << " " 164 VLOG(0) << std::endl << "Update: " << num_profiles << " "
160 << dt_update.InSecondsF(); 165 << dt_update.InSecondsF();
161 166
162 RemoveProfiles(0); 167 RemoveProfiles(0);
163 base::TimeDelta dt_delete = 168 base::TimeDelta dt_delete =
164 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); 169 SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
165 ASSERT_EQ(0, GetProfileCount(0)); 170 ASSERT_EQ(0, AutofillHelper::GetProfileCount(0));
166 ASSERT_TRUE(AllProfilesMatch()); 171 ASSERT_TRUE(AutofillHelper::AllProfilesMatch());
167 VLOG(0) << std::endl << "Delete: " << num_profiles << " " 172 VLOG(0) << std::endl << "Delete: " << num_profiles << " "
168 << dt_delete.InSecondsF(); 173 << dt_delete.InSecondsF();
169 174
170 Cleanup(); 175 Cleanup();
171 } 176 }
172 } 177 }
OLDNEW
« no previous file with comments | « chrome/test/live_sync/live_autofill_sync_test.cc ('k') | chrome/test/live_sync/two_client_autofill_sync_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698