gfe-relnote: Remove version negotiation packet tests from QuicConnectionTest; test-only change PiperOrigin-RevId: 250976443 Change-Id: Idc89992fea99de7e1ee2c4e1e36bf33f96658e57
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index fb3d21b..e3a5887 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -6736,165 +6736,6 @@ EXPECT_FALSE(outgoing_ack()->packets.Empty()); } -TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacket) { - // Turn off QUIC_VERSION_99. - SetQuicReloadableFlag(quic_enable_version_99, false); - connection_.SetSupportedVersions(CurrentSupportedVersions()); - set_perspective(Perspective::IS_SERVER); - if (VersionHasIetfInvariantHeader(GetParam().version.transport_version)) { - peer_framer_.set_version_for_tests( - ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99)); - } else { - peer_framer_.set_version_for_tests(UnsupportedQuicVersion()); - } - - QuicPacketHeader header; - header.destination_connection_id = connection_id_; - header.version_flag = true; - header.packet_number = QuicPacketNumber(12); - - if (QuicVersionHasLongHeaderLengths( - peer_framer_.version().transport_version)) { - header.long_packet_type = INITIAL; - header.retry_token_length_length = VARIABLE_LENGTH_INTEGER_LENGTH_1; - header.length_length = VARIABLE_LENGTH_INTEGER_LENGTH_2; - } - - QuicFrames frames; - frames.push_back(QuicFrame(frame1_)); - std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); - char buffer[kMaxOutgoingPacketSize]; - size_t encrypted_length = - framer_.EncryptPayload(ENCRYPTION_INITIAL, QuicPacketNumber(12), *packet, - buffer, kMaxOutgoingPacketSize); - - framer_.set_version(version()); - // Writer's framer's perspective is client, so that it needs to have the right - // version to process either IETF or GQUIC version negotiation packet. - writer_->SetSupportedVersions({version()}); - connection_.ProcessUdpPacket( - kSelfAddress, kPeerAddress, - QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); - EXPECT_TRUE(writer_->version_negotiation_packet() != nullptr); - - ParsedQuicVersionVector supported_versions = CurrentSupportedVersions(); - ASSERT_EQ(supported_versions.size(), - writer_->version_negotiation_packet()->versions.size()); - - // We expect all versions in supported_versions to be - // included in the packet. - for (size_t i = 0; i < supported_versions.size(); ++i) { - EXPECT_EQ(supported_versions[i], - writer_->version_negotiation_packet()->versions[i]); - } -} - -TEST_P(QuicConnectionTest, ServerSendsVersionNegotiationPacketSocketBlocked) { - // Turn off QUIC_VERSION_99. - SetQuicReloadableFlag(quic_enable_version_99, false); - connection_.SetSupportedVersions(CurrentSupportedVersions()); - set_perspective(Perspective::IS_SERVER); - if (VersionHasIetfInvariantHeader(GetParam().version.transport_version)) { - peer_framer_.set_version_for_tests( - ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99)); - } else { - peer_framer_.set_version_for_tests(UnsupportedQuicVersion()); - } - - QuicPacketHeader header; - header.destination_connection_id = connection_id_; - header.version_flag = true; - header.packet_number = QuicPacketNumber(12); - - if (QuicVersionHasLongHeaderLengths( - peer_framer_.version().transport_version)) { - header.long_packet_type = INITIAL; - header.retry_token_length_length = VARIABLE_LENGTH_INTEGER_LENGTH_1; - header.length_length = VARIABLE_LENGTH_INTEGER_LENGTH_2; - } - - QuicFrames frames; - frames.push_back(QuicFrame(frame1_)); - std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); - char buffer[kMaxOutgoingPacketSize]; - size_t encrypted_length = - framer_.EncryptPayload(ENCRYPTION_INITIAL, QuicPacketNumber(12), *packet, - buffer, kMaxOutgoingPacketSize); - - framer_.set_version(version()); - BlockOnNextWrite(); - // Writer's framer's perspective is client, so that it needs to have the right - // version to process either IETF or GQUIC version negotiation packet. - writer_->SetSupportedVersions({version()}); - connection_.ProcessUdpPacket( - kSelfAddress, kPeerAddress, - QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); - EXPECT_EQ(0u, writer_->last_packet_size()); - EXPECT_TRUE(connection_.HasQueuedData()); - - writer_->SetWritable(); - connection_.OnCanWrite(); - EXPECT_TRUE(writer_->version_negotiation_packet() != nullptr); - - ParsedQuicVersionVector supported_versions = CurrentSupportedVersions(); - ASSERT_EQ(supported_versions.size(), - writer_->version_negotiation_packet()->versions.size()); - - // We expect all versions in supported_versions to be - // included in the packet. - for (size_t i = 0; i < supported_versions.size(); ++i) { - EXPECT_EQ(supported_versions[i], - writer_->version_negotiation_packet()->versions[i]); - } -} - -TEST_P(QuicConnectionTest, - ServerSendsVersionNegotiationPacketSocketBlockedDataBuffered) { - // Turn off QUIC_VERSION_99. - SetQuicReloadableFlag(quic_enable_version_99, false); - connection_.SetSupportedVersions(CurrentSupportedVersions()); - set_perspective(Perspective::IS_SERVER); - if (VersionHasIetfInvariantHeader(GetParam().version.transport_version)) { - peer_framer_.set_version_for_tests( - ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99)); - } else { - peer_framer_.set_version_for_tests(UnsupportedQuicVersion()); - } - - QuicPacketHeader header; - header.destination_connection_id = connection_id_; - header.version_flag = true; - header.packet_number = QuicPacketNumber(12); - - if (QuicVersionHasLongHeaderLengths( - peer_framer_.version().transport_version)) { - header.long_packet_type = INITIAL; - header.retry_token_length_length = VARIABLE_LENGTH_INTEGER_LENGTH_1; - header.length_length = VARIABLE_LENGTH_INTEGER_LENGTH_2; - } - - QuicFrames frames; - frames.push_back(QuicFrame(frame1_)); - std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); - char buffer[kMaxOutgoingPacketSize]; - size_t encryped_length = - framer_.EncryptPayload(ENCRYPTION_INITIAL, QuicPacketNumber(12), *packet, - buffer, kMaxOutgoingPacketSize); - - framer_.set_version(version()); - set_perspective(Perspective::IS_SERVER); - BlockOnNextWrite(); - writer_->set_is_write_blocked_data_buffered(true); - // Writer's framer's perspective is client, so that it needs to have the right - // version to process either IETF or GQUIC version negotiation packet. - writer_->SetSupportedVersions({version()}); - connection_.ProcessUdpPacket( - kSelfAddress, kPeerAddress, - QuicReceivedPacket(buffer, encryped_length, QuicTime::Zero(), false)); - EXPECT_EQ(0u, writer_->last_packet_size()); - EXPECT_FALSE(connection_.HasQueuedData()); -} - TEST_P(QuicConnectionTest, ClientHandlesVersionNegotiation) { const bool expect_failure = GetQuicReloadableFlag(quic_no_client_conn_ver_negotiation) ||