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 2988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2999 // Tests that when client side has no active request and no waiting | 2999 // Tests that when client side has no active request and no waiting |
3000 // PUSH_PROMISE, its headers stream's sequencer buffer should be released. | 3000 // PUSH_PROMISE, its headers stream's sequencer buffer should be released. |
3001 ASSERT_TRUE(Initialize()); | 3001 ASSERT_TRUE(Initialize()); |
3002 client_->SendSynchronousRequest("/foo"); | 3002 client_->SendSynchronousRequest("/foo"); |
3003 QuicHeadersStream* headers_stream = | 3003 QuicHeadersStream* headers_stream = |
3004 QuicSpdySessionPeer::GetHeadersStream(client_->client()->session()); | 3004 QuicSpdySessionPeer::GetHeadersStream(client_->client()->session()); |
3005 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(headers_stream); | 3005 QuicStreamSequencer* sequencer = QuicStreamPeer::sequencer(headers_stream); |
3006 EXPECT_FALSE(QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); | 3006 EXPECT_FALSE(QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer)); |
3007 } | 3007 } |
3008 | 3008 |
| 3009 TEST_P(EndToEndTest, WayTooLongRequestHeaders) { |
| 3010 ASSERT_TRUE(Initialize()); |
| 3011 SpdyHeaderBlock headers; |
| 3012 headers[":method"] = "GET"; |
| 3013 headers[":path"] = "/foo"; |
| 3014 headers[":scheme"] = "https"; |
| 3015 headers[":authority"] = server_hostname_; |
| 3016 headers["key"] = string(64 * 1024, 'a'); |
| 3017 |
| 3018 client_->SendMessage(headers, ""); |
| 3019 client_->WaitForResponse(); |
| 3020 EXPECT_EQ(QUIC_HEADERS_STREAM_DATA_DECOMPRESS_FAILURE, |
| 3021 client_->connection_error()); |
| 3022 } |
| 3023 |
3009 class EndToEndBufferedPacketsTest : public EndToEndTest { | 3024 class EndToEndBufferedPacketsTest : public EndToEndTest { |
3010 public: | 3025 public: |
3011 void CreateClientWithWriter() override { | 3026 void CreateClientWithWriter() override { |
3012 QUIC_LOG(ERROR) << "create client with reorder_writer_ "; | 3027 QUIC_LOG(ERROR) << "create client with reorder_writer_ "; |
3013 reorder_writer_ = new PacketReorderingWriter(); | 3028 reorder_writer_ = new PacketReorderingWriter(); |
3014 client_.reset(EndToEndTest::CreateQuicClient(reorder_writer_)); | 3029 client_.reset(EndToEndTest::CreateQuicClient(reorder_writer_)); |
3015 } | 3030 } |
3016 | 3031 |
3017 void SetUp() override { | 3032 void SetUp() override { |
3018 // Don't initialize client writer in base class. | 3033 // Don't initialize client writer in base class. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3053 client_->WaitForResponse(); | 3068 client_->WaitForResponse(); |
3054 EXPECT_EQ(kBarResponseBody, client_->response_body()); | 3069 EXPECT_EQ(kBarResponseBody, client_->response_body()); |
3055 QuicConnectionStats client_stats = | 3070 QuicConnectionStats client_stats = |
3056 client_->client()->session()->connection()->GetStats(); | 3071 client_->client()->session()->connection()->GetStats(); |
3057 EXPECT_EQ(0u, client_stats.packets_lost); | 3072 EXPECT_EQ(0u, client_stats.packets_lost); |
3058 EXPECT_EQ(1, client_->client()->GetNumSentClientHellos()); | 3073 EXPECT_EQ(1, client_->client()->GetNumSentClientHellos()); |
3059 } | 3074 } |
3060 } // namespace | 3075 } // namespace |
3061 } // namespace test | 3076 } // namespace test |
3062 } // namespace net | 3077 } // namespace net |
OLD | NEW |