Pretty-print QUIC packets when expected write data does not match
actual write data in QUIC tests. Adds a new SocketDataPrinter interface
to socket_utils.h which can be used to pretty print socket data.
Bug: 966534
Change-Id: I8d48f7bc90ed583a311e0696730359ec2d5557e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1637450
Commit-Queue: Ryan Hamilton <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Auto-Submit: Ryan Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#666584}
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index 712f11a..c1344d1 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -1021,7 +1021,7 @@
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::CONFIRM_HANDSHAKE);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1053,7 +1053,7 @@
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::CONFIRM_HANDSHAKE);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1081,7 +1081,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1118,7 +1118,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1155,7 +1155,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1226,7 +1226,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1288,7 +1288,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1356,7 +1356,7 @@
AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1391,7 +1391,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC mail.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1440,7 +1440,7 @@
"QUIC " + proxy_host + ":70", TRAFFIC_ANNOTATION_FOR_TESTS);
client_maker_.set_hostname(origin_host);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1501,7 +1501,7 @@
crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
client_maker_.set_hostname(origin.host());
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1594,7 +1594,7 @@
// Second request should be sent via QUIC as a new list of verions supported
// by the client has been advertised by the server.
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1666,7 +1666,7 @@
// |http_data| exits the socket pool before the main job is aborted
// deterministic. The first main job gets aborted without the socket pool ever
// dispensing the socket, making it available for the second try.
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &request_header_offset));
@@ -1726,12 +1726,12 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data1;
+ MockQuicData mock_quic_data1(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data1.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
mock_quic_data1.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED);
- MockQuicData mock_quic_data2;
+ MockQuicData mock_quic_data2(version_);
header_stream_offset = 0;
mock_quic_data2.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1792,7 +1792,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1859,7 +1859,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1922,7 +1922,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -1967,7 +1967,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -2096,7 +2096,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -2161,7 +2161,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -2197,7 +2197,7 @@
// Not available under version 99
return;
}
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -2277,7 +2277,7 @@
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // Hanging read
int packet_num = 1;
quic_data.AddWrite(SYNCHRONOUS,
@@ -2318,7 +2318,7 @@
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
// Add data for the second QUIC connection to fail.
- MockQuicData quic_data2;
+ MockQuicData quic_data2(version_);
quic_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
quic_data2.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); // Write error.
quic_data2.AddSocketDataToFactory(&socket_factory_);
@@ -2392,7 +2392,7 @@
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // Hanging read
int packet_num = 1;
quic_data.AddWrite(SYNCHRONOUS,
@@ -2434,7 +2434,7 @@
// Quic connection will be retried on the alternate network after the initial
// one fails on the default network.
- MockQuicData quic_data2;
+ MockQuicData quic_data2(version_);
quic::QuicStreamOffset header_stream_offset = 0;
quic_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // Handing read.
quic_data2.AddWrite(SYNCHRONOUS,
@@ -2521,7 +2521,7 @@
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // Hanging read
int packet_num = 1;
quic_data.AddWrite(SYNCHRONOUS,
@@ -2552,7 +2552,7 @@
AddHangingNonAlternateProtocolSocketData();
// Quic connection will then be retried on the alternate network.
- MockQuicData quic_data2;
+ MockQuicData quic_data2(version_);
quic::QuicStreamOffset header_stream_offset = 0;
quic_data2.AddWrite(SYNCHRONOUS,
client_maker_.MakeDummyCHLOPacket(1)); // CHLO
@@ -2643,7 +2643,7 @@
session_params_.quic_idle_connection_timeout_seconds = 5;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -2760,7 +2760,7 @@
session_params_.quic_connection_options.push_back(quic::k5RTO);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -2887,7 +2887,7 @@
session_params_.quic_connection_options.push_back(quic::k5RTO);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3018,7 +3018,7 @@
TEST_P(QuicNetworkTransactionTest, ProtocolErrorAfterHandshakeConfirmed) {
session_params_.retry_without_alt_svc_on_quic_errors = false;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
quic_data.AddWrite(
@@ -3086,7 +3086,7 @@
session_params_.quic_idle_connection_timeout_seconds = 5;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3227,7 +3227,7 @@
session_params_.quic_idle_connection_timeout_seconds = 5;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3372,7 +3372,7 @@
session_params_.quic_idle_connection_timeout_seconds = 5;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3524,7 +3524,7 @@
session_params_.quic_connection_options.push_back(quic::k5RTO);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3676,7 +3676,7 @@
session_params_.quic_connection_options.push_back(quic::k5RTO);
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -3810,7 +3810,7 @@
session_params_.quic_idle_connection_timeout_seconds = 5;
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
quic_data.AddWrite(
@@ -3897,7 +3897,7 @@
// retried over TCP.
TEST_P(QuicNetworkTransactionTest, ResetAfterHandshakeConfirmedThenBroken) {
// The request will initially go out over QUIC.
- MockQuicData quic_data;
+ MockQuicData quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
spdy::SpdyPriority priority =
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
@@ -4003,7 +4003,7 @@
verify_details.cert_verify_result.is_issued_by_known_root = true;
crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset(0);
quic::QuicStreamOffset response_header_offset(0);
mock_quic_data.AddWrite(
@@ -4027,7 +4027,7 @@
mock_quic_data.AddRead(ASYNC, 0); // EOF
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
- MockQuicData mock_quic_data2;
+ MockQuicData mock_quic_data2(version_);
mock_quic_data2.AddSocketDataToFactory(&socket_factory_);
AddHangingNonAlternateProtocolSocketData();
@@ -4067,7 +4067,7 @@
GURL origin2("https://www.example.org/");
ASSERT_NE(origin1.host(), origin2.host());
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset(0);
quic::QuicStreamOffset response_header_offset(0);
@@ -4227,7 +4227,7 @@
// First QUIC request data.
// Open a session to foo.example.org:443 using the first entry of the
// alternative service list.
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &request_header_offset));
mock_quic_data.AddWrite(
@@ -4298,7 +4298,7 @@
// First QUIC request data.
// Open a session to foo.example.org:443 using the first entry of the
// alternative service list.
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &request_header_offset));
mock_quic_data.AddWrite(
@@ -4379,7 +4379,7 @@
// even if alternative service destination is different.
TEST_P(QuicNetworkTransactionTest, PoolByOrigin) {
session_params_.quic_allow_remote_alt_svc = true;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset(0);
quic::QuicStreamOffset response_header_offset(0);
@@ -4464,7 +4464,7 @@
GURL origin2("https://www.example.org/");
ASSERT_NE(origin1.host(), origin2.host());
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset(0);
quic::QuicStreamOffset response_header_offset(0);
@@ -4606,7 +4606,7 @@
client_headers_include_h2_stream_dependency_);
server_maker_.set_hostname("www.example.org");
client_maker_.set_hostname("www.example.org");
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &request_header_offset));
// First QUIC request data.
@@ -4713,7 +4713,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -4770,7 +4770,7 @@
socket_factory_.AddSocketDataProvider(&http_data);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -4807,7 +4807,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"HTTPS mail.example.org:443", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -4910,7 +4910,7 @@
}
TEST_P(QuicNetworkTransactionTest, ZeroRTTWithHttpRace) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
mock_quic_data.AddWrite(
@@ -4947,7 +4947,7 @@
}
TEST_P(QuicNetworkTransactionTest, ZeroRTTWithNoHttpRace) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructClientRequestHeadersPacket(
@@ -5012,7 +5012,7 @@
}
TEST_P(QuicNetworkTransactionTest, ZeroRTTWithConfirmationRequired) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5065,7 +5065,7 @@
}
TEST_P(QuicNetworkTransactionTest, ZeroRTTWithTooEarlyResponse) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset client_header_stream_offset = 0;
quic::QuicStreamOffset server_header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
@@ -5157,7 +5157,7 @@
}
TEST_P(QuicNetworkTransactionTest, ZeroRTTWithMultipleTooEarlyResponse) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset client_header_stream_offset = 0;
quic::QuicStreamOffset server_header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
@@ -5256,7 +5256,7 @@
TEST_P(QuicNetworkTransactionTest,
LogGranularQuicErrorCodeOnQuicProtocolErrorLocal) {
session_params_.retry_without_alt_svc_on_quic_errors = false;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5308,7 +5308,7 @@
TEST_P(QuicNetworkTransactionTest,
LogGranularQuicErrorCodeOnQuicProtocolErrorRemote) {
session_params_.retry_without_alt_svc_on_quic_errors = false;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5363,7 +5363,7 @@
}
TEST_P(QuicNetworkTransactionTest, RstSteamErrorHandling) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5428,7 +5428,7 @@
TEST_P(QuicNetworkTransactionTest, RstSteamBeforeHeaders) {
session_params_.retry_without_alt_svc_on_quic_errors = false;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5565,7 +5565,7 @@
// local IP address is sorted out after we configure the UDP socket.
http_server_properties_.SetSupportsQuic(true, IPAddress(192, 0, 2, 33));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
mock_quic_data.AddWrite(
@@ -5624,7 +5624,7 @@
// sorted out after we configure the UDP socket.
http_server_properties_.SetSupportsQuic(true, IPAddress(1, 2, 3, 4));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -5679,7 +5679,7 @@
// handshake has not yet been confirmed and no stream has been created.
// QUIC job will pause. When resumed, it will fail.
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING);
mock_quic_data.AddRead(ASYNC, ERR_CONNECTION_CLOSED);
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -5801,7 +5801,7 @@
}
TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnect) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(SYNCHRONOUS, client_maker_.MakeDummyCHLOPacket(1));
mock_quic_data.AddRead(ASYNC, ConstructServerConnectionClosePacket(1));
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -5860,7 +5860,7 @@
}
TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnectProxy) {
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(SYNCHRONOUS, client_maker_.MakeDummyCHLOPacket(1));
mock_quic_data.AddRead(ASYNC, ConstructServerConnectionClosePacket(1));
mock_quic_data.AddWrite(
@@ -5910,7 +5910,7 @@
client_maker_.set_hostname("www.example.org");
EXPECT_FALSE(
test_socket_performance_watcher_factory_.rtt_notification_received());
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -6030,7 +6030,7 @@
HostPortPair::FromString("mail.example.org:443"));
session_params_.quic_migrate_sessions_on_network_change_v2 = true;
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
quic::QuicStreamOffset offset = 0;
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
@@ -6042,7 +6042,7 @@
socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED);
socket_data.AddSocketDataToFactory(&socket_factory_);
- MockQuicData socket_data2;
+ MockQuicData socket_data2(version_);
socket_data2.AddConnect(SYNCHRONOUS, ERR_ADDRESS_INVALID);
socket_data2.AddSocketDataToFactory(&socket_factory_);
@@ -6075,7 +6075,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
quic::QuicStreamOffset offset = 0;
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
socket_data.AddWrite(ASYNC, ERR_NO_BUFFER_SPACE);
@@ -6111,7 +6111,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
quic::QuicStreamOffset offset = 0;
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
socket_data.AddWrite(SYNCHRONOUS, ERR_NO_BUFFER_SPACE);
@@ -6148,7 +6148,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
quic::QuicStreamOffset offset = 0;
socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
@@ -6185,7 +6185,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
quic::QuicStreamOffset offset = 0;
socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
@@ -6225,7 +6225,7 @@
quic::QuicStrCat("Write failed with error: ", ERR_MSG_TOO_BIG, " (",
strerror(ERR_MSG_TOO_BIG), ")");
- MockQuicData socket_data;
+ MockQuicData socket_data(version_);
quic::QuicStreamOffset offset = 0;
socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
socket_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(1, &offset));
@@ -6254,7 +6254,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
uint64_t client_packet_number = 1;
mock_quic_data.AddWrite(
@@ -6345,7 +6345,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
uint64_t client_packet_number = 1;
// Initial SETTINGS frame.
@@ -6436,7 +6436,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset offset = 0;
int write_packet_index = 1;
@@ -6532,7 +6532,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -6600,7 +6600,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
uint64_t client_packet_number = 1;
mock_quic_data.AddWrite(
@@ -6716,7 +6716,7 @@
AddCertificate(&ssl_data_);
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -7063,7 +7063,7 @@
verify_details.cert_verify_result.is_issued_by_known_root = true;
crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING);
mock_quic_data.AddRead(ASYNC, 0);
@@ -7116,7 +7116,7 @@
quic::QuicStreamOffset request_header_offset(0);
quic::QuicStreamOffset response_header_offset(0);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
mock_quic_data.AddWrite(
SYNCHRONOUS,
ConstructInitialSettingsPacket(1, &request_header_offset, &client_maker));
@@ -7214,7 +7214,7 @@
version_, quic::QuicUtils::CreateRandomConnectionId(&random_generator_),
&clock_, origin1_, quic::Perspective::IS_SERVER, false);
- MockQuicData mock_quic_data1;
+ MockQuicData mock_quic_data1(version_);
quic::QuicStreamOffset header_stream_offset1 = 0;
mock_quic_data1.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset1,
@@ -7246,7 +7246,7 @@
version_, quic::QuicUtils::CreateRandomConnectionId(&random_generator_),
&clock_, origin2_, quic::Perspective::IS_SERVER, false);
- MockQuicData mock_quic_data2;
+ MockQuicData mock_quic_data2(version_);
quic::QuicStreamOffset header_stream_offset2 = 0;
mock_quic_data2.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset2,
@@ -7282,7 +7282,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
uint64_t client_packet_number = 1;
mock_quic_data.AddWrite(
@@ -7410,7 +7410,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
@@ -7473,7 +7473,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -7566,7 +7566,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -7666,7 +7666,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
int write_packet_index = 1;
mock_quic_data.AddWrite(
@@ -7831,7 +7831,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset client_header_stream_offset = 0;
quic::QuicStreamOffset server_header_stream_offset = 0;
mock_quic_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(
@@ -8003,7 +8003,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -8052,7 +8052,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -8091,7 +8091,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset client_header_stream_offset = 0;
quic::QuicStreamOffset server_header_stream_offset = 0;
mock_quic_data.AddWrite(SYNCHRONOUS, ConstructInitialSettingsPacket(
@@ -8215,7 +8215,7 @@
proxy_resolution_service_ = ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -8265,7 +8265,7 @@
const RequestPriority request_priority = MEDIUM;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
SYNCHRONOUS, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -8305,7 +8305,7 @@
const RequestPriority kRequestPriority = MEDIUM;
const RequestPriority kRequestPriority2 = LOWEST;
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
mock_quic_data.AddWrite(
ASYNC, ConstructInitialSettingsPacket(1, &header_stream_offset));
@@ -8315,7 +8315,7 @@
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
// Second connection attempt just fails - result doesn't really matter.
- MockQuicData mock_quic_data2;
+ MockQuicData mock_quic_data2(version_);
mock_quic_data2.AddConnect(SYNCHRONOUS, ERR_FAILED);
mock_quic_data2.AddSocketDataToFactory(&socket_factory_);
@@ -8387,7 +8387,7 @@
ProxyResolutionService::CreateFixedFromPacResult(
"QUIC proxy.example.org:70", TRAFFIC_ANNOTATION_FOR_TESTS);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset client_header_stream_offset = 0;
quic::QuicStreamOffset server_header_stream_offset = 0;
quic::QuicStreamOffset client_data_offset = 0;
@@ -8555,7 +8555,7 @@
const quic::QuicStreamId push_stream_1 =
GetNthServerInitiatedUnidirectionalStreamId(1);
- MockQuicData mock_quic_data;
+ MockQuicData mock_quic_data(version_);
quic::QuicStreamOffset header_stream_offset = 0;
quic::QuicStreamOffset server_header_offset = 0;
mock_quic_data.AddWrite(
@@ -8777,7 +8777,7 @@
session_params_.origins_to_force_quic_on.insert(
HostPortPair::FromString("mail.example.org:443"));
- MockQuicData unpartitioned_mock_quic_data;
+ MockQuicData unpartitioned_mock_quic_data(version_);
quic::QuicStreamOffset request_header_offset = 0;
quic::QuicStreamOffset response_header_offset = 0;
QuicTestPacketMaker client_maker1(
@@ -8855,7 +8855,7 @@
// Reads and writes for the partitioned case, where two sockets are used.
- MockQuicData partitioned_mock_quic_data1;
+ MockQuicData partitioned_mock_quic_data1(version_);
request_header_offset = 0;
response_header_offset = 0;
QuicTestPacketMaker client_maker2(
@@ -8912,7 +8912,7 @@
partitioned_mock_quic_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
- MockQuicData partitioned_mock_quic_data2;
+ MockQuicData partitioned_mock_quic_data2(version_);
request_header_offset = 0;
response_header_offset = 0;
QuicTestPacketMaker client_maker3(
@@ -9033,7 +9033,9 @@
"HTTP/1.1 200 OK\r\n"
"Content-Length: 10\r\n\r\n";
- MockQuicData mock_quic_data[2];
+ std::unique_ptr<MockQuicData> mock_quic_data[2] = {
+ std::make_unique<MockQuicData>(version_),
+ std::make_unique<MockQuicData>(version_)};
for (int index : {0, 1}) {
QuicTestPacketMaker client_maker(
@@ -9045,11 +9047,11 @@
&clock_, kDefaultServerHostName, quic::Perspective::IS_SERVER, false);
quic::QuicStreamOffset header_stream_offset = 0;
- mock_quic_data[index].AddWrite(
+ mock_quic_data[index]->AddWrite(
SYNCHRONOUS,
client_maker.MakeInitialSettingsPacket(1, &header_stream_offset));
- mock_quic_data[index].AddWrite(
+ mock_quic_data[index]->AddWrite(
SYNCHRONOUS,
client_maker.MakeRequestHeadersPacketWithOffsetTracking(
2, GetNthClientInitiatedBidirectionalStreamId(0), true, false,
@@ -9057,20 +9059,20 @@
HttpProxyConnectJob::kH2QuicTunnelPriority),
ConnectRequestHeaders("mail.example.org:443"), 0,
&header_stream_offset));
- mock_quic_data[index].AddRead(
+ mock_quic_data[index]->AddRead(
ASYNC, server_maker.MakeResponseHeadersPacketWithOffsetTracking(
1, GetNthClientInitiatedBidirectionalStreamId(0), false,
false, GetResponseHeaders("200 OK"), nullptr));
std::string header = ConstructDataHeader(strlen(kGetRequest));
if (version_.transport_version != quic::QUIC_VERSION_99) {
- mock_quic_data[index].AddWrite(
+ mock_quic_data[index]->AddWrite(
SYNCHRONOUS,
client_maker.MakeAckAndDataPacket(
3, false, GetNthClientInitiatedBidirectionalStreamId(0), 1, 1, 1,
false, 0, quic::QuicStringPiece(kGetRequest)));
} else {
- mock_quic_data[index].AddWrite(
+ mock_quic_data[index]->AddWrite(
SYNCHRONOUS,
client_maker.MakeAckAndMultipleDataFramesPacket(
3, false, GetNthClientInitiatedBidirectionalStreamId(0), 1, 1, 1,
@@ -9078,21 +9080,21 @@
}
std::string header2 = ConstructDataHeader(strlen(kGetResponse));
- mock_quic_data[index].AddRead(
+ mock_quic_data[index]->AddRead(
ASYNC, server_maker.MakeDataPacket(
2, GetNthClientInitiatedBidirectionalStreamId(0), false,
false, 0, header2 + std::string(kGetResponse)));
- mock_quic_data[index].AddRead(
+ mock_quic_data[index]->AddRead(
SYNCHRONOUS, server_maker.MakeDataPacket(
3, GetNthClientInitiatedBidirectionalStreamId(0),
false, false, strlen(kGetResponse) + header2.length(),
ConstructDataHeader(10) + std::string("0123456789")));
- mock_quic_data[index].AddWrite(
+ mock_quic_data[index]->AddWrite(
SYNCHRONOUS, client_maker.MakeAckPacket(4, 3, 2, 1, true));
- mock_quic_data[index].AddRead(SYNCHRONOUS,
- ERR_IO_PENDING); // No more data to read
+ mock_quic_data[index]->AddRead(SYNCHRONOUS,
+ ERR_IO_PENDING); // No more data to read
- mock_quic_data[index].AddSocketDataToFactory(&socket_factory_);
+ mock_quic_data[index]->AddSocketDataToFactory(&socket_factory_);
}
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
@@ -9114,10 +9116,10 @@
RunTransaction(&trans2);
CheckResponseData(&trans2, "0123456789");
- EXPECT_TRUE(mock_quic_data[0].AllReadDataConsumed());
- EXPECT_TRUE(mock_quic_data[0].AllWriteDataConsumed());
- EXPECT_TRUE(mock_quic_data[1].AllReadDataConsumed());
- EXPECT_TRUE(mock_quic_data[1].AllWriteDataConsumed());
+ EXPECT_TRUE(mock_quic_data[0]->AllReadDataConsumed());
+ EXPECT_TRUE(mock_quic_data[0]->AllWriteDataConsumed());
+ EXPECT_TRUE(mock_quic_data[1]->AllReadDataConsumed());
+ EXPECT_TRUE(mock_quic_data[1]->AllWriteDataConsumed());
}
} // namespace test