Use transport_version() test base class method instead of variants like connection_->transport_versions() and GetParams().transport_version. Change transport_version() implementation so that it can be called at any time, including before connection_ is initialized. gfe-relnote: n/a (test-only change) PiperOrigin-RevId: 300659212 Change-Id: I5cc111d045b8e744735425d0b7f9072849d4e5b8
diff --git a/quic/tools/quic_simple_server_session_test.cc b/quic/tools/quic_simple_server_session_test.cc index 8265dde..250f3ca 100644 --- a/quic/tools/quic_simple_server_session_test.cc +++ b/quic/tools/quic_simple_server_session_test.cc
@@ -238,7 +238,7 @@ kInitialStreamFlowControlWindowForTest); config_.SetInitialSessionFlowControlWindowToSend( kInitialSessionFlowControlWindowForTest); - if (VersionUsesHttp3(GetParam().transport_version)) { + if (VersionUsesHttp3(transport_version())) { QuicConfigPeer::SetReceivedMaxUnidirectionalStreams( &config_, kMaxStreamsForTest + 3); } else { @@ -268,17 +268,16 @@ } QuicStreamId GetNthClientInitiatedBidirectionalId(int n) { - return GetNthClientInitiatedBidirectionalStreamId( - connection_->transport_version(), n); + return GetNthClientInitiatedBidirectionalStreamId(transport_version(), n); } QuicStreamId GetNthServerInitiatedUnidirectionalId(int n) { return quic::test::GetNthServerInitiatedUnidirectionalStreamId( - connection_->transport_version(), n); + transport_version(), n); } QuicTransportVersion transport_version() const { - return connection_->transport_version(); + return GetParam().transport_version; } void InjectStopSending(QuicStreamId stream_id, @@ -508,9 +507,9 @@ EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams()); EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams()); - if (!VersionUsesHttp3(connection_->transport_version())) { + if (!VersionUsesHttp3(transport_version())) { session_->UnregisterStreamPriority( - QuicUtils::GetHeadersStreamId(connection_->transport_version()), + QuicUtils::GetHeadersStreamId(transport_version()), /*is_static=*/true); } // Assume encryption already established. @@ -519,9 +518,9 @@ CreateMockCryptoServerStream(&crypto_config_, &compressed_certs_cache_, session_.get(), &stream_helper_); QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); - if (!VersionUsesHttp3(connection_->transport_version())) { + if (!VersionUsesHttp3(transport_version())) { session_->RegisterStreamPriority( - QuicUtils::GetHeadersStreamId(connection_->transport_version()), + QuicUtils::GetHeadersStreamId(transport_version()), /*is_static=*/true, spdy::SpdyStreamPrecedence(QuicStream::kDefaultPriority)); } @@ -531,7 +530,7 @@ QuicSpdyStream* created_stream = QuicSimpleServerSessionPeer::CreateOutgoingUnidirectionalStream( session_.get()); - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_EQ(GetNthServerInitiatedUnidirectionalId(i + 3), created_stream->id()); } else { @@ -588,7 +587,7 @@ QuicSimpleServerSessionServerPushTest() { // Reset stream level flow control window to be 32KB. if (GetParam().handshake_protocol == PROTOCOL_TLS1_3) { - if (VersionHasIetfQuicFrames(GetParam().transport_version)) { + if (VersionHasIetfQuicFrames(transport_version())) { QuicConfigPeer::SetReceivedInitialMaxStreamDataBytesUnidirectional( &config_, kStreamFlowControlWindowSize); } else { @@ -624,9 +623,9 @@ } session_->OnConfigNegotiated(); - if (!VersionUsesHttp3(connection_->transport_version())) { + if (!VersionUsesHttp3(transport_version())) { session_->UnregisterStreamPriority( - QuicUtils::GetHeadersStreamId(connection_->transport_version()), + QuicUtils::GetHeadersStreamId(transport_version()), /*is_static=*/true); } QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), nullptr); @@ -636,9 +635,9 @@ session_.get(), &stream_helper_); QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); - if (!VersionUsesHttp3(connection_->transport_version())) { + if (!VersionUsesHttp3(transport_version())) { session_->RegisterStreamPriority( - QuicUtils::GetHeadersStreamId(connection_->transport_version()), + QuicUtils::GetHeadersStreamId(transport_version()), /*is_static=*/true, spdy::SpdyStreamPrecedence(QuicStream::kDefaultPriority)); } @@ -673,7 +672,7 @@ QuicByteCount data_frame_header_length = 0; for (unsigned int i = 1; i <= num_resources; ++i) { QuicStreamId stream_id; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { stream_id = GetNthServerInitiatedUnidirectionalId(i + 2); } else { stream_id = GetNthServerInitiatedUnidirectionalId(i - 1); @@ -685,7 +684,7 @@ std::string body(body_size, 'a'); std::string data; data_frame_header_length = 0; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { std::unique_ptr<char[]> buffer; data_frame_header_length = HttpEncoder::SerializeDataFrameHeader(body.length(), &buffer); @@ -708,13 +707,13 @@ // Since flow control window is smaller than response body, not the // whole body will be sent. QuicStreamOffset offset = 0; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(stream_id, 1, offset, NO_FIN)); offset++; } - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(stream_id, kHeadersFrameHeaderLength, offset, NO_FIN)); @@ -724,7 +723,7 @@ offset, NO_FIN)); offset += kHeadersFramePayloadLength; } - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(stream_id, data_frame_header_length, offset, NO_FIN)); @@ -744,9 +743,9 @@ } void MaybeConsumeHeadersStreamData() { - if (!VersionUsesHttp3(connection_->transport_version())) { + if (!VersionUsesHttp3(transport_version())) { QuicStreamId headers_stream_id = - QuicUtils::GetHeadersStreamId(connection_->transport_version()); + QuicUtils::GetHeadersStreamId(transport_version()); EXPECT_CALL(*connection_, SendStreamData(headers_stream_id, _, _, _)) .Times(AtLeast(1)); } @@ -777,7 +776,7 @@ size_t num_resources = kMaxStreamsForTest + 1; QuicByteCount data_frame_header_length = PromisePushResources(num_resources); QuicStreamId next_out_going_stream_id; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { next_out_going_stream_id = GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest + 3); } else { @@ -788,12 +787,12 @@ // 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 (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(next_out_going_stream_id, 1, offset, NO_FIN)); offset++; } - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(next_out_going_stream_id, kHeadersFrameHeaderLength, offset, NO_FIN)); @@ -803,7 +802,7 @@ kHeadersFramePayloadLength, offset, NO_FIN)); offset += kHeadersFramePayloadLength; } - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(next_out_going_stream_id, data_frame_header_length, offset, NO_FIN)); @@ -827,7 +826,7 @@ QuicMaxStreamsFrame(0, num_resources + 3, /*unidirectional=*/true)); } - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(3)); } else { session_->StreamDraining(GetNthServerInitiatedUnidirectionalId(0)); @@ -864,7 +863,7 @@ // Reset the last stream in the queue. It should be marked cancelled. QuicStreamId stream_got_reset; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { stream_got_reset = GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest + 4); } else { @@ -884,7 +883,7 @@ // be created. But since one of them was marked cancelled due to RST frame, // only one queued resource will be sent out. QuicStreamId stream_not_reset; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { stream_not_reset = GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest + 3); } else { @@ -893,7 +892,7 @@ } InSequence s; QuicStreamOffset offset = 0; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(stream_not_reset, 1, offset, NO_FIN)); offset++; @@ -944,7 +943,7 @@ } QuicByteCount data_frame_header_length = PromisePushResources(num_resources); QuicStreamId stream_to_open; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { stream_to_open = GetNthServerInitiatedUnidirectionalId(kMaxStreamsForTest + 3); } else { @@ -962,7 +961,7 @@ OnStreamReset(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT)); } QuicStreamOffset offset = 0; - if (VersionUsesHttp3(connection_->transport_version())) { + if (VersionUsesHttp3(transport_version())) { EXPECT_CALL(*connection_, SendStreamData(stream_to_open, 1, offset, NO_FIN)); offset++;