| OLD | NEW |
| 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 <sys/epoll.h> | 6 #include <sys/epoll.h> |
| 7 | 7 |
| 8 #include <cstdint> | 8 #include <cstdint> |
| 9 #include <list> | 9 #include <list> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 INSTANTIATE_TEST_CASE_P(EndToEndTests, | 585 INSTANTIATE_TEST_CASE_P(EndToEndTests, |
| 586 EndToEndTest, | 586 EndToEndTest, |
| 587 ::testing::ValuesIn(GetTestParams())); | 587 ::testing::ValuesIn(GetTestParams())); |
| 588 | 588 |
| 589 TEST_P(EndToEndTest, HandshakeSuccessful) { | 589 TEST_P(EndToEndTest, HandshakeSuccessful) { |
| 590 ASSERT_TRUE(Initialize()); | 590 ASSERT_TRUE(Initialize()); |
| 591 EXPECT_TRUE(client_->client()->WaitForCryptoHandshakeConfirmed()); | 591 EXPECT_TRUE(client_->client()->WaitForCryptoHandshakeConfirmed()); |
| 592 QuicCryptoStream* crypto_stream = | 592 QuicCryptoStream* crypto_stream = |
| 593 QuicSessionPeer::GetCryptoStream(client_->client()->session()); | 593 QuicSessionPeer::GetCryptoStream(client_->client()->session()); |
| 594 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(crypto_stream); | 594 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(crypto_stream); |
| 595 EXPECT_NE(FLAGS_quic_release_crypto_stream_buffer, | 595 EXPECT_NE( |
| 596 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 596 FLAGS_quic_release_crypto_stream_buffer && |
| 597 FLAGS_quic_reduce_sequencer_buffer_memory_life_time, // NOLINT |
| 598 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
| 597 server_thread_->Pause(); | 599 server_thread_->Pause(); |
| 598 QuicDispatcher* dispatcher = | 600 QuicDispatcher* dispatcher = |
| 599 QuicServerPeer::GetDispatcher(server_thread_->server()); | 601 QuicServerPeer::GetDispatcher(server_thread_->server()); |
| 600 QuicSession* server_session = dispatcher->session_map().begin()->second.get(); | 602 QuicSession* server_session = dispatcher->session_map().begin()->second.get(); |
| 601 crypto_stream = QuicSessionPeer::GetCryptoStream(server_session); | 603 crypto_stream = QuicSessionPeer::GetCryptoStream(server_session); |
| 602 sequencer = QuicStreamPeer::sequencer(crypto_stream); | 604 sequencer = QuicStreamPeer::sequencer(crypto_stream); |
| 603 EXPECT_NE(FLAGS_quic_release_crypto_stream_buffer, | 605 EXPECT_NE( |
| 604 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 606 FLAGS_quic_release_crypto_stream_buffer && |
| 607 FLAGS_quic_reduce_sequencer_buffer_memory_life_time, // NOLINT |
| 608 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
| 605 } | 609 } |
| 606 | 610 |
| 607 TEST_P(EndToEndTest, SimpleRequestResponsev6) { | 611 TEST_P(EndToEndTest, SimpleRequestResponsev6) { |
| 608 ASSERT_TRUE(Initialize()); | 612 ASSERT_TRUE(Initialize()); |
| 609 | 613 |
| 610 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo")); | 614 EXPECT_EQ(kFooResponseBody, client_->SendSynchronousRequest("/foo")); |
| 611 EXPECT_EQ("200", client_->response_headers()->find(":status")->second); | 615 EXPECT_EQ("200", client_->response_headers()->find(":status")->second); |
| 612 EXPECT_EQ(2, client_->client()->GetNumSentClientHellos()); | 616 EXPECT_EQ(2, client_->client()->GetNumSentClientHellos()); |
| 613 } | 617 } |
| 614 | 618 |
| (...skipping 2018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2633 // hasn't finished yet. | 2637 // hasn't finished yet. |
| 2634 EXPECT_TRUE(QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 2638 EXPECT_TRUE(QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
| 2635 | 2639 |
| 2636 for (const string& url : push_urls) { | 2640 for (const string& url : push_urls) { |
| 2637 DVLOG(1) << "send request for pushed stream on url " << url; | 2641 DVLOG(1) << "send request for pushed stream on url " << url; |
| 2638 string expected_body = "This is server push response body for " + url; | 2642 string expected_body = "This is server push response body for " + url; |
| 2639 string response_body = client_->SendSynchronousRequest(url); | 2643 string response_body = client_->SendSynchronousRequest(url); |
| 2640 DVLOG(1) << "response body " << response_body; | 2644 DVLOG(1) << "response body " << response_body; |
| 2641 EXPECT_EQ(expected_body, response_body); | 2645 EXPECT_EQ(expected_body, response_body); |
| 2642 } | 2646 } |
| 2643 EXPECT_NE(FLAGS_quic_headers_stream_release_sequencer_buffer, | 2647 EXPECT_NE( |
| 2644 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 2648 FLAGS_quic_headers_stream_release_sequencer_buffer && |
| 2649 FLAGS_quic_reduce_sequencer_buffer_memory_life_time, // NOLINT |
| 2650 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
| 2645 } | 2651 } |
| 2646 | 2652 |
| 2647 TEST_P(EndToEndTestServerPush, ServerPushUnderLimit) { | 2653 TEST_P(EndToEndTestServerPush, ServerPushUnderLimit) { |
| 2648 // Tests that sending a request which has 4 push resources will trigger server | 2654 // Tests that sending a request which has 4 push resources will trigger server |
| 2649 // to push those 4 resources and client can handle pushed resources and match | 2655 // to push those 4 resources and client can handle pushed resources and match |
| 2650 // them with requests later. | 2656 // them with requests later. |
| 2651 ASSERT_TRUE(Initialize()); | 2657 ASSERT_TRUE(Initialize()); |
| 2652 | 2658 |
| 2653 EXPECT_TRUE(client_->client()->WaitForCryptoHandshakeConfirmed()); | 2659 EXPECT_TRUE(client_->client()->WaitForCryptoHandshakeConfirmed()); |
| 2654 | 2660 |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2936 } | 2942 } |
| 2937 | 2943 |
| 2938 TEST_P(EndToEndTest, ReleaseHeadersStreamBufferWhenIdle) { | 2944 TEST_P(EndToEndTest, ReleaseHeadersStreamBufferWhenIdle) { |
| 2939 // Tests that when client side has no active request and no waiting | 2945 // Tests that when client side has no active request and no waiting |
| 2940 // PUSH_PROMISE, its headers stream's sequencer buffer should be released. | 2946 // PUSH_PROMISE, its headers stream's sequencer buffer should be released. |
| 2941 ASSERT_TRUE(Initialize()); | 2947 ASSERT_TRUE(Initialize()); |
| 2942 client_->SendSynchronousRequest("/foo"); | 2948 client_->SendSynchronousRequest("/foo"); |
| 2943 QuicHeadersStream* headers_stream = | 2949 QuicHeadersStream* headers_stream = |
| 2944 QuicSpdySessionPeer::GetHeadersStream(client_->client()->session()); | 2950 QuicSpdySessionPeer::GetHeadersStream(client_->client()->session()); |
| 2945 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(headers_stream); | 2951 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(headers_stream); |
| 2946 EXPECT_NE(FLAGS_quic_headers_stream_release_sequencer_buffer, | 2952 EXPECT_NE( |
| 2947 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 2953 FLAGS_quic_headers_stream_release_sequencer_buffer && |
| 2954 FLAGS_quic_reduce_sequencer_buffer_memory_life_time, // NOLINT |
| 2955 QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
| 2948 } | 2956 } |
| 2949 | 2957 |
| 2950 class EndToEndBufferedPacketsTest : public EndToEndTest { | 2958 class EndToEndBufferedPacketsTest : public EndToEndTest { |
| 2951 public: | 2959 public: |
| 2952 void CreateClientWithWriter() override { | 2960 void CreateClientWithWriter() override { |
| 2953 LOG(ERROR) << "create client with reorder_writer_ "; | 2961 LOG(ERROR) << "create client with reorder_writer_ "; |
| 2954 reorder_writer_ = new PacketReorderingWriter(); | 2962 reorder_writer_ = new PacketReorderingWriter(); |
| 2955 client_.reset(EndToEndTest::CreateQuicClient(reorder_writer_)); | 2963 client_.reset(EndToEndTest::CreateQuicClient(reorder_writer_)); |
| 2956 } | 2964 } |
| 2957 | 2965 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2994 client_->WaitForResponse(); | 3002 client_->WaitForResponse(); |
| 2995 EXPECT_EQ(kBarResponseBody, client_->response_body()); | 3003 EXPECT_EQ(kBarResponseBody, client_->response_body()); |
| 2996 QuicConnectionStats client_stats = | 3004 QuicConnectionStats client_stats = |
| 2997 client_->client()->session()->connection()->GetStats(); | 3005 client_->client()->session()->connection()->GetStats(); |
| 2998 EXPECT_EQ(0u, client_stats.packets_lost); | 3006 EXPECT_EQ(0u, client_stats.packets_lost); |
| 2999 EXPECT_EQ(1, client_->client()->GetNumSentClientHellos()); | 3007 EXPECT_EQ(1, client_->client()->GetNumSentClientHellos()); |
| 3000 } | 3008 } |
| 3001 } // namespace | 3009 } // namespace |
| 3002 } // namespace test | 3010 } // namespace test |
| 3003 } // namespace net | 3011 } // namespace net |
| OLD | NEW |