Index: net/tools/quic/quic_dispatcher_test.cc |
diff --git a/net/tools/quic/quic_dispatcher_test.cc b/net/tools/quic/quic_dispatcher_test.cc |
index 384236ac8808a73b11525cb0fbe57ca5cf530150..3c78e671f7a43630a134112aa6e4ceb27b8dfca7 100644 |
--- a/net/tools/quic/quic_dispatcher_test.cc |
+++ b/net/tools/quic/quic_dispatcher_test.cc |
@@ -249,8 +249,9 @@ class QuicDispatcherTest : public ::testing::Test { |
QuicPacketNumber packet_number) { |
QuicVersionVector versions(SupportedVersions(version)); |
std::unique_ptr<QuicEncryptedPacket> packet(ConstructEncryptedPacket( |
- connection_id, has_version_flag, false, packet_number, data, |
- connection_id_length, packet_number_length, &versions)); |
+ GetPeerInMemoryConnectionId(connection_id), has_version_flag, false, |
+ packet_number, data, connection_id_length, packet_number_length, |
+ &versions)); |
std::unique_ptr<QuicReceivedPacket> received_packet( |
ConstructReceivedPacket(*packet, helper_.GetClock()->Now())); |
@@ -527,12 +528,13 @@ TEST_F(QuicDispatcherTest, TooBigSeqNoPacketToTimeWaitListManager) { |
} |
TEST_F(QuicDispatcherTest, SupportedVersionsChangeInFlight) { |
- static_assert(arraysize(kSupportedQuicVersions) == 5u, |
+ static_assert(arraysize(kSupportedQuicVersions) == 6u, |
"Supported versions out of sync"); |
FLAGS_quic_reloadable_flag_quic_disable_version_34 = false; |
FLAGS_quic_reloadable_flag_quic_enable_version_36_v3 = true; |
FLAGS_quic_reloadable_flag_quic_enable_version_37 = true; |
- FLAGS_quic_enable_version_38 = true; |
+ FLAGS_quic_reloadable_flag_quic_enable_version_38 = true; |
+ base::SetFlag(&FLAGS_quic_enable_version_39, true); |
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1); |
server_address_ = QuicSocketAddress(QuicIpAddress::Any4(), 5); |
QuicConnectionId connection_id = 1; |
@@ -570,6 +572,33 @@ TEST_F(QuicDispatcherTest, SupportedVersionsChangeInFlight) { |
ProcessPacket(client_address, connection_id, true, QuicVersionMax(), |
SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID, |
PACKET_6BYTE_PACKET_NUMBER, 1); |
+ |
+ // Turn off version 39. |
+ base::SetFlag(&FLAGS_quic_enable_version_39, false); |
+ ++connection_id; |
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, client_address)) |
+ .Times(0); |
+ ProcessPacket(client_address, connection_id, true, QUIC_VERSION_39, |
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID, |
+ PACKET_6BYTE_PACKET_NUMBER, 1); |
+ |
+ // Turn on version 39. |
+ base::SetFlag(&FLAGS_quic_enable_version_39, true); |
+ ++connection_id; |
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, client_address)) |
+ .WillOnce(testing::Return(CreateSession( |
+ dispatcher_.get(), config_, connection_id, client_address, |
+ &mock_helper_, &mock_alarm_factory_, &crypto_config_, |
+ QuicDispatcherPeer::GetCache(dispatcher_.get()), &session1_))); |
+ EXPECT_CALL(*reinterpret_cast<MockQuicConnection*>(session1_->connection()), |
+ ProcessUdpPacket(_, _, _)) |
+ .WillOnce(testing::WithArgs<2>( |
+ Invoke(CreateFunctor(&QuicDispatcherTest::ValidatePacket, |
+ base::Unretained(this), connection_id)))); |
+ ProcessPacket(client_address, connection_id, true, QUIC_VERSION_39, |
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID, |
+ PACKET_6BYTE_PACKET_NUMBER, 1); |
+ |
// Turn off version 36. |
FLAGS_quic_reloadable_flag_quic_enable_version_36_v3 = false; |
++connection_id; |