Index: chrome/test/live_sync/performance/autofill_sync_perf_test.cc |
diff --git a/chrome/test/live_sync/performance/autofill_sync_perf_test.cc b/chrome/test/live_sync/performance/autofill_sync_perf_test.cc |
index ef86742ddfd2de954a00e236ee9fc851ca52a4ba..62df13167168a65c3c17aeacaec418029bd823d6 100644 |
--- a/chrome/test/live_sync/performance/autofill_sync_perf_test.cc |
+++ b/chrome/test/live_sync/performance/autofill_sync_perf_test.cc |
@@ -7,17 +7,22 @@ |
#include "chrome/browser/autofill/autofill_common_test.h" |
#include "chrome/browser/autofill/autofill_profile.h" |
#include "chrome/browser/sync/profile_sync_service_harness.h" |
+#include "chrome/browser/webdata/autofill_entry.h" |
#include "chrome/test/live_sync/autofill_helper.h" |
#include "chrome/test/live_sync/live_sync_test.h" |
#include "chrome/test/live_sync/performance/sync_timing_helper.h" |
using autofill_helper::AllProfilesMatch; |
+using autofill_helper::GetAllKeys; |
using autofill_helper::GetAllProfiles; |
+using autofill_helper::GetKeyCount; |
using autofill_helper::GetProfileCount; |
+using autofill_helper::RemoveKey; |
using autofill_helper::SetProfiles; |
// TODO(braffert): Move kNumBenchmarkPoints and kBenchmarkPoints for all |
// datatypes into a performance test base class, once it is possible to do so. |
+static const int kNumKeys = 150; |
static const int kNumProfiles = 150; |
static const int kNumBenchmarkPoints = 18; |
static const int kBenchmarkPoints[] = {1, 10, 20, 30, 40, 50, 75, 100, 125, |
@@ -29,7 +34,8 @@ class AutofillSyncPerfTest : public LiveSyncTest { |
AutofillSyncPerfTest() |
: LiveSyncTest(TWO_CLIENT), |
guid_number_(0), |
- name_number_(0) {} |
+ name_number_(0), |
+ value_number_(0) {} |
// Adds |num_profiles| new autofill profiles to the sync profile |profile|. |
void AddProfiles(int profile, int num_profiles); |
@@ -37,9 +43,15 @@ class AutofillSyncPerfTest : public LiveSyncTest { |
// Updates all autofill profiles for the sync profile |profile|. |
void UpdateProfiles(int profile); |
- // Removes all bookmarks in the bookmark bar for |profile|. |
+ // Removes all autofill profiles from |profile|. |
void RemoveProfiles(int profile); |
+ // Adds |num_keys| new autofill keys to the sync profile |profile|. |
+ void AddKeys(int profile, int num_keys); |
+ |
+ // Removes all autofill keys from |profile|. |
+ void RemoveKeys(int profile); |
+ |
// Removes all autofill profiles in all sync profiles. Called between |
// benchmark iterations. |
void Cleanup(); |
@@ -48,6 +60,9 @@ class AutofillSyncPerfTest : public LiveSyncTest { |
// Returns a new unique autofill profile. |
const AutofillProfile NextAutofillProfile(); |
+ // Returns a new unique autofill key. |
+ const AutofillKey NextAutofillKey(); |
+ |
// Returns an unused unique guid. |
const std::string NextGUID(); |
@@ -60,8 +75,15 @@ class AutofillSyncPerfTest : public LiveSyncTest { |
// Returns a unique name based on the input integer |n|. |
const std::string IntToName(int n); |
+ // Returns a new unused unique value for autofill entries. |
+ const std::string NextValue(); |
+ |
+ // Returnes a unique value based on the input integer |n|. |
+ const std::string IntToValue(int n); |
+ |
int guid_number_; |
int name_number_; |
+ int value_number_; |
DISALLOW_COPY_AND_ASSIGN(AutofillSyncPerfTest); |
}; |
@@ -95,6 +117,22 @@ void AutofillSyncPerfTest::RemoveProfiles(int profile) { |
SetProfiles(profile, &empty); |
} |
+void AutofillSyncPerfTest::AddKeys(int profile, int num_keys) { |
+ std::set<AutofillKey> keys; |
+ for (int i = 0; i < num_keys; ++i) { |
+ keys.insert(NextAutofillKey()); |
+ } |
+ autofill_helper::AddKeys(profile, keys); |
+} |
+ |
+void AutofillSyncPerfTest::RemoveKeys(int profile) { |
+ std::set<AutofillEntry> keys = GetAllKeys(profile); |
+ for (std::set<AutofillEntry>::const_iterator it = keys.begin(); |
+ it != keys.end(); ++it) { |
+ RemoveKey(profile, it->key()); |
+ } |
+} |
+ |
void AutofillSyncPerfTest::Cleanup() { |
for (int i = 0; i < num_clients(); ++i) { |
RemoveProfiles(i); |
@@ -110,6 +148,10 @@ const AutofillProfile AutofillSyncPerfTest::NextAutofillProfile() { |
return profile; |
} |
+const AutofillKey AutofillSyncPerfTest::NextAutofillKey() { |
+ return AutofillKey(NextName().c_str(), NextName().c_str()); |
+} |
+ |
const std::string AutofillSyncPerfTest::NextGUID() { |
return IntToGUID(guid_number_++); |
} |
@@ -123,10 +165,18 @@ const std::string AutofillSyncPerfTest::NextName() { |
} |
const std::string AutofillSyncPerfTest::IntToName(int n) { |
- return StringPrintf("Name%d" , n); |
+ return StringPrintf("Name%d", n); |
} |
-IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, P0) { |
+const std::string AutofillSyncPerfTest::NextValue() { |
+ return IntToValue(value_number_++); |
+} |
+ |
+const std::string AutofillSyncPerfTest::IntToValue(int n) { |
+ return StringPrintf("Value%d", n); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, AutofillProfiles_P0) { |
ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
// TCM ID - 7557873. |
@@ -134,19 +184,34 @@ IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, P0) { |
base::TimeDelta dt = |
SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); |
ASSERT_EQ(kNumProfiles, GetProfileCount(1)); |
- SyncTimingHelper::PrintResult("autofill", "add", dt); |
+ SyncTimingHelper::PrintResult("autofill", "add_autofill_profiles", dt); |
// TCM ID - 7549835. |
UpdateProfiles(0); |
dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); |
ASSERT_EQ(kNumProfiles, GetProfileCount(1)); |
- SyncTimingHelper::PrintResult("autofill", "update", dt); |
+ SyncTimingHelper::PrintResult("autofill", "update_autofill_profiles", dt); |
// TCM ID - 7553678. |
RemoveProfiles(0); |
dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); |
ASSERT_EQ(0, GetProfileCount(1)); |
- SyncTimingHelper::PrintResult("autofill", "delete", dt); |
+ SyncTimingHelper::PrintResult("autofill", "delete_autofill_profiles", dt); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, Autofill_P0) { |
+ ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
+ |
+ AddKeys(0, kNumKeys); |
+ base::TimeDelta dt = |
+ SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); |
+ ASSERT_EQ(kNumKeys, GetKeyCount(1)); |
+ SyncTimingHelper::PrintResult("autofill", "add_autofill_keys", dt); |
+ |
+ RemoveKeys(0); |
+ dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1)); |
+ ASSERT_EQ(0, GetKeyCount(1)); |
+ SyncTimingHelper::PrintResult("autofill", "delete_autofill_keys", dt); |
} |
IN_PROC_BROWSER_TEST_F(AutofillSyncPerfTest, DISABLED_Benchmark) { |