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

Unified Diff: base/metrics/bucket_ranges_unittest.cc

Issue 10809076: Move CachedRanges out and add support for checksum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 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 | « base/metrics/bucket_ranges.cc ('k') | base/metrics/histogram.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/bucket_ranges_unittest.cc
===================================================================
--- base/metrics/bucket_ranges_unittest.cc (revision 0)
+++ base/metrics/bucket_ranges_unittest.cc (working copy)
@@ -0,0 +1,75 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/metrics/bucket_ranges.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+namespace {
+
+TEST(BucketRangesTest, NormalSetup) {
+ BucketRanges ranges(5);
+ ASSERT_EQ(5u, ranges.size());
+
+ for (int i = 0; i < 5; i++) {
+ EXPECT_EQ(0, ranges.range(i));
+ }
+ EXPECT_EQ(0u, ranges.checksum());
+
+ ranges.set_range(3, 100);
+ EXPECT_EQ(100, ranges.range(3));
+}
+
+TEST(BucketRangesTest, Equals) {
+ // Compare empty ranges.
+ BucketRanges ranges1(3);
+ BucketRanges ranges2(3);
+ BucketRanges ranges3(5);
+
+ EXPECT_TRUE(ranges1.Equals(&ranges2));
+ EXPECT_FALSE(ranges1.Equals(&ranges3));
+ EXPECT_FALSE(ranges2.Equals(&ranges3));
+
+ // Compare full filled ranges.
+ ranges1.set_range(0, 0);
+ ranges1.set_range(1, 1);
+ ranges1.set_range(2, 2);
+ ranges1.set_checksum(100);
+ ranges2.set_range(0, 0);
+ ranges2.set_range(1, 1);
+ ranges2.set_range(2, 2);
+ ranges2.set_checksum(100);
+
+ EXPECT_TRUE(ranges1.Equals(&ranges2));
+
+ // Checksum does not match.
+ ranges1.set_checksum(99);
+ EXPECT_FALSE(ranges1.Equals(&ranges2));
+ ranges1.set_checksum(100);
+
+ // Range does not match.
+ ranges1.set_range(1, 3);
+ EXPECT_FALSE(ranges1.Equals(&ranges2));
+}
+
+TEST(BucketRangesTest, Checksum) {
+ BucketRanges ranges(3);
+ ranges.set_range(0, 0);
+ ranges.set_range(1, 1);
+ ranges.set_range(2, 2);
+
+ ranges.ResetChecksum();
+ EXPECT_EQ(289217253u, ranges.checksum());
+
+ ranges.set_range(2, 3);
+ EXPECT_FALSE(ranges.HasValidChecksum());
+
+ ranges.ResetChecksum();
+ EXPECT_EQ(2843835776u, ranges.checksum());
+ EXPECT_TRUE(ranges.HasValidChecksum());
+}
+
+} // namespace
+} // namespace base
« no previous file with comments | « base/metrics/bucket_ranges.cc ('k') | base/metrics/histogram.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698