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

Side by Side Diff: chrome/browser/net/network_stats_unittest.cc

Issue 10206035: NetConnectivity - Collect stats for TCP/UDP network (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/stringprintf.h" 7 #include "base/stringprintf.h"
8 #include "chrome/browser/net/network_stats.h" 8 #include "chrome/browser/net/network_stats.h"
9 #include "net/base/host_resolver.h" 9 #include "net/base/host_resolver.h"
10 #include "net/base/mock_host_resolver.h" 10 #include "net/base/mock_host_resolver.h"
(...skipping 30 matching lines...) Expand all
41 41
42 scoped_ptr<net::MockHostResolver> host_resolver( 42 scoped_ptr<net::MockHostResolver> host_resolver(
43 new net::MockHostResolver()); 43 new net::MockHostResolver());
44 44
45 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing 45 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing
46 // purposes. 46 // purposes.
47 UDPStatsClient* udp_stats_client = new UDPStatsClient(); 47 UDPStatsClient* udp_stats_client = new UDPStatsClient();
48 EXPECT_TRUE(udp_stats_client->Start(host_resolver.get(), 48 EXPECT_TRUE(udp_stats_client->Start(host_resolver.get(),
49 test_server_.host_port_pair(), 49 test_server_.host_port_pair(),
50 NetworkStats::HISTOGRAM_PORT_MAX, 50 NetworkStats::HISTOGRAM_PORT_MAX,
51 true,
51 bytes, 52 bytes,
52 cb.callback())); 53 cb.callback()));
53 int rv = cb.WaitForResult(); 54 int rv = cb.WaitForResult();
54 // Check there were no errors during connect/write/read to echo UDP server. 55 // Check there were no errors during connect/write/read to echo UDP server.
55 EXPECT_EQ(0, rv); 56 EXPECT_EQ(0, rv);
56 } 57 }
57 58
58 net::TestServer test_server_; 59 net::TestServer test_server_;
59 }; 60 };
60 61
(...skipping 11 matching lines...) Expand all
72 73
73 scoped_ptr<net::MockHostResolver> host_resolver( 74 scoped_ptr<net::MockHostResolver> host_resolver(
74 new net::MockHostResolver()); 75 new net::MockHostResolver());
75 76
76 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing 77 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing
77 // purposes. 78 // purposes.
78 TCPStatsClient* tcp_stats_client = new TCPStatsClient(); 79 TCPStatsClient* tcp_stats_client = new TCPStatsClient();
79 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(), 80 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(),
80 test_server_.host_port_pair(), 81 test_server_.host_port_pair(),
81 NetworkStats::HISTOGRAM_PORT_MAX, 82 NetworkStats::HISTOGRAM_PORT_MAX,
83 true,
82 bytes, 84 bytes,
83 cb.callback())); 85 cb.callback()));
84 int rv = cb.WaitForResult(); 86 int rv = cb.WaitForResult();
85 // Check there were no errors during connect/write/read to echo TCP server. 87 // Check there were no errors during connect/write/read to echo TCP server.
86 EXPECT_EQ(0, rv); 88 EXPECT_EQ(0, rv);
87 } 89 }
88 90
89 net::TestServer test_server_; 91 net::TestServer test_server_;
90 }; 92 };
91 93
(...skipping 16 matching lines...) Expand all
108 ASSERT_TRUE(test_server_.Start()); 110 ASSERT_TRUE(test_server_.Start());
109 RunTCPEchoTest(1024); 111 RunTCPEchoTest(1024);
110 } 112 }
111 113
112 TEST_F(NetworkStatsTestTCP, VerifyBytes) { 114 TEST_F(NetworkStatsTestTCP, VerifyBytes) {
113 static const uint32 KBytesToSend = 100; 115 static const uint32 KBytesToSend = 100;
114 TCPStatsClient network_stats; 116 TCPStatsClient network_stats;
115 net::TestCompletionCallback cb; 117 net::TestCompletionCallback cb;
116 network_stats.Initialize(KBytesToSend, 118 network_stats.Initialize(KBytesToSend,
117 NetworkStats::HISTOGRAM_PORT_MAX, 119 NetworkStats::HISTOGRAM_PORT_MAX,
120 true,
118 cb.callback()); 121 cb.callback());
119 122
120 std::string message; 123 std::string message;
121 network_stats.set_encoded_message(message); 124 network_stats.set_encoded_message(message);
122 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR, network_stats.VerifyBytes()); 125 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR, network_stats.VerifyBytes());
123 126
124 std::string version = base::StringPrintf("%02d", 1); 127 std::string version = base::StringPrintf("%02d", 1);
125 std::string invalid_checksum = base::StringPrintf("%010d", 0); 128 std::string invalid_checksum = base::StringPrintf("%010d", 0);
126 std::string payload_size = base::StringPrintf("%07d", KBytesToSend); 129 std::string payload_size = base::StringPrintf("%07d", KBytesToSend);
127 std::string invalid_key = base::StringPrintf("%06d", -1); 130 std::string invalid_key = base::StringPrintf("%06d", -1);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 pattern_changed_payload; 195 pattern_changed_payload;
193 network_stats.set_encoded_message(message); 196 network_stats.set_encoded_message(message);
194 EXPECT_EQ(NetworkStats::PATTERN_CHANGED, network_stats.VerifyBytes()); 197 EXPECT_EQ(NetworkStats::PATTERN_CHANGED, network_stats.VerifyBytes());
195 198
196 message = version + checksum + payload_size + key_string + payload; 199 message = version + checksum + payload_size + key_string + payload;
197 network_stats.set_encoded_message(message); 200 network_stats.set_encoded_message(message);
198 EXPECT_EQ(NetworkStats::SUCCESS, network_stats.VerifyBytes()); 201 EXPECT_EQ(NetworkStats::SUCCESS, network_stats.VerifyBytes());
199 } 202 }
200 203
201 TEST_F(NetworkStatsTest, GetHistogramNames) { 204 TEST_F(NetworkStatsTest, GetHistogramNames) {
202 // Test TCP, large packet, success histogram name. 205 // Test TCP, large packet, success histogram name, without proxy server.
203 std::string rtt_histogram_name; 206 std::string rtt_histogram_name;
207 std::string rtt_no_proxy_histogram_name;
204 std::string status_histogram_name; 208 std::string status_histogram_name;
209 std::string status_no_proxy_histogram_name;
205 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP, 210 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP,
206 NetworkStats::PORT_53, 211 NetworkStats::PORT_53,
212 true,
207 1024, 213 1024,
208 net::OK, 214 net::OK,
209 &rtt_histogram_name, 215 &rtt_histogram_name,
210 &status_histogram_name); 216 &rtt_no_proxy_histogram_name,
217 &status_histogram_name,
218 &status_no_proxy_histogram_name);
211 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name); 219 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name);
220 EXPECT_EQ("NetConnectivity.TCP.NoProxy.Success.53.1K.RTT",
221 rtt_no_proxy_histogram_name);
212 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name); 222 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name);
223 EXPECT_EQ("NetConnectivity.TCP.NoProxy.Status.53.1K",
224 status_no_proxy_histogram_name);
213 225
214 // Test UDP, small packet, failure histogram name. 226 // Test TCP, large packet, success histogram name, with proxy server.
215 std::string rtt_histogram_name1; 227 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_TCP,
216 std::string status_histogram_name1; 228 NetworkStats::PORT_53,
229 false,
230 1024,
231 net::OK,
232 &rtt_histogram_name,
233 &rtt_no_proxy_histogram_name,
234 &status_histogram_name,
235 &status_no_proxy_histogram_name);
236 EXPECT_EQ("NetConnectivity.TCP.Success.53.1K.RTT", rtt_histogram_name);
237 EXPECT_EQ("", rtt_no_proxy_histogram_name);
238 EXPECT_EQ("NetConnectivity.TCP.Status.53.1K", status_histogram_name);
239 EXPECT_EQ("", status_no_proxy_histogram_name);
240
241 // Test UDP, small packet, failure histogram name, without proxy server.
217 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP, 242 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP,
218 NetworkStats::PORT_6121, 243 NetworkStats::PORT_6121,
244 true,
219 100, 245 100,
220 net::ERR_INVALID_ARGUMENT, 246 net::ERR_INVALID_ARGUMENT,
221 &rtt_histogram_name1, 247 &rtt_histogram_name,
222 &status_histogram_name1); 248 &rtt_no_proxy_histogram_name,
223 EXPECT_EQ("", rtt_histogram_name1); 249 &status_histogram_name,
224 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name1); 250 &status_no_proxy_histogram_name);
251 EXPECT_EQ("", rtt_histogram_name);
252 EXPECT_EQ("", rtt_no_proxy_histogram_name);
253 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name);
254 EXPECT_EQ("NetConnectivity.UDP.NoProxy.Status.6121.100B",
255 status_no_proxy_histogram_name);
256
257 // Test UDP, small packet, failure histogram name, with proxy server.
258 NetworkStats::GetHistogramNames(NetworkStats::PROTOCOL_UDP,
259 NetworkStats::PORT_6121,
260 false,
261 100,
262 net::ERR_INVALID_ARGUMENT,
263 &rtt_histogram_name,
264 &rtt_no_proxy_histogram_name,
265 &status_histogram_name,
266 &status_no_proxy_histogram_name);
267 EXPECT_EQ("", rtt_histogram_name);
268 EXPECT_EQ("", rtt_no_proxy_histogram_name);
269 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name);
270 EXPECT_EQ("", status_no_proxy_histogram_name);
225 } 271 }
226 272
227 } // namespace chrome_browser_net 273 } // namespace chrome_browser_net
OLDNEW
« chrome/browser/net/network_stats.cc ('K') | « chrome/browser/net/network_stats.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698