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

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

Issue 127503002: Make QuicPacketWriter keep track of socket writability; expose the (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/test_tools/quic_test_writer.cc ('k') | net/tools/quic/quic_default_packet_writer.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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_->Start();
222 server_thread_->WaitForServerStartup(); 222 server_thread_->WaitForServerStartup();
223 server_address_ = IPEndPoint(server_address_.address(), 223 server_address_ = IPEndPoint(server_address_.address(),
224 server_thread_->GetPort()); 224 server_thread_->GetPort());
225 QuicDispatcher* dispatcher = 225 QuicDispatcher* dispatcher =
226 QuicServerPeer::GetDispatcher(server_thread_->server()); 226 QuicServerPeer::GetDispatcher(server_thread_->server());
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.
230 // server_thread_->Pause();
ramant (doing other things) 2014/01/08 03:04:20 Hi Ryan, Would like to discuss with you how we c
Ryan Hamilton 2014/01/08 04:05:10 Sounds good.
229 QuicDispatcherPeer::UseWriter(dispatcher, server_writer_); 231 QuicDispatcherPeer::UseWriter(dispatcher, server_writer_);
232 // TODO(rtenneti): Enable server_thread's Pause/Resume.
233 // server_thread_->Resume();
230 server_started_ = true; 234 server_started_ = true;
231 } 235 }
232 236
233 void StopServer() { 237 void StopServer() {
234 if (!server_started_) 238 if (!server_started_)
235 return; 239 return;
236 if (server_thread_.get()) { 240 if (server_thread_.get()) {
237 server_thread_->Quit(); 241 server_thread_->Quit();
238 server_thread_->Join(); 242 server_thread_->Join();
239 } 243 }
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 GenerateBody(&body, kMaxPacketSize); 578 GenerateBody(&body, kMaxPacketSize);
575 579
576 HTTPMessage request(HttpConstants::HTTP_1_1, 580 HTTPMessage request(HttpConstants::HTTP_1_1,
577 HttpConstants::POST, "/foo"); 581 HttpConstants::POST, "/foo");
578 request.AddBody(body, true); 582 request.AddBody(body, true);
579 // Force the client to write with a stream ID belonging to a nonexistent 583 // Force the client to write with a stream ID belonging to a nonexistent
580 // server-side stream. 584 // server-side stream.
581 QuicSessionPeer::SetNextStreamId(client_->client()->session(), 2); 585 QuicSessionPeer::SetNextStreamId(client_->client()->session(), 2);
582 586
583 client_->SendCustomSynchronousRequest(request); 587 client_->SendCustomSynchronousRequest(request);
584 // EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error()); 588 // EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error());
585 EXPECT_EQ(QUIC_PACKET_FOR_NONEXISTENT_STREAM, client_->connection_error()); 589 EXPECT_EQ(QUIC_PACKET_FOR_NONEXISTENT_STREAM, client_->connection_error());
586 } 590 }
587 591
588 // TODO(rch): this test seems to cause net_unittests timeouts :| 592 // TODO(rch): this test seems to cause net_unittests timeouts :|
589 TEST_P(EndToEndTest, DISABLED_MultipleTermination) { 593 TEST_P(EndToEndTest, DISABLED_MultipleTermination) {
590 ASSERT_TRUE(Initialize()); 594 ASSERT_TRUE(Initialize());
591 595
592 HTTPMessage request(HttpConstants::HTTP_1_1, 596 HTTPMessage request(HttpConstants::HTTP_1_1,
593 HttpConstants::POST, "/foo"); 597 HttpConstants::POST, "/foo");
594 request.AddHeader("content-length", "3"); 598 request.AddHeader("content-length", "3");
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 // Client tries to negotiate twice the server's max and negotiation settles 722 // Client tries to negotiate twice the server's max and negotiation settles
719 // on the max. 723 // on the max.
720 client_config_.set_initial_round_trip_time_us(2 * kMaxInitialRoundTripTimeUs, 724 client_config_.set_initial_round_trip_time_us(2 * kMaxInitialRoundTripTimeUs,
721 0); 725 0);
722 726
723 ASSERT_TRUE(Initialize()); 727 ASSERT_TRUE(Initialize());
724 client_->client()->WaitForCryptoHandshakeConfirmed(); 728 client_->client()->WaitForCryptoHandshakeConfirmed();
725 server_thread_->WaitForCryptoHandshakeConfirmed(); 729 server_thread_->WaitForCryptoHandshakeConfirmed();
726 730
727 // Pause the server so we can access the server's internals without races. 731 // Pause the server so we can access the server's internals without races.
728 server_thread_->Pause(); 732 // TODO(rtenneti): Enable server_thread's Pause/Resume.
733 // server_thread_->Pause();
729 QuicDispatcher* dispatcher = 734 QuicDispatcher* dispatcher =
730 QuicServerPeer::GetDispatcher(server_thread_->server()); 735 QuicServerPeer::GetDispatcher(server_thread_->server());
731 ASSERT_EQ(1u, dispatcher->session_map().size()); 736 ASSERT_EQ(1u, dispatcher->session_map().size());
732 QuicSession* session = dispatcher->session_map().begin()->second; 737 QuicSession* session = dispatcher->session_map().begin()->second;
733 QuicConfig* client_negotiated_config = client_->client()->session()->config(); 738 QuicConfig* client_negotiated_config = client_->client()->session()->config();
734 QuicConfig* server_negotiated_config = session->config(); 739 QuicConfig* server_negotiated_config = session->config();
735 const QuicSentPacketManager& client_sent_packet_manager = 740 const QuicSentPacketManager& client_sent_packet_manager =
736 client_->client()->session()->connection()->sent_packet_manager(); 741 client_->client()->session()->connection()->sent_packet_manager();
737 const QuicSentPacketManager& server_sent_packet_manager = 742 const QuicSentPacketManager& server_sent_packet_manager =
738 session->connection()->sent_packet_manager(); 743 session->connection()->sent_packet_manager();
739 744
740 EXPECT_EQ(kMaxInitialRoundTripTimeUs, 745 EXPECT_EQ(kMaxInitialRoundTripTimeUs,
741 client_negotiated_config->initial_round_trip_time_us()); 746 client_negotiated_config->initial_round_trip_time_us());
742 EXPECT_EQ(kMaxInitialRoundTripTimeUs, 747 EXPECT_EQ(kMaxInitialRoundTripTimeUs,
743 server_negotiated_config->initial_round_trip_time_us()); 748 server_negotiated_config->initial_round_trip_time_us());
744 // Now that acks have been exchanged, the RTT estimate has decreased on the 749 // Now that acks have been exchanged, the RTT estimate has decreased on the
745 // server and is not infinite on the client. 750 // server and is not infinite on the client.
746 EXPECT_FALSE(client_sent_packet_manager.SmoothedRtt().IsInfinite()); 751 EXPECT_FALSE(client_sent_packet_manager.SmoothedRtt().IsInfinite());
747 EXPECT_GE(static_cast<int64>(kMaxInitialRoundTripTimeUs), 752 EXPECT_GE(static_cast<int64>(kMaxInitialRoundTripTimeUs),
748 server_sent_packet_manager.SmoothedRtt().ToMicroseconds()); 753 server_sent_packet_manager.SmoothedRtt().ToMicroseconds());
754 // TODO(rtenneti): Enable server_thread's Pause/Resume.
755 // server_thread_->Resume();
749 } 756 }
750 757
751 TEST_P(EndToEndTest, ResetConnection) { 758 TEST_P(EndToEndTest, ResetConnection) {
752 ASSERT_TRUE(Initialize()); 759 ASSERT_TRUE(Initialize());
753 client_->client()->WaitForCryptoHandshakeConfirmed(); 760 client_->client()->WaitForCryptoHandshakeConfirmed();
754 761
755 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo")); 762 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo"));
756 EXPECT_EQ(200u, client_->response_headers()->parsed_response_code()); 763 EXPECT_EQ(200u, client_->response_headers()->parsed_response_code());
757 client_->ResetConnection(); 764 client_->ResetConnection();
758 EXPECT_EQ(kBarResponseBody, client_->SendSynchronousRequest("/bar")); 765 EXPECT_EQ(kBarResponseBody, client_->SendSynchronousRequest("/bar"));
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 client_->SendSynchronousRequest("/bar"); 863 client_->SendSynchronousRequest("/bar");
857 864
858 EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error()); 865 EXPECT_EQ(QUIC_STREAM_CONNECTION_ERROR, client_->stream_error());
859 EXPECT_EQ(QUIC_ERROR_MIGRATING_ADDRESS, client_->connection_error()); 866 EXPECT_EQ(QUIC_ERROR_MIGRATING_ADDRESS, client_->connection_error());
860 } 867 }
861 868
862 } // namespace 869 } // namespace
863 } // namespace test 870 } // namespace test
864 } // namespace tools 871 } // namespace tools
865 } // namespace net 872 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/test_tools/quic_test_writer.cc ('k') | net/tools/quic/quic_default_packet_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698