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

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

Issue 2115033002: Adds QUIC_VERSION_36 which adds support to force HOL blocking between streams for measurement purpo… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@126085461
Patch Set: typo Created 4 years, 5 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
« no previous file with comments | « net/tools/quic/end_to_end_test.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/quic_simple_server_session_test.cc
diff --git a/net/tools/quic/quic_simple_server_session_test.cc b/net/tools/quic/quic_simple_server_session_test.cc
index 8e93f9bb37f5ccc8955db940c76349f6961dda96..e342c32a57e9e849a47a62982ae4e62e775939ad 100644
--- a/net/tools/quic/quic_simple_server_session_test.cc
+++ b/net/tools/quic/quic_simple_server_session_test.cc
@@ -54,6 +54,7 @@ using testing::StrictMock;
using testing::_;
using testing::InSequence;
using testing::Return;
+using testing::AtLeast;
namespace net {
namespace test {
@@ -493,11 +494,25 @@ class QuicSimpleServerSessionServerPushTest
WriteHeadersMock(stream_id, _, false, kDefaultPriority, nullptr));
// Since flow control window is smaller than response body, not the
// whole body will be sent.
- EXPECT_CALL(*connection_,
- SendStreamData(stream_id, _, 0, false, nullptr))
- .WillOnce(
- Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
- EXPECT_CALL(*connection_, SendBlocked(stream_id));
+ if (!session_->force_hol_blocking()) {
+ EXPECT_CALL(*connection_,
+ SendStreamData(stream_id, _, 0, false, nullptr))
+ .WillOnce(Return(
+ QuicConsumedData(kStreamFlowControlWindowSize, false)));
+ EXPECT_CALL(*connection_, SendBlocked(stream_id));
+ } else {
+ // The forced HOL blocking encapsulates the stream data into
+ // HTTP/2 DATA frames within the headers stream. HTTP/2
+ // DATA frames are limited to a max size of 16KB, so the
+ // 64KB body will be fragemented into four DATA frames.
+ EXPECT_CALL(*connection_, SendStreamData(_, _, _, false, nullptr))
+ .Times(body_size / 16384)
+ .WillOnce(Return(QuicConsumedData(9 + 16394, false)))
+ .WillOnce(Return(QuicConsumedData(9 + 16394, false)))
+ .WillOnce(Return(QuicConsumedData(9 + 16394, false)))
+ .WillOnce(Return(QuicConsumedData(9 + 16394, false)));
+ EXPECT_CALL(*connection_, SendBlocked(_));
+ }
}
}
session_->PromisePushResources(request_url, push_resources,
@@ -513,6 +528,10 @@ TEST_P(QuicSimpleServerSessionServerPushTest, TestPromisePushResources) {
// Tests that given more than kMaxOpenStreamForTest resources, all their
// PUSH_PROMISE's will be sent out and only |kMaxOpenStreamForTest| streams
// will be opened and send push response.
+
+ if (session_->force_hol_blocking()) {
+ return;
+ }
size_t num_resources = kMaxStreamsForTest + 5;
PromisePushResources(num_resources);
EXPECT_EQ(kMaxStreamsForTest, session_->GetNumOpenOutgoingStreams());
@@ -520,6 +539,10 @@ TEST_P(QuicSimpleServerSessionServerPushTest, TestPromisePushResources) {
TEST_P(QuicSimpleServerSessionServerPushTest,
HandlePromisedPushRequestsAfterStreamDraining) {
+ if (session_->force_hol_blocking()) {
+ return;
+ }
+
// Tests that after promised stream queued up, when an opened stream is marked
// draining, a queued promised stream will become open and send push response.
size_t num_resources = kMaxStreamsForTest + 1;
@@ -543,6 +566,9 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
TEST_P(QuicSimpleServerSessionServerPushTest,
ResetPromisedStreamToCancelServerPush) {
+ if (session_->force_hol_blocking()) {
+ return;
+ }
// Tests that after all resources are promised, a RST frame from client can
// prevent a promised resource to be send out.
@@ -579,6 +605,9 @@ TEST_P(QuicSimpleServerSessionServerPushTest,
TEST_P(QuicSimpleServerSessionServerPushTest,
CloseStreamToHandleMorePromisedStream) {
+ if (session_->force_hol_blocking()) {
+ return;
+ }
// Tests that closing a open outgoing stream can trigger a promised resource
// in the queue to be send out.
size_t num_resources = kMaxStreamsForTest + 1;
« no previous file with comments | « net/tools/quic/end_to_end_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698