Minor QuicSimpleServerSessionServerPushTest refactor.
This is prework for cr/231494986.
gfe-relnote: n/a. Test-only change, no functional change.
PiperOrigin-RevId: 238511157
Change-Id: I0ac8321d1d62a4198a0a405df2b7c14457377352
diff --git a/quic/tools/quic_simple_server_session_test.cc b/quic/tools/quic_simple_server_session_test.cc
index 9a4996a..3ccd9e4 100644
--- a/quic/tools/quic_simple_server_session_test.cc
+++ b/quic/tools/quic_simple_server_session_test.cc
@@ -592,8 +592,8 @@
// them by sending PUSH_PROMISE for all and sending push responses for as much
// as possible(limited by kMaxStreamsForTest).
// If |num_resources| > kMaxStreamsForTest, the left over will be queued.
- // Returns the length of the data frame header, 0 if the version doesn't
- // require header.
+ // Returns the length of the DATA frame header, or 0 if the version does not
+ // use DATA frames.
QuicByteCount PromisePushResources(size_t num_resources) {
// testing::InSequence seq;
// To prevent push streams from being closed the response need to be larger
@@ -606,7 +606,7 @@
std::string partial_push_resource_path = "/server_push_src";
std::list<QuicBackendResponse::ServerPushInfo> push_resources;
std::string scheme = "http";
- QuicByteCount header_length = 0;
+ QuicByteCount data_frame_header_length = 0;
for (unsigned int i = 1; i <= num_resources; ++i) {
QuicStreamId stream_id = GetNthServerInitiatedUnidirectionalId(i - 1);
std::string path =
@@ -615,13 +615,13 @@
QuicUrl resource_url = QuicUrl(url);
std::string body(body_size, 'a');
std::string data;
- header_length = 0;
+ data_frame_header_length = 0;
if (VersionHasDataFrameHeader(connection_->transport_version())) {
HttpEncoder encoder;
std::unique_ptr<char[]> buffer;
- header_length =
+ data_frame_header_length =
encoder.SerializeDataFrameHeader(body.length(), &buffer);
- std::string header = std::string(buffer.get(), header_length);
+ std::string header(buffer.get(), data_frame_header_length);
data = header + body;
} else {
data = body;
@@ -639,21 +639,23 @@
// |kMaxStreamsForTest| promised responses should be sent.
// Since flow control window is smaller than response body, not the
// whole body will be sent.
+ QuicStreamOffset offset = 0;
if (VersionHasDataFrameHeader(connection_->transport_version())) {
EXPECT_CALL(*connection_,
- SendStreamData(stream_id, header_length, 0, NO_FIN));
+ SendStreamData(stream_id, data_frame_header_length,
+ offset, NO_FIN));
+ offset += data_frame_header_length;
}
- EXPECT_CALL(*connection_,
- SendStreamData(stream_id, _, header_length, NO_FIN))
+ EXPECT_CALL(*connection_, SendStreamData(stream_id, _, offset, NO_FIN))
.WillOnce(Return(QuicConsumedData(
- kStreamFlowControlWindowSize - header_length, false)));
+ kStreamFlowControlWindowSize - offset, false)));
EXPECT_CALL(*session_, SendBlocked(stream_id));
}
}
session_->PromisePushResources(request_url, push_resources,
GetNthClientInitiatedBidirectionalId(0),
request_headers);
- return header_length;
+ return data_frame_header_length;
}
void ConsumeHeadersStreamData() {
@@ -684,20 +686,23 @@
HandlePromisedPushRequestsAfterStreamDraining) {
ConsumeHeadersStreamData();
size_t num_resources = kMaxStreamsForTest + 1;
- QuicByteCount header_length = PromisePushResources(num_resources);
+ QuicByteCount data_frame_header_length = PromisePushResources(num_resources);
QuicStreamId next_out_going_stream_id =
GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest);
// After an open stream is marked draining, a new stream is expected to be
// created and a response sent on the stream.
+ QuicStreamOffset offset = 0;
if (VersionHasDataFrameHeader(connection_->transport_version())) {
- EXPECT_CALL(*connection_, SendStreamData(next_out_going_stream_id,
- header_length, 0, NO_FIN));
+ EXPECT_CALL(*connection_,
+ SendStreamData(next_out_going_stream_id,
+ data_frame_header_length, offset, NO_FIN));
+ offset += data_frame_header_length;
}
- EXPECT_CALL(*connection_, SendStreamData(next_out_going_stream_id, _,
- header_length, NO_FIN))
- .WillOnce(Return(QuicConsumedData(
- kStreamFlowControlWindowSize - header_length, false)));
+ EXPECT_CALL(*connection_,
+ SendStreamData(next_out_going_stream_id, _, offset, NO_FIN))
+ .WillOnce(Return(
+ QuicConsumedData(kStreamFlowControlWindowSize - offset, false)));
EXPECT_CALL(*session_, SendBlocked(next_out_going_stream_id));
if (IsVersion99()) {
@@ -732,7 +737,7 @@
.WillOnce(Invoke(
this, &QuicSimpleServerSessionServerPushTest::ClearControlFrame));
}
- QuicByteCount header_length = PromisePushResources(num_resources);
+ QuicByteCount data_frame_header_length = PromisePushResources(num_resources);
// Reset the last stream in the queue. It should be marked cancelled.
QuicStreamId stream_got_reset =
@@ -753,14 +758,16 @@
QuicStreamId stream_not_reset =
GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest);
InSequence s;
+ QuicStreamOffset offset = 0;
if (VersionHasDataFrameHeader(connection_->transport_version())) {
EXPECT_CALL(*connection_,
- SendStreamData(stream_not_reset, header_length, 0, NO_FIN));
+ SendStreamData(stream_not_reset, data_frame_header_length,
+ offset, NO_FIN));
+ offset += data_frame_header_length;
}
- EXPECT_CALL(*connection_,
- SendStreamData(stream_not_reset, _, header_length, NO_FIN))
- .WillOnce(Return(QuicConsumedData(
- kStreamFlowControlWindowSize - header_length, false)));
+ EXPECT_CALL(*connection_, SendStreamData(stream_not_reset, _, offset, NO_FIN))
+ .WillOnce(Return(
+ QuicConsumedData(kStreamFlowControlWindowSize - offset, false)));
EXPECT_CALL(*session_, SendBlocked(stream_not_reset));
if (IsVersion99()) {
@@ -790,7 +797,7 @@
.WillOnce(Invoke(
this, &QuicSimpleServerSessionServerPushTest::ClearControlFrame));
}
- QuicByteCount header_length = PromisePushResources(num_resources);
+ QuicByteCount data_frame_header_length = PromisePushResources(num_resources);
QuicStreamId stream_to_open =
GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest);
@@ -804,14 +811,16 @@
EXPECT_CALL(*connection_,
OnStreamReset(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT));
}
+ QuicStreamOffset offset = 0;
if (VersionHasDataFrameHeader(connection_->transport_version())) {
EXPECT_CALL(*connection_,
- SendStreamData(stream_to_open, header_length, 0, NO_FIN));
+ SendStreamData(stream_to_open, data_frame_header_length, offset,
+ NO_FIN));
+ offset += data_frame_header_length;
}
- EXPECT_CALL(*connection_,
- SendStreamData(stream_to_open, _, header_length, NO_FIN))
- .WillOnce(Return(QuicConsumedData(
- kStreamFlowControlWindowSize - header_length, false)));
+ EXPECT_CALL(*connection_, SendStreamData(stream_to_open, _, offset, NO_FIN))
+ .WillOnce(Return(
+ QuicConsumedData(kStreamFlowControlWindowSize - offset, false)));
EXPECT_CALL(*session_, SendBlocked(stream_to_open));
QuicRstStreamFrame rst(kInvalidControlFrameId, stream_got_reset,