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

Unified Diff: base/metrics/statistics_recorder_unittest.cc

Issue 1689833002: Add ownership-transfer to histogram management calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 10 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/statistics_recorder.cc ('k') | chromecast/base/metrics/grouped_histogram.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/statistics_recorder_unittest.cc
diff --git a/base/metrics/statistics_recorder_unittest.cc b/base/metrics/statistics_recorder_unittest.cc
index 17511a4d4ffa5ea7d57131b743300c08a8708308..72d7a780c41b3bf132fd87047553106a9120f193 100644
--- a/base/metrics/statistics_recorder_unittest.cc
+++ b/base/metrics/statistics_recorder_unittest.cc
@@ -43,15 +43,15 @@ class StatisticsRecorderTest : public testing::Test {
statistics_recorder_ = NULL;
}
- Histogram* CreateHistogram(const std::string& name,
- HistogramBase::Sample min,
- HistogramBase::Sample max,
- size_t bucket_count) {
- BucketRanges* ranges = new BucketRanges(bucket_count + 1);
- Histogram::InitializeBucketRanges(min, max, ranges);
+ scoped_ptr<Histogram> CreateHistogram(const std::string& name,
+ HistogramBase::Sample min,
+ HistogramBase::Sample max,
+ size_t bucket_count) {
+ scoped_ptr<BucketRanges> ranges(new BucketRanges(bucket_count + 1));
+ Histogram::InitializeBucketRanges(min, max, ranges.get());
const BucketRanges* registered_ranges =
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges);
- return new Histogram(name, min, max, registered_ranges);
+ StatisticsRecorder::RegisterOrDeleteDuplicateRanges(std::move(ranges));
+ return make_scoped_ptr(new Histogram(name, min, max, registered_ranges));
}
void DeleteHistogram(HistogramBase* histogram) {
@@ -72,19 +72,24 @@ TEST_F(StatisticsRecorderTest, NotInitialized) {
StatisticsRecorder::GetHistograms(&registered_histograms);
EXPECT_EQ(0u, registered_histograms.size());
- Histogram* histogram = CreateHistogram("TestHistogram", 1, 1000, 10);
+ scoped_ptr<Histogram> histogram =
+ CreateHistogram("TestHistogram", 1, 1000, 10);
// When StatisticsRecorder is not initialized, register is a noop.
- EXPECT_EQ(histogram,
- StatisticsRecorder::RegisterOrDeleteDuplicate(histogram));
+ Histogram* my_histogram = histogram.get();
+ EXPECT_EQ(my_histogram,
+ StatisticsRecorder::RegisterOrDeleteDuplicate(
+ std::move(histogram)));
// Manually delete histogram that was not registered.
- DeleteHistogram(histogram);
+ DeleteHistogram(my_histogram);
// RegisterOrDeleteDuplicateRanges is a no-op.
- BucketRanges* ranges = new BucketRanges(3);
+ scoped_ptr<BucketRanges> ranges(new BucketRanges(3));
ranges->ResetChecksum();
- EXPECT_EQ(ranges,
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges));
+ BucketRanges* my_ranges = ranges.get();
+ EXPECT_EQ(my_ranges,
+ StatisticsRecorder::RegisterOrDeleteDuplicateRanges(
+ std::move(ranges)));
StatisticsRecorder::GetBucketRanges(&registered_ranges);
EXPECT_EQ(0u, registered_ranges.size());
}
@@ -92,36 +97,29 @@ TEST_F(StatisticsRecorderTest, NotInitialized) {
TEST_F(StatisticsRecorderTest, RegisterBucketRanges) {
std::vector<const BucketRanges*> registered_ranges;
- BucketRanges* ranges1 = new BucketRanges(3);
+ scoped_ptr<BucketRanges> ranges1(new BucketRanges(3));
ranges1->ResetChecksum();
- BucketRanges* ranges2 = new BucketRanges(4);
+ scoped_ptr<BucketRanges> ranges2(new BucketRanges(4));
ranges2->ResetChecksum();
// Register new ranges.
- EXPECT_EQ(ranges1,
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges1));
- EXPECT_EQ(ranges2,
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges2));
+ BucketRanges* my_ranges1 = ranges1.get();
+ EXPECT_EQ(my_ranges1,
+ StatisticsRecorder::RegisterOrDeleteDuplicateRanges(
+ std::move(ranges1)));
+ BucketRanges* my_ranges2 = ranges2.get();
+ EXPECT_EQ(my_ranges2,
+ StatisticsRecorder::RegisterOrDeleteDuplicateRanges(
+ std::move(ranges2)));
StatisticsRecorder::GetBucketRanges(&registered_ranges);
ASSERT_EQ(2u, registered_ranges.size());
- // Register some ranges again.
- EXPECT_EQ(ranges1,
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges1));
- registered_ranges.clear();
- StatisticsRecorder::GetBucketRanges(&registered_ranges);
- ASSERT_EQ(2u, registered_ranges.size());
- // Make sure the ranges is still the one we know.
- ASSERT_EQ(3u, ranges1->size());
- EXPECT_EQ(0, ranges1->range(0));
- EXPECT_EQ(0, ranges1->range(1));
- EXPECT_EQ(0, ranges1->range(2));
-
// Register ranges with same values.
- BucketRanges* ranges3 = new BucketRanges(3);
+ scoped_ptr<BucketRanges> ranges3(new BucketRanges(3));
ranges3->ResetChecksum();
- EXPECT_EQ(ranges1, // returning ranges1
- StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges3));
+ EXPECT_EQ(my_ranges1, // Returns (duplicate) ranges1.
+ StatisticsRecorder::RegisterOrDeleteDuplicateRanges(
+ std::move(ranges3)));
registered_ranges.clear();
StatisticsRecorder::GetBucketRanges(&registered_ranges);
ASSERT_EQ(2u, registered_ranges.size());
@@ -129,22 +127,18 @@ TEST_F(StatisticsRecorderTest, RegisterBucketRanges) {
TEST_F(StatisticsRecorderTest, RegisterHistogram) {
// Create a Histogram that was not registered.
- Histogram* histogram = CreateHistogram("TestHistogram", 1, 1000, 10);
+ scoped_ptr<Histogram> histogram =
+ CreateHistogram("TestHistogram", 1, 1000, 10);
StatisticsRecorder::Histograms registered_histograms;
StatisticsRecorder::GetHistograms(&registered_histograms);
EXPECT_EQ(0u, registered_histograms.size());
// Register the Histogram.
- EXPECT_EQ(histogram,
- StatisticsRecorder::RegisterOrDeleteDuplicate(histogram));
- StatisticsRecorder::GetHistograms(&registered_histograms);
- EXPECT_EQ(1u, registered_histograms.size());
-
- // Register the same Histogram again.
- EXPECT_EQ(histogram,
- StatisticsRecorder::RegisterOrDeleteDuplicate(histogram));
- registered_histograms.clear();
+ Histogram* my_histogram = histogram.get();
+ EXPECT_EQ(my_histogram,
+ StatisticsRecorder::RegisterOrDeleteDuplicate(
+ std::move(histogram)));
StatisticsRecorder::GetHistograms(&registered_histograms);
EXPECT_EQ(1u, registered_histograms.size());
}
« no previous file with comments | « base/metrics/statistics_recorder.cc ('k') | chromecast/base/metrics/grouped_histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698