Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Unified Diff: net/tools/quic/quic_dispatcher_test.cc

Issue 2516033003: Landing Recent QUIC changes until Mon Nov 14 04:43:50 2016 +0000 (Closed)
Patch Set: Remove unused UpdatePacketGapSentHistogram() function. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/tools/quic/quic_dispatcher.cc ('k') | net/tools/quic/quic_in_memory_cache_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 46ad07e9b266ccbf07b7ddc137e2bae60d5cf7f0..46a44bb837210782de9249c01e69f554f228e95b 100644
--- a/net/tools/quic/quic_dispatcher_test.cc
+++ b/net/tools/quic/quic_dispatcher_test.cc
@@ -537,6 +537,74 @@ TEST_F(QuicDispatcherTest, TooBigSeqNoPacketToTimeWaitListManager) {
QuicDispatcher::kMaxReasonableInitialPacketNumber + 1);
}
+TEST_F(QuicDispatcherTest, SupportedVersionsChangeInFlight) {
+ DCHECK_EQ(3u, arraysize(kSupportedQuicVersions));
+ FLAGS_quic_fix_version_manager = true;
+ FLAGS_quic_enable_version_36_v3 = true;
+ IPEndPoint client_address(Loopback4(), 1);
+ server_address_ = IPEndPoint(Any4(), 5);
+ QuicConnectionId connection_id = 1;
+
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, client_address))
+ .Times(0);
+ ProcessPacket(client_address, connection_id, true,
+ static_cast<QuicVersion>(QuicVersionMin() - 1), SerializeCHLO(),
+ PACKET_8BYTE_CONNECTION_ID, PACKET_6BYTE_PACKET_NUMBER, 1);
+ ++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, QuicVersionMin(),
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID,
+ PACKET_6BYTE_PACKET_NUMBER, 1);
+ ++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, QuicVersionMax(),
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID,
+ PACKET_6BYTE_PACKET_NUMBER, 1);
+ // Turn off version 36.
+ FLAGS_quic_enable_version_36_v3 = false;
+ ++connection_id;
+ EXPECT_CALL(*dispatcher_, CreateQuicSession(connection_id, client_address))
+ .Times(0);
+ ProcessPacket(client_address, connection_id, true, QUIC_VERSION_36,
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID,
+ PACKET_6BYTE_PACKET_NUMBER, 1);
+
+ // Turn on version 36.
+ FLAGS_quic_enable_version_36_v3 = 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_35,
+ SerializeCHLO(), PACKET_8BYTE_CONNECTION_ID,
+ PACKET_6BYTE_PACKET_NUMBER, 1);
+}
+
// Enables mocking of the handshake-confirmation for stateless rejects.
class MockQuicCryptoServerStream : public QuicCryptoServerStream {
public:
@@ -1064,7 +1132,7 @@ class BufferedPacketStoreTest
BufferedPacketStoreTest()
: QuicDispatcherTest(),
client_addr_(Loopback4(), 1234),
- proof_(new QuicCryptoProof) {
+ signed_config_(new QuicSignedServerConfig) {
FLAGS_quic_use_cheap_stateless_rejects =
GetParam().support_cheap_stateless_reject;
FLAGS_enable_quic_stateless_reject_support =
@@ -1082,7 +1150,8 @@ class BufferedPacketStoreTest
// Pass an inchoate CHLO.
CryptoTestUtils::GenerateFullCHLO(
chlo, &crypto_config_, server_ip_, client_addr_, version, clock_,
- proof_, QuicDispatcherPeer::GetCache(dispatcher_.get()), &full_chlo_);
+ signed_config_, QuicDispatcherPeer::GetCache(dispatcher_.get()),
+ &full_chlo_);
}
string SerializeFullCHLO() {
@@ -1092,7 +1161,7 @@ class BufferedPacketStoreTest
protected:
IPAddress server_ip_;
IPEndPoint client_addr_;
- scoped_refptr<QuicCryptoProof> proof_;
+ scoped_refptr<QuicSignedServerConfig> signed_config_;
const QuicClock* clock_;
CryptoHandshakeMessage full_chlo_;
};
@@ -1512,7 +1581,7 @@ class AsyncGetProofTest : public QuicDispatcherTest {
std::unique_ptr<FakeProofSource>(new FakeProofSource())),
client_addr_(net::test::Loopback4(), 1234),
crypto_config_peer_(&crypto_config_),
- proof_(new QuicCryptoProof) {
+ signed_config_(new QuicSignedServerConfig) {
FLAGS_enable_async_get_proof = true;
FLAGS_enable_quic_stateless_reject_support = true;
FLAGS_quic_use_cheap_stateless_rejects = true;
@@ -1530,7 +1599,8 @@ class AsyncGetProofTest : public QuicDispatcherTest {
// Pass an inchoate CHLO.
CryptoTestUtils::GenerateFullCHLO(
chlo_, &crypto_config_, server_ip_, client_addr_, version, clock_,
- proof_, QuicDispatcherPeer::GetCache(dispatcher_.get()), &full_chlo_);
+ signed_config_, QuicDispatcherPeer::GetCache(dispatcher_.get()),
+ &full_chlo_);
GetFakeProofSource()->Activate();
}
@@ -1580,7 +1650,7 @@ class AsyncGetProofTest : public QuicDispatcherTest {
private:
QuicCryptoServerConfigPeer crypto_config_peer_;
IPAddress server_ip_;
- scoped_refptr<QuicCryptoProof> proof_;
+ scoped_refptr<QuicSignedServerConfig> signed_config_;
const QuicClock* clock_;
CryptoHandshakeMessage chlo_;
CryptoHandshakeMessage full_chlo_;
« no previous file with comments | « net/tools/quic/quic_dispatcher.cc ('k') | net/tools/quic/quic_in_memory_cache_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698