Index: net/url_request/url_request_throttler_unittest.cc |
=================================================================== |
--- net/url_request/url_request_throttler_unittest.cc (revision 155400) |
+++ net/url_request/url_request_throttler_unittest.cc (working copy) |
@@ -6,8 +6,10 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/metrics/histogram.h" |
+#include "base/metrics/histogram_samples.h" |
#include "base/metrics/statistics_recorder.h" |
#include "base/pickle.h" |
+#include "base/stl_util.h" |
#include "base/stringprintf.h" |
#include "base/string_number_conversions.h" |
#include "base/time.h" |
@@ -27,6 +29,7 @@ |
namespace { |
using base::Histogram; |
+using base::HistogramSamples; |
using base::StatisticsRecorder; |
class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry { |
@@ -172,6 +175,7 @@ |
} |
virtual void SetUp(); |
+ virtual void TearDown(); |
// After calling this function, histogram snapshots in |samples_| contain |
// only the delta caused by the test case currently running. |
@@ -181,8 +185,8 @@ |
MockURLRequestThrottlerManager manager_; // Dummy object, not used. |
scoped_refptr<MockURLRequestThrottlerEntry> entry_; |
- std::map<std::string, Histogram::SampleSet> original_samples_; |
- std::map<std::string, Histogram::SampleSet> samples_; |
+ std::map<std::string, HistogramSamples*> original_samples_; |
+ std::map<std::string, HistogramSamples*> samples_; |
TestURLRequestContext context_; |
TestURLRequest request_; |
@@ -207,33 +211,38 @@ |
// Must retrieve original samples for each histogram for comparison |
// as other tests may affect them. |
const char* name = kHistogramNames[i]; |
- Histogram::SampleSet& original = original_samples_[name]; |
Histogram* histogram = StatisticsRecorder::FindHistogram(name); |
if (histogram) { |
- histogram->SnapshotSample(&original); |
+ original_samples_[name] = histogram->SnapshotSamples().release(); |
+ } else { |
+ original_samples_[name] = NULL; |
} |
} |
} |
+void URLRequestThrottlerEntryTest::TearDown() { |
+ STLDeleteValues(&original_samples_); |
+ STLDeleteValues(&samples_); |
+} |
+ |
void URLRequestThrottlerEntryTest::CalculateHistogramDeltas() { |
for (size_t i = 0; i < arraysize(kHistogramNames); ++i) { |
const char* name = kHistogramNames[i]; |
- Histogram::SampleSet& original = original_samples_[name]; |
- Histogram::SampleSet& sample = samples_[name]; |
+ HistogramSamples* original = original_samples_[name]; |
Histogram* histogram = StatisticsRecorder::FindHistogram(name); |
if (histogram) { |
ASSERT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags()); |
- histogram->SnapshotSample(&sample); |
- // Ensure |original| size is same as |sample|, then subtract original |
- // values. |
- original.Resize(histogram->bucket_count()); |
- sample.Subtract(original); |
+ scoped_ptr<HistogramSamples> samples(histogram->SnapshotSamples()); |
+ if (original) |
+ samples->Subtract(*original); |
+ samples_[name] = samples.release(); |
} |
} |
// Ensure we don't accidentally use the originals in our tests. |
+ STLDeleteValues(&original_samples_); |
original_samples_.clear(); |
} |
@@ -251,8 +260,8 @@ |
EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
CalculateHistogramDeltas(); |
- ASSERT_EQ(1, samples_["Throttling.RequestThrottled"].counts(0)); |
- ASSERT_EQ(1, samples_["Throttling.RequestThrottled"].counts(1)); |
+ ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(0)); |
+ ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(1)); |
} |
TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
@@ -263,8 +272,8 @@ |
EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
CalculateHistogramDeltas(); |
- ASSERT_EQ(2, samples_["Throttling.RequestThrottled"].counts(0)); |
- ASSERT_EQ(0, samples_["Throttling.RequestThrottled"].counts(1)); |
+ ASSERT_EQ(2, samples_["Throttling.RequestThrottled"]->GetCount(0)); |
+ ASSERT_EQ(0, samples_["Throttling.RequestThrottled"]->GetCount(1)); |
} |
TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateFailure) { |