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,