| Index: net/socket_stream/socket_stream_metrics_unittest.cc
|
| ===================================================================
|
| --- net/socket_stream/socket_stream_metrics_unittest.cc (revision 155400)
|
| +++ net/socket_stream/socket_stream_metrics_unittest.cc (working copy)
|
| @@ -5,13 +5,16 @@
|
| #include "net/socket_stream/socket_stream_metrics.h"
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/metrics/histogram_samples.h"
|
| #include "base/metrics/statistics_recorder.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/platform_test.h"
|
|
|
| using base::Histogram;
|
| +using base::HistogramSamples;
|
| using base::StatisticsRecorder;
|
|
|
| namespace net {
|
| @@ -20,11 +23,11 @@
|
| // First we'll preserve the original values. We need to do this
|
| // as histograms can get affected by other tests. In particular,
|
| // SocketStreamTest and WebSocketTest can affect the histograms.
|
| - Histogram::SampleSet original;
|
| + scoped_ptr<HistogramSamples> original;
|
| Histogram* histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ProtocolType");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| + original = histogram->SnapshotSamples();
|
| }
|
|
|
| SocketStreamMetrics unknown(GURL("unknown://www.example.com/"));
|
| @@ -39,22 +42,23 @@
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
|
|
| - Histogram::SampleSet sample;
|
| - histogram->SnapshotSample(&sample);
|
| - original.Resize(histogram->bucket_count());
|
| - sample.Subtract(original); // Cancel the original values.
|
| - EXPECT_EQ(1, sample.counts(SocketStreamMetrics::PROTOCOL_UNKNOWN));
|
| - EXPECT_EQ(2, sample.counts(SocketStreamMetrics::PROTOCOL_WEBSOCKET));
|
| - EXPECT_EQ(3, sample.counts(SocketStreamMetrics::PROTOCOL_WEBSOCKET_SECURE));
|
| + scoped_ptr<HistogramSamples> samples(histogram->SnapshotSamples());
|
| + if (original.get()) {
|
| + samples->Subtract(*original); // Cancel the original values.
|
| + }
|
| + EXPECT_EQ(1, samples->GetCount(SocketStreamMetrics::PROTOCOL_UNKNOWN));
|
| + EXPECT_EQ(2, samples->GetCount(SocketStreamMetrics::PROTOCOL_WEBSOCKET));
|
| + EXPECT_EQ(3,
|
| + samples->GetCount(SocketStreamMetrics::PROTOCOL_WEBSOCKET_SECURE));
|
| }
|
|
|
| TEST(SocketStreamMetricsTest, ConnectionType) {
|
| // First we'll preserve the original values.
|
| - Histogram::SampleSet original;
|
| + scoped_ptr<HistogramSamples> original;
|
| Histogram* histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ConnectionType");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| + original = histogram->SnapshotSamples();
|
| }
|
|
|
| SocketStreamMetrics metrics(GURL("ws://www.example.com/"));
|
| @@ -73,23 +77,23 @@
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
|
|
| - Histogram::SampleSet sample;
|
| - histogram->SnapshotSample(&sample);
|
| - original.Resize(histogram->bucket_count());
|
| - sample.Subtract(original);
|
| - EXPECT_EQ(1, sample.counts(SocketStreamMetrics::ALL_CONNECTIONS));
|
| - EXPECT_EQ(2, sample.counts(SocketStreamMetrics::TUNNEL_CONNECTION));
|
| - EXPECT_EQ(3, sample.counts(SocketStreamMetrics::SOCKS_CONNECTION));
|
| - EXPECT_EQ(4, sample.counts(SocketStreamMetrics::SSL_CONNECTION));
|
| + scoped_ptr<HistogramSamples> samples(histogram->SnapshotSamples());
|
| + if (original.get()) {
|
| + samples->Subtract(*original); // Cancel the original values.
|
| + }
|
| + EXPECT_EQ(1, samples->GetCount(SocketStreamMetrics::ALL_CONNECTIONS));
|
| + EXPECT_EQ(2, samples->GetCount(SocketStreamMetrics::TUNNEL_CONNECTION));
|
| + EXPECT_EQ(3, samples->GetCount(SocketStreamMetrics::SOCKS_CONNECTION));
|
| + EXPECT_EQ(4, samples->GetCount(SocketStreamMetrics::SSL_CONNECTION));
|
| }
|
|
|
| TEST(SocketStreamMetricsTest, WireProtocolType) {
|
| // First we'll preserve the original values.
|
| - Histogram::SampleSet original;
|
| + scoped_ptr<HistogramSamples> original;
|
| Histogram* histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.WireProtocolType");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| + original = histogram->SnapshotSamples();
|
| }
|
|
|
| SocketStreamMetrics metrics(GURL("ws://www.example.com/"));
|
| @@ -104,12 +108,12 @@
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
|
|
| - Histogram::SampleSet sample;
|
| - histogram->SnapshotSample(&sample);
|
| - original.Resize(histogram->bucket_count());
|
| - sample.Subtract(original);
|
| - EXPECT_EQ(3, sample.counts(SocketStreamMetrics::WIRE_PROTOCOL_WEBSOCKET));
|
| - EXPECT_EQ(7, sample.counts(SocketStreamMetrics::WIRE_PROTOCOL_SPDY));
|
| + scoped_ptr<HistogramSamples> samples(histogram->SnapshotSamples());
|
| + if (original.get()) {
|
| + samples->Subtract(*original); // Cancel the original values.
|
| + }
|
| + EXPECT_EQ(3, samples->GetCount(SocketStreamMetrics::WIRE_PROTOCOL_WEBSOCKET));
|
| + EXPECT_EQ(7, samples->GetCount(SocketStreamMetrics::WIRE_PROTOCOL_SPDY));
|
| }
|
|
|
| TEST(SocketStreamMetricsTest, OtherNumbers) {
|
| @@ -119,31 +123,31 @@
|
| int64 original_sent_bytes = 0;
|
| int64 original_sent_counts = 0;
|
|
|
| - Histogram::SampleSet original;
|
| + scoped_ptr<HistogramSamples> original;
|
|
|
| Histogram* histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ReceivedBytes");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| - original_received_bytes = original.sum();
|
| + original = histogram->SnapshotSamples();
|
| + original_received_bytes = original->sum();
|
| }
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ReceivedCounts");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| - original_received_counts = original.sum();
|
| + original = histogram->SnapshotSamples();
|
| + original_received_counts = original->sum();
|
| }
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.SentBytes");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| - original_sent_bytes = original.sum();
|
| + original = histogram->SnapshotSamples();
|
| + original_sent_bytes = original->sum();
|
| }
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.SentCounts");
|
| if (histogram) {
|
| - histogram->SnapshotSample(&original);
|
| - original_sent_counts = original.sum();
|
| + original = histogram->SnapshotSamples();
|
| + original_sent_counts = original->sum();
|
| }
|
|
|
| SocketStreamMetrics metrics(GURL("ws://www.example.com/"));
|
| @@ -157,7 +161,7 @@
|
| metrics.OnWrite(200);
|
| metrics.OnClose();
|
|
|
| - Histogram::SampleSet sample;
|
| + scoped_ptr<HistogramSamples> samples;
|
|
|
| // ConnectionLatency.
|
| histogram =
|
| @@ -185,32 +189,32 @@
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ReceivedBytes");
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
| - histogram->SnapshotSample(&sample);
|
| - EXPECT_EQ(11, sample.sum() - original_received_bytes); // 11 bytes read.
|
| + samples = histogram->SnapshotSamples();
|
| + EXPECT_EQ(11, samples->sum() - original_received_bytes); // 11 bytes read.
|
|
|
| // ReceivedCounts.
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.ReceivedCounts");
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
| - histogram->SnapshotSample(&sample);
|
| - EXPECT_EQ(2, sample.sum() - original_received_counts); // 2 read requests.
|
| + samples = histogram->SnapshotSamples();
|
| + EXPECT_EQ(2, samples->sum() - original_received_counts); // 2 read requests.
|
|
|
| // SentBytes.
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.SentBytes");
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
| - histogram->SnapshotSample(&sample);
|
| - EXPECT_EQ(222, sample.sum() - original_sent_bytes); // 222 bytes sent.
|
| + samples = histogram->SnapshotSamples();
|
| + EXPECT_EQ(222, samples->sum() - original_sent_bytes); // 222 bytes sent.
|
|
|
| // SentCounts.
|
| histogram =
|
| StatisticsRecorder::FindHistogram("Net.SocketStream.SentCounts");
|
| ASSERT_TRUE(histogram != NULL);
|
| EXPECT_EQ(Histogram::kUmaTargetedHistogramFlag, histogram->flags());
|
| - histogram->SnapshotSample(&sample);
|
| - EXPECT_EQ(3, sample.sum() - original_sent_counts); // 3 write requests.
|
| + samples = histogram->SnapshotSamples();
|
| + EXPECT_EQ(3, samples->sum() - original_sent_counts); // 3 write requests.
|
| }
|
|
|
| } // namespace net
|
|
|