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

Unified Diff: sync/engine/syncer_unittest.cc

Issue 1273303002: Measuring data use of different ModelTypes in Sync Service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@NewServices
Patch Set: Changing the initialization of vectors in syncer_unittest.cc Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/engine/process_updates_util.cc ('k') | sync/sync.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/engine/syncer_unittest.cc
diff --git a/sync/engine/syncer_unittest.cc b/sync/engine/syncer_unittest.cc
index dcd326e8c887888ddab0eb867fafb20be8a07bcb..c630fe4aa38db8fdb885786594590d0198858682 100644
--- a/sync/engine/syncer_unittest.cc
+++ b/sync/engine/syncer_unittest.cc
@@ -20,6 +20,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
+#include "base/test/histogram_tester.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "sync/engine/backoff_delay_provider.h"
@@ -666,6 +667,115 @@ TEST_F(SyncerTest, GetCommitIdsFiltersThrottledEntries) {
}
}
+// This test has three steps. In the first step, a BOOKMARK update is received.
+// In the next step, syncing BOOKMARKS is disabled, so no BOOKMARK is sent or
+// received. In the last step, a BOOKMARK update is committed.
+TEST_F(SyncerTest, DataUseHistogramsTest) {
+ base::HistogramTester histogram_tester;
+ sync_pb::EntitySpecifics bookmark_data;
+ AddDefaultFieldValue(BOOKMARKS, &bookmark_data);
+
+ mock_server_->AddUpdateDirectory(1, 0, "A", 10, 10, foreign_cache_guid(),
+ "-1");
+ int download_bytes_bookmark = 0;
+ vector<unsigned int> progress_bookmark(3, 0);
+ vector<unsigned int> progress_all(3, 0);
+ vector<base::Bucket> samples;
+ EXPECT_TRUE(SyncShareNudge());
+ {
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Upload.Count", 0);
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Upload.Bytes", 0);
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Download.Count", 1);
+ histogram_tester.ExpectUniqueSample("DataUse.Sync.Download.Count",
+ BOOKMARKS, 1);
+ samples = histogram_tester.GetAllSamples("DataUse.Sync.Download.Bytes");
+ EXPECT_EQ(samples.size(), 1u);
+ EXPECT_EQ(samples.at(0).min, BOOKMARKS);
+ EXPECT_GE(samples.at(0).count, 0);
+ download_bytes_bookmark = samples.at(0).count;
+
+ samples =
+ histogram_tester.GetAllSamples("DataUse.Sync.ProgressMarker.Bytes");
+
+ for (const base::Bucket& bucket : samples) {
+ if (bucket.min == BOOKMARKS)
+ progress_bookmark.at(0) += bucket.count;
+ progress_all.at(0) += bucket.count;
+ }
+ EXPECT_GT(progress_bookmark.at(0), 0u);
+ EXPECT_GT(progress_all.at(0), 0u);
+
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
+ MutableEntry A(&wtrans, GET_BY_ID, ids_.FromNumber(1));
+ A.PutIsUnsynced(true);
+ A.PutSpecifics(bookmark_data);
+ A.PutNonUniqueName("bookmark");
+ }
+
+ // Now sync without enabling bookmarks.
+ mock_server_->ExpectGetUpdatesRequestTypes(
+ Difference(context_->GetEnabledTypes(), ModelTypeSet(BOOKMARKS)));
+ ResetSession();
+ syncer_->NormalSyncShare(
+ Difference(context_->GetEnabledTypes(), ModelTypeSet(BOOKMARKS)),
+ &nudge_tracker_, session_.get());
+
+ {
+ // Nothing should have been committed as bookmarks is throttled.
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Upload.Count", 0);
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Upload.Bytes", 0);
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Download.Count", 1);
+ histogram_tester.ExpectUniqueSample("DataUse.Sync.Download.Count",
+ BOOKMARKS, 1);
+
+ samples = histogram_tester.GetAllSamples("DataUse.Sync.Download.Bytes");
+ EXPECT_EQ(samples.size(), 1u);
+ EXPECT_EQ(samples.at(0).min, BOOKMARKS);
+ EXPECT_EQ(samples.at(0).count, download_bytes_bookmark);
+
+ samples =
+ histogram_tester.GetAllSamples("DataUse.Sync.ProgressMarker.Bytes");
+ for (const base::Bucket& bucket : samples) {
+ if (bucket.min == BOOKMARKS)
+ progress_bookmark.at(1) += bucket.count;
+ progress_all.at(1) += bucket.count;
+ }
+ EXPECT_EQ(progress_bookmark.at(1), progress_bookmark.at(0));
+ EXPECT_GT(progress_all.at(1), progress_all.at(0));
+ }
+
+ // Sync again with bookmarks enabled.
+ mock_server_->ExpectGetUpdatesRequestTypes(context_->GetEnabledTypes());
+ EXPECT_TRUE(SyncShareNudge());
+ {
+ // It should have been committed.
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Upload.Count", 1);
+ histogram_tester.ExpectUniqueSample("DataUse.Sync.Upload.Count", BOOKMARKS,
+ 1);
+ samples = histogram_tester.GetAllSamples("DataUse.Sync.Upload.Bytes");
+ EXPECT_EQ(samples.size(), 1u);
+ EXPECT_EQ(samples.at(0).min, BOOKMARKS);
+ EXPECT_GE(samples.at(0).count, 0);
+
+ samples = histogram_tester.GetAllSamples("DataUse.Sync.Download.Bytes");
+ EXPECT_EQ(samples.size(), 1u);
+ EXPECT_EQ(samples.at(0).min, BOOKMARKS);
+ EXPECT_EQ(samples.at(0).count, download_bytes_bookmark);
+
+ histogram_tester.ExpectTotalCount("DataUse.Sync.Download.Count", 1);
+
+ samples =
+ histogram_tester.GetAllSamples("DataUse.Sync.ProgressMarker.Bytes");
+ for (const base::Bucket& bucket : samples) {
+ if (bucket.min == BOOKMARKS)
+ progress_bookmark.at(2) += bucket.count;
+ progress_all.at(2) += bucket.count;
+ }
+ EXPECT_GT(progress_bookmark.at(2), progress_bookmark.at(1));
+ EXPECT_GT(progress_all.at(2), progress_all.at(1));
+ }
+}
+
// We use a macro so we can preserve the error location.
#define VERIFY_ENTRY(id, is_unapplied, is_unsynced, prev_initialized, \
parent_id, version, server_version, id_fac, rtrans) \
« no previous file with comments | « sync/engine/process_updates_util.cc ('k') | sync/sync.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698