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

Unified Diff: net/tools/quic/end_to_end_test.cc

Issue 2446893003: Make Quic client more memory efficient. Protected by --quic_headers_stream_release_sequencer_buffer. (Closed)
Patch Set: Remove NOLINT Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« net/quic/core/quic_flags_list.h ('K') | « net/quic/core/quic_spdy_session.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/tools/quic/end_to_end_test.cc
diff --git a/net/tools/quic/end_to_end_test.cc b/net/tools/quic/end_to_end_test.cc
index 6bc9faf9502ce53352dfbb00eb97ea9a9373ced2..e21b230ca4b76adb7bc6256a40aebe290d3c7a13 100644
--- a/net/tools/quic/end_to_end_test.cc
+++ b/net/tools/quic/end_to_end_test.cc
@@ -2612,6 +2612,14 @@ TEST_P(EndToEndTestServerPush, ServerPush) {
DVLOG(1) << "send request for /push_example";
EXPECT_EQ(kBody, client_->SendSynchronousRequest(
"https://example.com/push_example"));
+ QuicHeadersStream* headers_stream =
+ QuicSpdySessionPeer::GetHeadersStream(client_->client()->session());
+ QuicStreamSequencer* sequencer =
+ ReliableQuicStreamPeer::sequencer(headers_stream);
+ // Headers stream's sequencer buffer shouldn't be released because server push
+ // hasn't finished yet.
+ EXPECT_TRUE(QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer));
+
for (const string& url : push_urls) {
DVLOG(1) << "send request for pushed stream on url " << url;
string expected_body = "This is server push response body for " + url;
@@ -2619,6 +2627,9 @@ TEST_P(EndToEndTestServerPush, ServerPush) {
DVLOG(1) << "response body " << response_body;
EXPECT_EQ(expected_body, response_body);
}
+ EXPECT_NE(FLAGS_quic_headers_stream_release_sequencer_buffer &&
+ FLAGS_quic_reduce_sequencer_buffer_memory_life_time,
+ QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer));
}
TEST_P(EndToEndTestServerPush, ServerPushUnderLimit) {
@@ -2908,6 +2919,20 @@ TEST_P(EndToEndTest, DISABLED_TestHugeResponseWithPacketLoss) {
}
}
+TEST_P(EndToEndTest, ReleaseHeadersStreamBufferWhenIdle) {
+ // Tests that when client side has no active request and no waiting
+ // PUSH_PROMISE, its headers stream's sequencer buffer should be released.
+ ASSERT_TRUE(Initialize());
+ client_->SendSynchronousRequest("/foo");
+ QuicHeadersStream* headers_stream =
+ QuicSpdySessionPeer::GetHeadersStream(client_->client()->session());
+ QuicStreamSequencer* sequencer =
+ ReliableQuicStreamPeer::sequencer(headers_stream);
+ EXPECT_NE(FLAGS_quic_headers_stream_release_sequencer_buffer &&
+ FLAGS_quic_reduce_sequencer_buffer_memory_life_time,
+ QuicStreamSequencerPeer::IsUnderlyingBufferAllocated(sequencer));
+}
+
class EndToEndBufferedPacketsTest : public EndToEndTest {
public:
EndToEndBufferedPacketsTest() : EndToEndTest() {
« net/quic/core/quic_flags_list.h ('K') | « net/quic/core/quic_spdy_session.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698