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

Side by Side Diff: net/tools/quic/end_to_end_test.cc

Issue 259613002: Fix a TSAN failure of QUIC's EndToEndTest where the value of (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 5 #include <stddef.h>
6 #include <string> 6 #include <string>
7 #include <sys/epoll.h> 7 #include <sys/epoll.h>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 297
298 void SetReorderPercentage(int32 reorder) { 298 void SetReorderPercentage(int32 reorder) {
299 // TODO(rtenneti): enable when we can do random packet reorder tests in 299 // TODO(rtenneti): enable when we can do random packet reorder tests in
300 // chrome's tree. 300 // chrome's tree.
301 // client_writer_->set_fake_reorder_percentage(reorder); 301 // client_writer_->set_fake_reorder_percentage(reorder);
302 // server_writer_->set_fake_reorder_percentage(reorder); 302 // server_writer_->set_fake_reorder_percentage(reorder);
303 } 303 }
304 304
305 // Verifies that the client and server connections were both free of packets 305 // Verifies that the client and server connections were both free of packets
306 // being discarded, based on connection stats. 306 // being discarded, based on connection stats.
307 // Calls server_thread_ Pause() and Resume(), which may only be called once
308 // per test.
307 void VerifyCleanConnection(bool had_packet_loss) { 309 void VerifyCleanConnection(bool had_packet_loss) {
308 QuicConnectionStats client_stats = 310 QuicConnectionStats client_stats =
309 client_->client()->session()->connection()->GetStats(); 311 client_->client()->session()->connection()->GetStats();
310 if (!had_packet_loss) { 312 if (!had_packet_loss) {
311 EXPECT_EQ(0u, client_stats.packets_lost); 313 EXPECT_EQ(0u, client_stats.packets_lost);
312 } 314 }
313 EXPECT_EQ(0u, client_stats.packets_discarded); 315 EXPECT_EQ(0u, client_stats.packets_discarded);
314 EXPECT_EQ(0u, client_stats.packets_dropped); 316 EXPECT_EQ(0u, client_stats.packets_dropped);
315 EXPECT_EQ(client_stats.packets_received, client_stats.packets_processed); 317 EXPECT_EQ(client_stats.packets_received, client_stats.packets_processed);
316 318
319 server_thread_->Pause();
317 QuicDispatcher* dispatcher = 320 QuicDispatcher* dispatcher =
318 QuicServerPeer::GetDispatcher(server_thread_->server()); 321 QuicServerPeer::GetDispatcher(server_thread_->server());
319 ASSERT_EQ(1u, dispatcher->session_map().size()); 322 ASSERT_EQ(1u, dispatcher->session_map().size());
320 QuicSession* session = dispatcher->session_map().begin()->second; 323 QuicSession* session = dispatcher->session_map().begin()->second;
321 QuicConnectionStats server_stats = session->connection()->GetStats(); 324 QuicConnectionStats server_stats = session->connection()->GetStats();
322 if (!had_packet_loss) { 325 if (!had_packet_loss) {
323 EXPECT_EQ(0u, server_stats.packets_lost); 326 EXPECT_EQ(0u, server_stats.packets_lost);
324 } 327 }
325 EXPECT_EQ(0u, server_stats.packets_discarded); 328 EXPECT_EQ(0u, server_stats.packets_discarded);
326 // TODO(ianswett): Restore the check for packets_dropped equals 0. 329 // TODO(ianswett): Restore the check for packets_dropped equals 0.
327 // The expect for packets received is equal to packets processed fails 330 // The expect for packets received is equal to packets processed fails
328 // due to version negotiation packets. 331 // due to version negotiation packets.
332 server_thread_->Resume();
329 } 333 }
330 334
331 IPEndPoint server_address_; 335 IPEndPoint server_address_;
332 string server_hostname_; 336 string server_hostname_;
333 scoped_ptr<ServerThread> server_thread_; 337 scoped_ptr<ServerThread> server_thread_;
334 scoped_ptr<QuicTestClient> client_; 338 scoped_ptr<QuicTestClient> client_;
335 PacketDroppingTestWriter* client_writer_; 339 PacketDroppingTestWriter* client_writer_;
336 PacketDroppingTestWriter* server_writer_; 340 PacketDroppingTestWriter* server_writer_;
337 bool server_started_; 341 bool server_started_;
338 QuicConfig client_config_; 342 QuicConfig client_config_;
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 QuicSession* session = dispatcher->session_map().begin()->second; 993 QuicSession* session = dispatcher->session_map().begin()->second;
990 EXPECT_EQ(kClientIFCW, 994 EXPECT_EQ(kClientIFCW,
991 session->config()->ReceivedInitialFlowControlWindowBytes()); 995 session->config()->ReceivedInitialFlowControlWindowBytes());
992 server_thread_->Resume(); 996 server_thread_->Resume();
993 } 997 }
994 998
995 } // namespace 999 } // namespace
996 } // namespace test 1000 } // namespace test
997 } // namespace tools 1001 } // namespace tools
998 } // namespace net 1002 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698