| Index: chrome/browser/net/http_pipelining_compatibility_client_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/net/http_pipelining_compatibility_client_unittest.cc (revision 155400)
|
| +++ chrome/browser/net/http_pipelining_compatibility_client_unittest.cc (working copy)
|
| @@ -9,8 +9,10 @@
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/metrics/histogram_samples.h"
|
| #include "base/metrics/statistics_recorder.h"
|
| #include "base/stl_util.h"
|
| #include "base/stringprintf.h"
|
| @@ -23,6 +25,9 @@
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +using base::Histogram;
|
| +using base::HistogramSamples;
|
| +
|
| namespace chrome_browser_net {
|
|
|
| namespace {
|
| @@ -95,9 +100,9 @@
|
|
|
| for (size_t i = 0; i < arraysize(kHistogramNames); ++i) {
|
| const char* name = kHistogramNames[i];
|
| - base::Histogram::SampleSet sample = GetHistogram(name);
|
| - if (sample.TotalCount() > 0) {
|
| - original_samples_[name] = sample;
|
| + scoped_ptr<HistogramSamples> samples = GetHistogram(name);
|
| + if (samples.get() && samples->TotalCount() > 0) {
|
| + original_samples_[name] = samples.release();
|
| }
|
| }
|
| }
|
| @@ -105,6 +110,7 @@
|
| virtual void TearDown() OVERRIDE {
|
| BrowserThread::ReleaseSoon(BrowserThread::IO, FROM_HERE, context_);
|
| message_loop_.RunAllPending();
|
| + STLDeleteValues(&original_samples_);
|
| }
|
|
|
| void RunTest(
|
| @@ -118,7 +124,8 @@
|
| callback.WaitForResult();
|
| }
|
|
|
| - void ExpectHistogramCount(int expected_count, int expected_value,
|
| + void ExpectHistogramCount(int expected_count,
|
| + int expected_value,
|
| HistogramField field) {
|
| const char* name;
|
|
|
| @@ -143,19 +150,24 @@
|
| FAIL() << "Unexpected field: " << field;
|
| }
|
|
|
| - base::Histogram::SampleSet sample = GetHistogram(name);
|
| + scoped_ptr<HistogramSamples> samples = GetHistogram(name);
|
| + if (!samples.get())
|
| + return;
|
| +
|
| if (ContainsKey(original_samples_, name)) {
|
| - sample.Subtract(original_samples_[name]);
|
| + samples->Subtract((*original_samples_[name]));
|
| }
|
|
|
| - EXPECT_EQ(expected_count, sample.TotalCount()) << name;
|
| + EXPECT_EQ(expected_count, samples->TotalCount()) << name;
|
| if (expected_count > 0) {
|
| - EXPECT_EQ(expected_count, sample.counts(expected_value)) << name;
|
| + EXPECT_EQ(expected_count, samples->GetCount(expected_value)) << name;
|
| }
|
| }
|
|
|
| - void ExpectRequestHistogramCount(int expected_count, int expected_value,
|
| - int request_id, HistogramField field) {
|
| + void ExpectRequestHistogramCount(int expected_count,
|
| + int expected_value,
|
| + int request_id,
|
| + HistogramField field) {
|
| const char* field_str = "";
|
| switch (field) {
|
| case FIELD_STATUS:
|
| @@ -176,14 +188,17 @@
|
|
|
| std::string name = base::StringPrintf("NetConnectivity.Pipeline.%d.%s",
|
| request_id, field_str);
|
| - base::Histogram::SampleSet sample = GetHistogram(name.c_str());
|
| + scoped_ptr<HistogramSamples> samples = GetHistogram(name.c_str());
|
| + if (!samples.get())
|
| + return;
|
| +
|
| if (ContainsKey(original_samples_, name)) {
|
| - sample.Subtract(original_samples_[name]);
|
| + samples->Subtract(*(original_samples_[name]));
|
| }
|
|
|
| - EXPECT_EQ(expected_count, sample.TotalCount()) << name;
|
| + EXPECT_EQ(expected_count, samples->TotalCount()) << name;
|
| if (expected_count > 0) {
|
| - EXPECT_EQ(expected_count, sample.counts(expected_value)) << name;
|
| + EXPECT_EQ(expected_count, samples->GetCount(expected_value)) << name;
|
| }
|
| }
|
|
|
| @@ -193,10 +208,10 @@
|
| content::TestBrowserThread io_thread_;
|
|
|
| private:
|
| - base::Histogram::SampleSet GetHistogram(const char* name) {
|
| - base::Histogram::SampleSet sample;
|
| - base::Histogram* cached_histogram = NULL;
|
| - base::Histogram* current_histogram =
|
| + scoped_ptr<HistogramSamples> GetHistogram(const char* name) {
|
| + scoped_ptr<HistogramSamples> samples;
|
| + Histogram* cached_histogram = NULL;
|
| + Histogram* current_histogram =
|
| base::StatisticsRecorder::FindHistogram(name);
|
| if (ContainsKey(histograms_, name)) {
|
| cached_histogram = histograms_[name];
|
| @@ -209,29 +224,26 @@
|
| // last used Histogram and then update the cache if it's different than the
|
| // current Histogram.
|
| if (cached_histogram && current_histogram) {
|
| - cached_histogram->SnapshotSample(&sample);
|
| + samples = cached_histogram->SnapshotSamples();
|
| if (cached_histogram != current_histogram) {
|
| - base::Histogram::SampleSet current_sample;
|
| - current_histogram->SnapshotSample(¤t_sample);
|
| - sample.Add(current_sample);
|
| + samples->Add(*(current_histogram->SnapshotSamples()));
|
| histograms_[name] = current_histogram;
|
| }
|
| } else if (current_histogram) {
|
| - current_histogram->SnapshotSample(&sample);
|
| + samples = current_histogram->SnapshotSamples();
|
| histograms_[name] = current_histogram;
|
| } else if (cached_histogram) {
|
| - cached_histogram->SnapshotSample(&sample);
|
| + samples = cached_histogram->SnapshotSamples();
|
| }
|
| - return sample;
|
| + return samples.Pass();
|
| }
|
|
|
| - static std::map<std::string, base::Histogram*> histograms_;
|
| - std::map<std::string, base::Histogram::SampleSet> samples_;
|
| - std::map<std::string, base::Histogram::SampleSet> original_samples_;
|
| + static std::map<std::string, Histogram*> histograms_;
|
| + std::map<std::string, HistogramSamples*> original_samples_;
|
| };
|
|
|
| // static
|
| -std::map<std::string, base::Histogram*>
|
| +std::map<std::string, Histogram*>
|
| HttpPipeliningCompatibilityClientTest::histograms_;
|
|
|
| TEST_F(HttpPipeliningCompatibilityClientTest, Success) {
|
|
|