summaryrefslogtreecommitdiff
path: root/base/metrics/sample_map_unittest.cc
diff options
context:
space:
mode:
authorAlex Vakulenko <avakulenko@google.com>2016-03-17 10:36:19 -0700
committerAlex Vakulenko <avakulenko@google.com>2016-03-21 08:28:30 -0700
commit45779228f8c9e40851cfd23f727e2bd8ffdd4714 (patch)
tree6673daa05f208c2d2f2f1ad7e14f6c7a2d1e85ce /base/metrics/sample_map_unittest.cc
parent1a84f3b092fffe0c515acad230c10131a66cfd0e (diff)
downloadlibchrome-45779228f8c9e40851cfd23f727e2bd8ffdd4714.tar.gz
Update libchrome to r381699
TEST=Build all Change-Id: I962a83a044a102515c316d04bb65e7c9302e0f0c
Diffstat (limited to 'base/metrics/sample_map_unittest.cc')
-rw-r--r--base/metrics/sample_map_unittest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/base/metrics/sample_map_unittest.cc b/base/metrics/sample_map_unittest.cc
index c941d65f06..3626bd0acd 100644
--- a/base/metrics/sample_map_unittest.cc
+++ b/base/metrics/sample_map_unittest.cc
@@ -24,6 +24,20 @@ TEST(SampleMapTest, AccumulateTest) {
EXPECT_EQ(samples.redundant_count(), samples.TotalCount());
}
+TEST(SampleMapTest, Accumulate_LargeValuesDontOverflow) {
+ SampleMap samples(1);
+
+ samples.Accumulate(250000000, 100);
+ samples.Accumulate(500000000, 200);
+ samples.Accumulate(250000000, -200);
+ EXPECT_EQ(-100, samples.GetCount(250000000));
+ EXPECT_EQ(200, samples.GetCount(500000000));
+
+ EXPECT_EQ(75000000000LL, samples.sum());
+ EXPECT_EQ(100, samples.TotalCount());
+ EXPECT_EQ(samples.redundant_count(), samples.TotalCount());
+}
+
TEST(SampleMapTest, AddSubtractTest) {
SampleMap samples1(1);
SampleMap samples2(2);