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

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 18 matching lines...) Expand all
29 29
30 class NetworkStatsTestUDP : public NetworkStatsTest { 30 class NetworkStatsTestUDP : public NetworkStatsTest {
31 public: 31 public:
32 NetworkStatsTestUDP() 32 NetworkStatsTestUDP()
33 : test_server_(net::TestServer::TYPE_UDP_ECHO, 33 : test_server_(net::TestServer::TYPE_UDP_ECHO,
34 net::TestServer::kLocalhost, 34 net::TestServer::kLocalhost,
35 FilePath(FILE_PATH_LITERAL("net/data"))) { 35 FilePath(FILE_PATH_LITERAL("net/data"))) {
36 } 36 }
37 37
38 protected: 38 protected:
39 void RunUDPEchoTest(int bytes, int packets) { 39 void RunUDPEchoTest(int bytes, int packets, bool has_proxy) {
40 net::TestCompletionCallback cb; 40 net::TestCompletionCallback cb;
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 has_proxy,
51 bytes, 52 bytes,
52 packets, 53 packets,
53 cb.callback())); 54 cb.callback()));
54 int rv = cb.WaitForResult(); 55 int rv = cb.WaitForResult();
55 // Check there were no errors during connect/write/read to echo UDP server. 56 // Check there were no errors during connect/write/read to echo UDP server.
56 EXPECT_EQ(0, rv); 57 EXPECT_EQ(0, rv);
57 } 58 }
58 59
59 net::TestServer test_server_; 60 net::TestServer test_server_;
60 }; 61 };
61 62
62 class NetworkStatsTestTCP : public NetworkStatsTest { 63 class NetworkStatsTestTCP : public NetworkStatsTest {
63 public: 64 public:
64 NetworkStatsTestTCP() 65 NetworkStatsTestTCP()
65 : test_server_(net::TestServer::TYPE_TCP_ECHO, 66 : test_server_(net::TestServer::TYPE_TCP_ECHO,
66 net::TestServer::kLocalhost, 67 net::TestServer::kLocalhost,
67 FilePath(FILE_PATH_LITERAL("net/data"))) { 68 FilePath(FILE_PATH_LITERAL("net/data"))) {
68 } 69 }
69 70
70 protected: 71 protected:
71 void RunTCPEchoTest(int bytes, int packets) { 72 void RunTCPEchoTest(int bytes, int packets, bool has_proxy) {
72 net::TestCompletionCallback cb; 73 net::TestCompletionCallback cb;
73 74
74 scoped_ptr<net::MockHostResolver> host_resolver( 75 scoped_ptr<net::MockHostResolver> host_resolver(
75 new net::MockHostResolver()); 76 new net::MockHostResolver());
76 77
77 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing 78 // We will use HISTOGRAM_PORT_MAX as the PortIndex enum for testing
78 // purposes. 79 // purposes.
79 TCPStatsClient* tcp_stats_client = new TCPStatsClient(); 80 TCPStatsClient* tcp_stats_client = new TCPStatsClient();
80 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(), 81 EXPECT_TRUE(tcp_stats_client->Start(host_resolver.get(),
81 test_server_.host_port_pair(), 82 test_server_.host_port_pair(),
82 NetworkStats::HISTOGRAM_PORT_MAX, 83 NetworkStats::HISTOGRAM_PORT_MAX,
84 has_proxy,
83 bytes, 85 bytes,
84 packets, 86 packets,
85 cb.callback())); 87 cb.callback()));
86 int rv = cb.WaitForResult(); 88 int rv = cb.WaitForResult();
87 // Check there were no errors during connect/write/read to echo TCP server. 89 // Check there were no errors during connect/write/read to echo TCP server.
88 EXPECT_EQ(0, rv); 90 EXPECT_EQ(0, rv);
89 } 91 }
90 92
91 net::TestServer test_server_; 93 net::TestServer test_server_;
92 }; 94 };
93 95
94 TEST_F(NetworkStatsTestUDP, UDPEcho_100B_Of_Data) { 96 TEST_F(NetworkStatsTestUDP, UDPEcho100BytesHasProxy) {
95 ASSERT_TRUE(test_server_.Start()); 97 ASSERT_TRUE(test_server_.Start());
96 RunUDPEchoTest(100, 1); 98 RunUDPEchoTest(100, 1, true);
97 } 99 }
98 100
99 TEST_F(NetworkStatsTestUDP, UDPEcho_1K_Of_Data) { 101 TEST_F(NetworkStatsTestUDP, UDPEcho100BytesNoProxy) {
100 ASSERT_TRUE(test_server_.Start()); 102 ASSERT_TRUE(test_server_.Start());
101 RunUDPEchoTest(1024, 1); 103 RunUDPEchoTest(100, 1, false);
102 } 104 }
103 105
104 TEST_F(NetworkStatsTestUDP, UDPEchoMultiplePackets) { 106 TEST_F(NetworkStatsTestUDP, UDPEcho1KBytesHasProxy) {
105 ASSERT_TRUE(test_server_.Start()); 107 ASSERT_TRUE(test_server_.Start());
106 RunUDPEchoTest(1024, 4); 108 RunUDPEchoTest(1024, 1, true);
107 } 109 }
108 110
109 TEST_F(NetworkStatsTestTCP, TCPEcho_100B_Of_Data) { 111 TEST_F(NetworkStatsTestUDP, UDPEcho1KBytesNoProxy) {
110 ASSERT_TRUE(test_server_.Start()); 112 ASSERT_TRUE(test_server_.Start());
111 RunTCPEchoTest(100, 1); 113 RunUDPEchoTest(1024, 1, false);
112 } 114 }
113 115
114 TEST_F(NetworkStatsTestTCP, TCPEcho_1K_Of_Data) { 116 TEST_F(NetworkStatsTestUDP, UDPEchoMultiplePacketsHasProxy) {
115 ASSERT_TRUE(test_server_.Start()); 117 ASSERT_TRUE(test_server_.Start());
116 RunTCPEchoTest(1024, 1); 118 RunUDPEchoTest(1024, 4, true);
119 }
120
121 TEST_F(NetworkStatsTestUDP, UDPEchoMultiplePacketsNoProxy) {
122 ASSERT_TRUE(test_server_.Start());
123 RunUDPEchoTest(1024, 4, false);
124 }
125
126 TEST_F(NetworkStatsTestTCP, TCPEcho100BytesHasProxy) {
127 ASSERT_TRUE(test_server_.Start());
128 RunTCPEchoTest(100, 1, true);
129 }
130
131 TEST_F(NetworkStatsTestTCP, TCPEcho100BytesNoProxy) {
132 ASSERT_TRUE(test_server_.Start());
133 RunTCPEchoTest(100, 1, false);
134 }
135
136 TEST_F(NetworkStatsTestTCP, TCPEcho1KBytesHasProxy) {
137 ASSERT_TRUE(test_server_.Start());
138 RunTCPEchoTest(1024, 1, true);
139 }
140
141 TEST_F(NetworkStatsTestTCP, TCPEcho1KBytesNoProxy) {
142 ASSERT_TRUE(test_server_.Start());
143 RunTCPEchoTest(1024, 1, false);
117 } 144 }
118 145
119 TEST_F(NetworkStatsTestTCP, VerifyBytes) { 146 TEST_F(NetworkStatsTestTCP, VerifyBytes) {
120 static const uint32 KBytesToSend = 100; 147 static const uint32 KBytesToSend = 100;
121 static const uint32 packets_to_send = 1; 148 static const uint32 packets_to_send = 1;
122 static const uint32 packet_number = 1; 149 static const uint32 packet_number = 1;
123 TCPStatsClient network_stats; 150 TCPStatsClient network_stats;
124 net::TestCompletionCallback cb; 151 net::TestCompletionCallback cb;
125 network_stats.Initialize(KBytesToSend, 152 network_stats.Initialize(KBytesToSend,
126 NetworkStats::HISTOGRAM_PORT_MAX, 153 NetworkStats::HISTOGRAM_PORT_MAX,
154 true,
127 packets_to_send, 155 packets_to_send,
128 cb.callback()); 156 cb.callback());
129 157
130 std::string message; 158 std::string message;
131 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR, 159 EXPECT_EQ(NetworkStats::ZERO_LENGTH_ERROR,
132 network_stats.VerifyBytes(message)); 160 network_stats.VerifyBytes(message));
133 161
134 std::string version = base::StringPrintf("%02d", 1); 162 std::string version = base::StringPrintf("%02d", 1);
135 std::string invalid_checksum = base::StringPrintf("%010d", 0); 163 std::string invalid_checksum = base::StringPrintf("%010d", 0);
136 std::string payload_size = base::StringPrintf("%07d", KBytesToSend); 164 std::string payload_size = base::StringPrintf("%07d", KBytesToSend);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 &rtt_histogram_name1, 301 &rtt_histogram_name1,
274 &status_histogram_name1, 302 &status_histogram_name1,
275 &packet_loss_histogram_name1); 303 &packet_loss_histogram_name1);
276 EXPECT_EQ("", rtt_histogram_name1); 304 EXPECT_EQ("", rtt_histogram_name1);
277 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name1); 305 EXPECT_EQ("NetConnectivity.UDP.Status.6121.100B", status_histogram_name1);
278 EXPECT_EQ("NetConnectivity.UDP.PacketLoss6.6121.100B", 306 EXPECT_EQ("NetConnectivity.UDP.PacketLoss6.6121.100B",
279 packet_loss_histogram_name1); 307 packet_loss_histogram_name1);
280 } 308 }
281 309
282 } // namespace chrome_browser_net 310 } // 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