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

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

Issue 132073002: Fix end_to_end_test performance regression caused by using mutexes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | « net/quic/quic_end_to_end_unittest.cc ('k') | net/tools/quic/test_tools/server_thread.h » ('j') | 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 <vector> 7 #include <vector>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 211 }
212 212
213 virtual void TearDown() { 213 virtual void TearDown() {
214 StopServer(); 214 StopServer();
215 } 215 }
216 216
217 void StartServer() { 217 void StartServer() {
218 server_thread_.reset(new ServerThread(server_address_, server_config_, 218 server_thread_.reset(new ServerThread(server_address_, server_config_,
219 server_supported_versions_, 219 server_supported_versions_,
220 strike_register_no_startup_period_)); 220 strike_register_no_startup_period_));
221 server_thread_->Start(); 221 server_thread_->Initialize();
222 server_thread_->WaitForServerStartup();
223 server_address_ = IPEndPoint(server_address_.address(), 222 server_address_ = IPEndPoint(server_address_.address(),
224 server_thread_->GetPort()); 223 server_thread_->GetPort());
225 QuicDispatcher* dispatcher = 224 QuicDispatcher* dispatcher =
226 QuicServerPeer::GetDispatcher(server_thread_->server()); 225 QuicServerPeer::GetDispatcher(server_thread_->server());
226 QuicDispatcherPeer::UseWriter(dispatcher, server_writer_);
227 server_writer_->SetConnectionHelper( 227 server_writer_->SetConnectionHelper(
228 QuicDispatcherPeer::GetHelper(dispatcher)); 228 QuicDispatcherPeer::GetHelper(dispatcher));
229 // TODO(rtenneti): Enable server_thread's Pause/Resume. 229 server_thread_->Start();
230 // server_thread_->Pause();
231 QuicDispatcherPeer::UseWriter(dispatcher, server_writer_);
232 // TODO(rtenneti): Enable server_thread's Pause/Resume.
233 // server_thread_->Resume();
234 server_started_ = true; 230 server_started_ = true;
235 } 231 }
236 232
237 void StopServer() { 233 void StopServer() {
238 if (!server_started_) 234 if (!server_started_)
239 return; 235 return;
240 if (server_thread_.get()) { 236 if (server_thread_.get()) {
241 server_thread_->Quit(); 237 server_thread_->Quit();
242 server_thread_->Join(); 238 server_thread_->Join();
243 } 239 }
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 TEST_P(EndToEndTest, InitialRTT) { 717 TEST_P(EndToEndTest, InitialRTT) {
722 // Client tries to negotiate twice the server's max and negotiation settles 718 // Client tries to negotiate twice the server's max and negotiation settles
723 // on the max. 719 // on the max.
724 client_config_.set_initial_round_trip_time_us(2 * kMaxInitialRoundTripTimeUs, 720 client_config_.set_initial_round_trip_time_us(2 * kMaxInitialRoundTripTimeUs,
725 0); 721 0);
726 722
727 ASSERT_TRUE(Initialize()); 723 ASSERT_TRUE(Initialize());
728 client_->client()->WaitForCryptoHandshakeConfirmed(); 724 client_->client()->WaitForCryptoHandshakeConfirmed();
729 server_thread_->WaitForCryptoHandshakeConfirmed(); 725 server_thread_->WaitForCryptoHandshakeConfirmed();
730 726
731 // Pause the server so we can access the server's internals without races. 727 server_thread_->Pause();
732 // TODO(rtenneti): Enable server_thread's Pause/Resume.
733 // server_thread_->Pause();
734 QuicDispatcher* dispatcher = 728 QuicDispatcher* dispatcher =
735 QuicServerPeer::GetDispatcher(server_thread_->server()); 729 QuicServerPeer::GetDispatcher(server_thread_->server());
736 ASSERT_EQ(1u, dispatcher->session_map().size()); 730 ASSERT_EQ(1u, dispatcher->session_map().size());
737 QuicSession* session = dispatcher->session_map().begin()->second; 731 QuicSession* session = dispatcher->session_map().begin()->second;
738 QuicConfig* client_negotiated_config = client_->client()->session()->config(); 732 QuicConfig* client_negotiated_config = client_->client()->session()->config();
739 QuicConfig* server_negotiated_config = session->config(); 733 QuicConfig* server_negotiated_config = session->config();
740 const QuicSentPacketManager& client_sent_packet_manager = 734 const QuicSentPacketManager& client_sent_packet_manager =
741 client_->client()->session()->connection()->sent_packet_manager(); 735 client_->client()->session()->connection()->sent_packet_manager();
742 const QuicSentPacketManager& server_sent_packet_manager = 736 const QuicSentPacketManager& server_sent_packet_manager =
743 session->connection()->sent_packet_manager(); 737 session->connection()->sent_packet_manager();
744 738
745 EXPECT_EQ(kMaxInitialRoundTripTimeUs, 739 EXPECT_EQ(kMaxInitialRoundTripTimeUs,
746 client_negotiated_config->initial_round_trip_time_us()); 740 client_negotiated_config->initial_round_trip_time_us());
747 EXPECT_EQ(kMaxInitialRoundTripTimeUs, 741 EXPECT_EQ(kMaxInitialRoundTripTimeUs,
748 server_negotiated_config->initial_round_trip_time_us()); 742 server_negotiated_config->initial_round_trip_time_us());
749 // Now that acks have been exchanged, the RTT estimate has decreased on the 743 // Now that acks have been exchanged, the RTT estimate has decreased on the
750 // server and is not infinite on the client. 744 // server and is not infinite on the client.
751 EXPECT_FALSE(client_sent_packet_manager.SmoothedRtt().IsInfinite()); 745 EXPECT_FALSE(client_sent_packet_manager.SmoothedRtt().IsInfinite());
752 EXPECT_GE(static_cast<int64>(kMaxInitialRoundTripTimeUs), 746 EXPECT_GE(static_cast<int64>(kMaxInitialRoundTripTimeUs),
753 server_sent_packet_manager.SmoothedRtt().ToMicroseconds()); 747 server_sent_packet_manager.SmoothedRtt().ToMicroseconds());
754 // TODO(rtenneti): Enable server_thread's Pause/Resume. 748 server_thread_->Resume();
755 // server_thread_->Resume();
756 } 749 }
757 750
758 TEST_P(EndToEndTest, ResetConnection) { 751 TEST_P(EndToEndTest, ResetConnection) {
759 ASSERT_TRUE(Initialize()); 752 ASSERT_TRUE(Initialize());
760 client_->client()->WaitForCryptoHandshakeConfirmed(); 753 client_->client()->WaitForCryptoHandshakeConfirmed();
761 754
762 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo")); 755 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo"));
763 EXPECT_EQ(200u, client_->response_headers()->parsed_response_code()); 756 EXPECT_EQ(200u, client_->response_headers()->parsed_response_code());
764 client_->ResetConnection(); 757 client_->ResetConnection();
765 EXPECT_EQ(kBarResponseBody, client_->SendSynchronousRequest("/bar")); 758 EXPECT_EQ(kBarResponseBody, client_->SendSynchronousRequest("/bar"));
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
863 client_->SendSynchronousRequest("/bar"); 856 client_->SendSynchronousRequest("/bar");
864 857
865 EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error()); 858 EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error());
866 EXPECT_EQ(QUIC_ERROR_MIGRATING_ADDRESS, client_->connection_error()); 859 EXPECT_EQ(QUIC_ERROR_MIGRATING_ADDRESS, client_->connection_error());
867 } 860 }
868 861
869 } // namespace 862 } // namespace
870 } // namespace test 863 } // namespace test
871 } // namespace tools 864 } // namespace tools
872 } // namespace net 865 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_end_to_end_unittest.cc ('k') | net/tools/quic/test_tools/server_thread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698