gfe-relnote: In QUIC, do not use framer object in QuicDispatcher. Protected by gfe2_restart_flag_quic_no_framer_object_in_dispatcher.
Also, dispatcher does not parse and validate packet number anymore.
PiperOrigin-RevId: 247959538
Change-Id: Ia0f7901428537f392b05ffd6beb2984bffd00232
diff --git a/quic/core/quic_framer_test.cc b/quic/core/quic_framer_test.cc
index 4af5b3a..96f335c 100644
--- a/quic/core/quic_framer_test.cc
+++ b/quic/core/quic_framer_test.cc
@@ -913,6 +913,22 @@
EXPECT_EQ(kPacketNumber, visitor_.header_->packet_number);
CheckFramingBoundaries(fragments, QUIC_INVALID_PACKET_HEADER);
+
+ PacketHeaderFormat format;
+ bool version_flag;
+ uint8_t destination_connection_id_length;
+ QuicConnectionId destination_connection_id;
+ QuicVersionLabel version_label;
+ std::string detailed_error;
+ EXPECT_EQ(QUIC_NO_ERROR, QuicFramer::ProcessPacketDispatcher(
+ *encrypted, kQuicDefaultConnectionIdLength,
+ &format, &version_flag, &version_label,
+ &destination_connection_id_length,
+ &destination_connection_id, &detailed_error));
+ EXPECT_EQ(GOOGLE_QUIC_PACKET, format);
+ EXPECT_FALSE(version_flag);
+ EXPECT_EQ(kQuicDefaultConnectionIdLength, destination_connection_id_length);
+ EXPECT_EQ(FramerTestConnectionId(), destination_connection_id);
}
TEST_P(QuicFramerTest, LongPacketHeader) {
@@ -975,6 +991,22 @@
CheckFramingBoundaries(
framer_.transport_version() > QUIC_VERSION_44 ? packet46 : packet44,
QUIC_INVALID_PACKET_HEADER);
+
+ PacketHeaderFormat format;
+ bool version_flag;
+ uint8_t destination_connection_id_length;
+ QuicConnectionId destination_connection_id;
+ QuicVersionLabel version_label;
+ std::string detailed_error;
+ EXPECT_EQ(QUIC_NO_ERROR, QuicFramer::ProcessPacketDispatcher(
+ *encrypted, kQuicDefaultConnectionIdLength,
+ &format, &version_flag, &version_label,
+ &destination_connection_id_length,
+ &destination_connection_id, &detailed_error));
+ EXPECT_EQ(IETF_QUIC_LONG_HEADER_PACKET, format);
+ EXPECT_TRUE(version_flag);
+ EXPECT_EQ(kQuicDefaultConnectionIdLength, destination_connection_id_length);
+ EXPECT_EQ(FramerTestConnectionId(), destination_connection_id);
}
TEST_P(QuicFramerTest, PacketHeaderWith0ByteConnectionId) {
@@ -13251,6 +13283,34 @@
FramerTestConnectionIdNineBytes());
EXPECT_EQ(visitor_.header_.get()->packet_number,
QuicPacketNumber(UINT64_C(0x13374233)));
+
+ PacketHeaderFormat format;
+ bool version_flag;
+ uint8_t destination_connection_id_length;
+ QuicConnectionId destination_connection_id;
+ QuicVersionLabel version_label;
+ std::string detailed_error;
+ EXPECT_EQ(QUIC_NO_ERROR,
+ QuicFramer::ProcessPacketDispatcher(
+ QuicEncryptedPacket(AsChars(long_header_packet),
+ QUIC_ARRAYSIZE(long_header_packet)),
+ kQuicDefaultConnectionIdLength, &format, &version_flag,
+ &version_label, &destination_connection_id_length,
+ &destination_connection_id, &detailed_error));
+ EXPECT_EQ(IETF_QUIC_LONG_HEADER_PACKET, format);
+ EXPECT_TRUE(version_flag);
+ EXPECT_EQ(9, destination_connection_id_length);
+ EXPECT_EQ(FramerTestConnectionIdNineBytes(), destination_connection_id);
+
+ EXPECT_EQ(QUIC_NO_ERROR,
+ QuicFramer::ProcessPacketDispatcher(
+ short_header_encrypted, 9, &format, &version_flag,
+ &version_label, &destination_connection_id_length,
+ &destination_connection_id, &detailed_error));
+ EXPECT_EQ(IETF_QUIC_SHORT_HEADER_PACKET, format);
+ EXPECT_FALSE(version_flag);
+ EXPECT_EQ(9, destination_connection_id_length);
+ EXPECT_EQ(FramerTestConnectionIdNineBytes(), destination_connection_id);
}
TEST_P(QuicFramerTest, MultiplePacketNumberSpaces) {