Use separate least_unacked params for ACK and STOP_WAITING in QUIC test helper functions
Some functions in QuicTestPacketMaker used for creating ACK packets use a param "least_unacked" for both the ACK frame and the STOP_WAITING frame. This is misleading since the least_unacked packet number in the context of these two frame types refer to different sides of a QUIC connection. Instead, two separate params are used: "ack_least_unacked" and "stop_least_unacked". Net unit-test functions that wrap around the affected QuicTestPacketMaker functions are also updated.
BUG=
Review-Url: https://codereview.chromium.org/2836343002
Cr-Commit-Position: refs/heads/master@{#467040}
diff --git a/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc b/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
index 779035f..5670cc2 100644
--- a/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
+++ b/net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc
@@ -610,11 +610,11 @@
std::unique_ptr<QuicReceivedPacket> ConstructClientAckAndRstStreamPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked) {
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked) {
return client_maker_.MakeAckAndRstPacket(
packet_number, !kIncludeVersion, stream_id_, QUIC_STREAM_CANCELLED,
- largest_received, ack_least_unacked, stop_least_unacked,
+ largest_received, smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
@@ -622,6 +622,7 @@
QuicPacketNumber packet_number,
bool should_include_version,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
bool fin,
QuicStreamOffset offset,
@@ -629,7 +630,7 @@
QuicTestPacketMaker* maker) {
std::unique_ptr<QuicReceivedPacket> packet(maker->MakeAckAndDataPacket(
packet_number, should_include_version, stream_id_, largest_received,
- least_unacked, fin, offset, data));
+ smallest_received, least_unacked, fin, offset, data));
DVLOG(2) << "packet(" << packet_number << "): " << std::endl
<< QuicTextUtils::HexDump(packet->AsStringPiece());
return packet;
@@ -638,18 +639,20 @@
std::unique_ptr<QuicReceivedPacket> ConstructClientAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return client_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked,
+ smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return server_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked,
+ smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
@@ -722,7 +725,7 @@
AddWrite(ConstructSettingsPacket(2, SETTINGS_MAX_HEADER_LIST_SIZE,
kDefaultMaxUncompressedHeaderSize,
&header_stream_offset));
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
Initialize();
@@ -741,7 +744,7 @@
ConfirmHandshake();
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -823,7 +826,7 @@
2, kClientDataStreamId2, kFin, DEFAULT_PRIORITY, nullptr, &offset));
AddWrite(ConstructSettingsPacket(3, SETTINGS_MAX_HEADER_LIST_SIZE,
kDefaultMaxUncompressedHeaderSize, &offset));
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
Initialize();
BidirectionalStreamRequestInfo request;
@@ -849,7 +852,7 @@
ConfirmHandshake();
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
offset = 0;
@@ -896,7 +899,7 @@
AddWrite(ConstructClientMultipleDataFramesPacket(3, kIncludeVersion, !kFin, 0,
{kBody1, kBody2}));
// Ack server's data packet.
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
const char kBody3[] = "hello there";
const char kBody4[] = "another piece of small data";
const char kBody5[] = "really small";
@@ -933,7 +936,7 @@
delegate->WaitUntilNextCallback(); // OnDataSent
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1006,7 +1009,7 @@
2, !kFin, DEFAULT_PRIORITY, &header_stream_offset,
&spdy_request_headers_frame_length, {kBody1}));
// Ack server's data packet.
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
const char kBody2[] = "really small";
QuicStreamOffset data_offset = strlen(kBody1);
AddWrite(ConstructClientMultipleDataFramesPacket(4, !kIncludeVersion, kFin,
@@ -1035,7 +1038,7 @@
delegate->WaitUntilNextCallback(); // OnDataSent
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1105,7 +1108,7 @@
2, !kFin, DEFAULT_PRIORITY, &header_stream_offset,
&spdy_request_headers_frame_length, two_writes));
// Ack server's data packet.
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
const char kBody3[] = "hello there";
const char kBody4[] = "another piece of small data";
const char kBody5[] = "really small";
@@ -1138,7 +1141,7 @@
delegate->WaitUntilNextCallback(); // OnDataSent
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1208,7 +1211,7 @@
&header_stream_offset));
AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, 0, kUploadData,
&client_maker_));
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
Initialize();
@@ -1232,7 +1235,7 @@
delegate->WaitUntilNextCallback(); // OnDataSent
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1286,7 +1289,7 @@
&spdy_request_headers_frame_length));
AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, kUploadData,
&client_maker_));
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
Initialize();
@@ -1309,7 +1312,7 @@
delegate->WaitUntilNextCallback(); // OnDataSent
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1367,9 +1370,9 @@
AddWrite(ConstructSettingsPacket(2, SETTINGS_MAX_HEADER_LIST_SIZE,
kDefaultMaxUncompressedHeaderSize,
&header_stream_offset));
- AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, !kFin, 0,
+ AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin, 0,
kUploadData, &client_maker_));
- AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, kFin,
+ AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, 3, kFin,
strlen(kUploadData), kUploadData,
&client_maker_));
Initialize();
@@ -1388,7 +1391,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1412,8 +1415,8 @@
const char kResponseBody[] = "Hello world!";
// Server sends a data packet.
- ProcessPacket(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, !kFin, 0,
- kResponseBody, &server_maker_));
+ ProcessPacket(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin,
+ 0, kResponseBody, &server_maker_));
EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb.WaitForResult());
EXPECT_EQ(std::string(kResponseBody), delegate->data_received());
@@ -1425,7 +1428,7 @@
TestCompletionCallback cb2;
rv = delegate->ReadData(cb2.callback());
EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
- ProcessPacket(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 1, kFin,
+ ProcessPacket(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 1, 1, kFin,
strlen(kResponseBody), kResponseBody,
&server_maker_));
@@ -1501,7 +1504,7 @@
kDefaultMaxUncompressedHeaderSize,
&header_stream_offset));
// Why does QUIC ack Rst? Is this expected?
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
Initialize();
@@ -1519,7 +1522,7 @@
ConfirmHandshake();
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1579,7 +1582,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1643,7 +1646,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1700,7 +1703,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1729,7 +1732,7 @@
AddWrite(ConstructSettingsPacket(2, SETTINGS_MAX_HEADER_LIST_SIZE,
kDefaultMaxUncompressedHeaderSize,
&header_stream_offset));
- AddWrite(ConstructClientAckPacket(3, 3, 1));
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
AddWrite(ConstructClientRstStreamPacket(4));
Initialize();
@@ -1748,7 +1751,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
@@ -1782,7 +1785,7 @@
size_t spdy_request_headers_frame_length;
AddWrite(ConstructRequestHeadersPacket(1, kFin, DEFAULT_PRIORITY,
&spdy_request_headers_frame_length));
- AddWrite(ConstructClientAckPacket(2, 3, 1)); // Ack the data packet
+ AddWrite(ConstructClientAckPacket(2, 3, 1, 1)); // Ack the data packet
AddWrite(ConstructClientAckAndRstStreamPacket(3, 4, 4, 1));
Initialize();
@@ -1801,7 +1804,7 @@
delegate->WaitUntilNextCallback(); // OnStreamReady
// Server acks the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Server sends the response headers.
SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
diff --git a/net/quic/chromium/quic_chromium_client_session_test.cc b/net/quic/chromium/quic_chromium_client_session_test.cc
index 860db999..a3cf2e3d 100644
--- a/net/quic/chromium/quic_chromium_client_session_test.cc
+++ b/net/quic/chromium/quic_chromium_client_session_test.cc
@@ -750,7 +750,7 @@
std::unique_ptr<QuicEncryptedPacket> server_ping(
server_maker_.MakePingPacket(1, /*include_version=*/false));
std::unique_ptr<QuicEncryptedPacket> ack_and_data_out(
- client_maker_.MakeAckAndDataPacket(3, false, 5, 1, 1, false, 0,
+ client_maker_.MakeAckAndDataPacket(3, false, 5, 1, 1, 1, false, 0,
QuicStringPiece(data)));
MockRead reads[] = {
MockRead(SYNCHRONOUS, server_ping->data(), server_ping->length(), 0),
diff --git a/net/quic/chromium/quic_http_stream_test.cc b/net/quic/chromium/quic_http_stream_test.cc
index 3fd43eaa9..1c8e37a 100644
--- a/net/quic/chromium/quic_http_stream_test.cc
+++ b/net/quic/chromium/quic_http_stream_test.cc
@@ -490,11 +490,11 @@
std::unique_ptr<QuicReceivedPacket> ConstructAckAndRstStreamPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked) {
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked) {
return client_maker_.MakeAckAndRstPacket(
packet_number, !kIncludeVersion, stream_id_, QUIC_STREAM_CANCELLED,
- largest_received, ack_least_unacked, stop_least_unacked,
+ largest_received, smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
@@ -514,18 +514,20 @@
std::unique_ptr<QuicReceivedPacket> ConstructClientAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return client_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked,
+ smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return server_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked,
+ smallest_received, least_unacked,
!kIncludeCongestionFeedback);
}
@@ -659,7 +661,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -711,7 +713,7 @@
AddWrite(InnerConstructRequestHeadersPacket(
3, kClientDataStreamId2, kIncludeVersion, kFin, DEFAULT_PRIORITY,
&spdy_request_header_frame_length, &offset));
- AddWrite(ConstructClientAckPacket(4, 3, 1)); // Ack the responses.
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); // Ack the responses.
Initialize();
@@ -734,7 +736,7 @@
stream2.SendRequest(headers_, &response_, callback2.callback()));
// Ack both requests.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -790,7 +792,7 @@
AddWrite(InnerConstructRequestHeadersPacket(
2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
&spdy_request_header_frame_length, &header_stream_offset));
- AddWrite(ConstructClientAckPacket(3, 3, 1)); // Ack the data packet.
+ AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); // Ack the data packet.
Initialize();
@@ -804,7 +806,7 @@
EXPECT_EQ(OK,
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -898,7 +900,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -1029,7 +1031,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -1069,7 +1071,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -1135,7 +1137,7 @@
2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
&spdy_request_headers_frame_length, &header_stream_offset));
AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, kUploadData));
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
Initialize();
@@ -1157,7 +1159,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack both packets in the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Send the response headers (but not the body).
SetResponse("200 OK", string());
@@ -1209,7 +1211,7 @@
ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData));
AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size,
kUploadData));
- AddWrite(ConstructClientAckPacket(5, 3, 1));
+ AddWrite(ConstructClientAckPacket(5, 3, 1, 1));
Initialize();
ChunkedUploadDataStream upload_data_stream(0);
@@ -1231,7 +1233,7 @@
EXPECT_THAT(callback_.WaitForResult(), IsOk());
// Ack both packets in the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Send the response headers (but not the body).
SetResponse("200 OK", string());
@@ -1284,7 +1286,7 @@
AddWrite(
ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData));
AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size, ""));
- AddWrite(ConstructClientAckPacket(5, 3, 1));
+ AddWrite(ConstructClientAckPacket(5, 3, 1, 1));
Initialize();
ChunkedUploadDataStream upload_data_stream(0);
@@ -1305,7 +1307,7 @@
upload_data_stream.AppendData(nullptr, 0, true);
EXPECT_THAT(callback_.WaitForResult(), IsOk());
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Send the response headers (but not the body).
SetResponse("200 OK", string());
@@ -1354,7 +1356,7 @@
2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
&spdy_request_headers_frame_length, &header_stream_offset));
AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, ""));
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
Initialize();
ChunkedUploadDataStream upload_data_stream(0);
@@ -1374,7 +1376,7 @@
upload_data_stream.AppendData(nullptr, 0, true);
EXPECT_THAT(callback_.WaitForResult(), IsOk());
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
// Send the response headers (but not the body).
SetResponse("200 OK", string());
@@ -1436,7 +1438,7 @@
stream_->SendRequest(headers_, &response_, callback_.callback()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -1491,7 +1493,7 @@
ConvertQuicPriorityToRequestPriority(reliable_stream->priority()));
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
EXPECT_THAT(stream_->ReadResponseHeaders(callback_.callback()),
IsError(ERR_IO_PENDING));
@@ -2016,7 +2018,7 @@
AddWrite(InnerConstructRequestHeadersPacket(
3, stream_id_ + 2, !kIncludeVersion, kFin, DEFAULT_PRIORITY,
&spdy_request_header_frame_length, &header_stream_offset));
- AddWrite(ConstructClientAckPacket(4, 3, 1));
+ AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
AddWrite(ConstructClientRstStreamCancelledPacket(5));
Initialize();
@@ -2085,7 +2087,7 @@
// client-initiated version of |promised_stream_| works as intended.
// Ack the request.
- ProcessPacket(ConstructServerAckPacket(2, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(2, 0, 0, 0));
SetResponse("404 Not Found", string());
size_t spdy_response_header_frame_length;
@@ -2185,7 +2187,7 @@
int result = stream_->SendRequest(headers_, &response_, callback_.callback());
- ProcessPacket(ConstructServerAckPacket(1, 0, 0));
+ ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
SetResponse("200 OK", string());
EXPECT_THAT(result, IsError(ERR_IO_PENDING));
diff --git a/net/quic/chromium/quic_network_transaction_unittest.cc b/net/quic/chromium/quic_network_transaction_unittest.cc
index 011e8eba..f2b6030 100644
--- a/net/quic/chromium/quic_network_transaction_unittest.cc
+++ b/net/quic/chromium/quic_network_transaction_unittest.cc
@@ -289,59 +289,42 @@
std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return client_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked, least_unacked, true);
+ smallest_received, least_unacked, true);
}
std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
QuicTime::Delta ack_delay_time) {
return client_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked, least_unacked, true,
+ smallest_received, least_unacked, true,
ack_delay_time);
}
- std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket(
- QuicPacketNumber largest_received,
- QuicPacketNumber least_unacked) {
- return client_maker_.MakeAckPacket(2, largest_received, least_unacked,
- least_unacked, true);
- }
-
- std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket(
- QuicPacketNumber packet_number,
- QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked) {
- return client_maker_.MakeAckPacket(packet_number, largest_received,
- ack_least_unacked, stop_least_unacked,
- true);
- }
-
std::unique_ptr<QuicEncryptedPacket> ConstructClientAckAndRstPacket(
QuicPacketNumber num,
QuicStreamId stream_id,
QuicRstStreamErrorCode error_code,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked) {
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked) {
return client_maker_.MakeAckAndRstPacket(
- num, false, stream_id, error_code, largest_received, ack_least_unacked,
- stop_least_unacked, true);
+ num, false, stream_id, error_code, largest_received, smallest_received,
+ least_unacked, true);
}
std::unique_ptr<QuicEncryptedPacket>
- ConstructClientAckAndConnectionClosePacket(
- QuicPacketNumber packet_number,
- QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked) {
+ ConstructClientAckAndConnectionClosePacket(QuicPacketNumber packet_number,
+ QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked) {
return client_maker_.MakeAckPacket(packet_number, largest_received,
- ack_least_unacked, stop_least_unacked,
- true);
+ smallest_received, least_unacked, true);
}
std::unique_ptr<QuicEncryptedPacket>
@@ -349,12 +332,13 @@
QuicPacketNumber num,
QuicTime::Delta delta_time_largest_observed,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
QuicErrorCode quic_error,
const std::string& quic_error_details) {
return client_maker_.MakeAckAndConnectionClosePacket(
num, false, delta_time_largest_observed, largest_received,
- least_unacked, quic_error, quic_error_details);
+ smallest_received, least_unacked, quic_error, quic_error_details);
}
std::unique_ptr<QuicEncryptedPacket> ConstructServerRstPacket(
@@ -378,9 +362,10 @@
std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked) {
return server_maker_.MakeAckPacket(packet_number, largest_received,
- least_unacked, false);
+ smallest_received, least_unacked, false);
}
// Uses default QuicTestPacketMaker.
@@ -801,7 +786,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -832,7 +817,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -863,7 +848,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -928,7 +913,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -957,7 +942,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -1000,7 +985,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0);
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -1054,7 +1039,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0);
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -1211,7 +1196,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -1250,7 +1235,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -1355,7 +1340,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -1384,7 +1369,7 @@
mock_quic_data.AddSynchronousRead(ConstructServerGoAwayPacket(
2, QUIC_ERROR_MIGRATING_PORT,
"connection migration with port change only"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddSynchronousRead(ConstructServerDataPacket(
3, kClientDataStreamId1, false, true, 0, "hello!"));
mock_quic_data.AddWrite(ConstructClientAckAndRstPacket(
@@ -1574,7 +1559,7 @@
12, kHeadersStreamId, true, false, settings_offset, settings_data));
// RTO 5
quic_data.AddWrite(client_maker_.MakeAckAndConnectionClosePacket(
- 13, true, QuicTime::Delta::Infinite(), 0, 1, QUIC_TOO_MANY_RTOS,
+ 13, true, QuicTime::Delta::Infinite(), 0, 1, 1, QUIC_TOO_MANY_RTOS,
"5 consecutive retransmission timeouts"));
quic_data.AddRead(ASYNC, OK);
@@ -1677,7 +1662,7 @@
false, 0, request_data));
// RTO 5
quic_data.AddWrite(client_maker_.MakeAckAndConnectionClosePacket(
- 14, true, QuicTime::Delta::Infinite(), 0, 1, QUIC_TOO_MANY_RTOS,
+ 14, true, QuicTime::Delta::Infinite(), 0, 1, 1, QUIC_TOO_MANY_RTOS,
"5 consecutive retransmission timeouts"));
quic_data.AddRead(ASYNC, OK);
@@ -1748,7 +1733,7 @@
ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR));
std::string quic_error_details = "Data for nonexistent stream";
quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket(
- 3, QuicTime::Delta::Zero(), 1, 1, QUIC_INVALID_STREAM_ID,
+ 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID,
quic_error_details));
quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -2060,8 +2045,8 @@
quic_data.AddRead(ConstructServerResponseHeadersPacket(
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
// quic_data.AddWrite(ConstructClientAckPacket(3, 1, 1));
- quic_data.AddWrite(
- ConstructClientAckPacket(3, 1, 1, QuicTime::Delta::FromMilliseconds(25)));
+ quic_data.AddWrite(ConstructClientAckPacket(
+ 3, 1, 1, 1, QuicTime::Delta::FromMilliseconds(25)));
// TLP 1
quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, false,
@@ -2196,7 +2181,7 @@
12, kHeadersStreamId, true, false, settings_offset, settings_data));
quic_data.AddWrite(client_maker_.MakeAckAndConnectionClosePacket(
- 13, true, QuicTime::Delta::Infinite(), 0, 1, QUIC_TOO_MANY_RTOS,
+ 13, true, QuicTime::Delta::Infinite(), 0, 1, 1, QUIC_TOO_MANY_RTOS,
"5 consecutive retransmission timeouts"));
quic_data.AddRead(ASYNC, OK);
@@ -2325,7 +2310,7 @@
false, 0, request_data));
// RTO 5
quic_data.AddWrite(client_maker_.MakeAckAndConnectionClosePacket(
- 14, true, QuicTime::Delta::Infinite(), 0, 1, QUIC_TOO_MANY_RTOS,
+ 14, true, QuicTime::Delta::Infinite(), 0, 1, 1, QUIC_TOO_MANY_RTOS,
"5 consecutive retransmission timeouts"));
quic_data.AddRead(ASYNC, OK);
@@ -2401,7 +2386,7 @@
ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR));
std::string quic_error_details = "Data for nonexistent stream";
quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket(
- 3, QuicTime::Delta::Zero(), 1, 1, QUIC_INVALID_STREAM_ID,
+ 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID,
quic_error_details));
quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -2530,7 +2515,7 @@
GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
// Second QUIC request data.
// Connection pooling, using existing session, no need to include version
@@ -2583,7 +2568,7 @@
GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
// Second QUIC request data.
// Connection pooling, using existing session, no need to include version
@@ -2649,7 +2634,7 @@
&response_header_offset));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
// Second request.
mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
@@ -2719,7 +2704,7 @@
&response_header_offset));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
// Second request.
QuicTestPacketMaker client_maker2(version_, 0, &clock_, origin2.host(),
@@ -2834,7 +2819,7 @@
&response_header_offset));
mock_quic_data.AddRead(ConstructServerDataPacket(
2, kClientDataStreamId1, false, true, 0, "hello from mail QUIC!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
// Second QUIC request data.
mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
4, kClientDataStreamId2, false, true,
@@ -2923,7 +2908,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -2975,7 +2960,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, 0); // EOF
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -3006,7 +2991,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -3102,7 +3087,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(2, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -3130,7 +3115,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(2, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddRead(ASYNC, 0); // EOF
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -3202,7 +3187,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -3311,7 +3296,7 @@
ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR));
std::string quic_error_details = "Data for nonexistent stream";
mock_quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket(
- 3, QuicTime::Delta::Zero(), 1, 1, QUIC_INVALID_STREAM_ID,
+ 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID,
quic_error_details));
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -3366,7 +3351,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerRstPacket(
2, false, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data.
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -3646,7 +3631,7 @@
mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
1, kClientDataStreamId1, true, true,
GetRequestHeaders("GET", "https", "/")));
- mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1, 1, 1));
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
// When the QUIC connection fails, we will try the request again over HTTP.
@@ -3712,7 +3697,7 @@
mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
1, kClientDataStreamId1, true, true,
GetRequestHeaders("GET", "https", "/")));
- mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(2, 1, 1, 1));
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
// When the QUIC connection fails, we will try the request again over HTTP.
@@ -3771,7 +3756,7 @@
1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1,
false, true, 0, "hello!"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data.
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
@@ -4082,7 +4067,7 @@
mock_quic_data.AddRead(ConstructServerDataPacket(
2, kClientDataStreamId1, false, true, 0, "Main Resource Data"));
- mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1));
+ mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1));
mock_quic_data.AddRead(ASYNC, 0); // EOF
@@ -4323,11 +4308,11 @@
std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked,
QuicTestPacketMaker* maker) {
return maker->MakeAckPacket(packet_number, largest_received,
- ack_least_unacked, stop_least_unacked, true);
+ smallest_received, least_unacked, true);
}
std::unique_ptr<QuicReceivedPacket> ConstructSettingsPacket(
diff --git a/net/quic/chromium/quic_test_packet_maker.cc b/net/quic/chromium/quic_test_packet_maker.cc
index 9980a408..1ef4ac83 100644
--- a/net/quic/chromium/quic_test_packet_maker.cc
+++ b/net/quic/chromium/quic_test_packet_maker.cc
@@ -83,8 +83,8 @@
QuicStreamId stream_id,
QuicRstStreamErrorCode error_code,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked,
bool send_feedback) {
QuicPacketHeader header;
header.public_header.connection_id = connection_id_;
@@ -95,7 +95,7 @@
QuicAckFrame ack(MakeAckFrame(largest_received));
ack.ack_delay_time = QuicTime::Delta::Zero();
- for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) {
+ for (QuicPacketNumber i = smallest_received; i <= largest_received; ++i) {
ack.received_packet_times.push_back(std::make_pair(i, clock_->Now()));
}
if (largest_received > 0) {
@@ -106,7 +106,7 @@
DVLOG(1) << "Adding frame: " << frames[0];
QuicStopWaitingFrame stop_waiting;
- stop_waiting.least_unacked = stop_least_unacked;
+ stop_waiting.least_unacked = least_unacked;
frames.push_back(QuicFrame(&stop_waiting));
DVLOG(1) << "Adding frame: " << frames[1];
@@ -131,6 +131,7 @@
bool include_version,
QuicTime::Delta ack_delay_time,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
QuicErrorCode quic_error,
const std::string& quic_error_details) {
@@ -143,7 +144,7 @@
QuicAckFrame ack(MakeAckFrame(largest_received));
ack.ack_delay_time = ack_delay_time;
- for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) {
+ for (QuicPacketNumber i = smallest_received; i <= largest_received; ++i) {
ack.received_packet_times.push_back(std::make_pair(i, clock_->Now()));
}
if (largest_received > 0) {
@@ -211,33 +212,21 @@
MakePacket(header, QuicFrame(&goaway)));
}
-// Sets both least_unacked fields in stop waiting frame and ack frame
-// to be |least_unacked|.
std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
bool send_feedback) {
- return MakeAckPacket(packet_number, largest_received, least_unacked,
- least_unacked, send_feedback);
+ return MakeAckPacket(packet_number, largest_received, smallest_received,
+ least_unacked, send_feedback, QuicTime::Delta::Zero());
}
std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
- bool send_feedback) {
- return MakeAckPacket(packet_number, largest_received, ack_least_unacked,
- stop_least_unacked, send_feedback,
- QuicTime::Delta::Zero());
-}
-
-std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckPacket(
- QuicPacketNumber packet_number,
- QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked,
bool send_feedback,
QuicTime::Delta ack_delay_time) {
QuicPacketHeader header;
@@ -249,7 +238,7 @@
QuicAckFrame ack(MakeAckFrame(largest_received));
ack.ack_delay_time = ack_delay_time;
- for (QuicPacketNumber i = ack_least_unacked; i <= largest_received; ++i) {
+ for (QuicPacketNumber i = smallest_received; i <= largest_received; ++i) {
ack.received_packet_times.push_back(std::make_pair(i, clock_->Now()));
}
if (largest_received > 0) {
@@ -263,7 +252,7 @@
frames.push_back(ack_frame);
QuicStopWaitingFrame stop_waiting;
- stop_waiting.least_unacked = stop_least_unacked;
+ stop_waiting.least_unacked = least_unacked;
frames.push_back(QuicFrame(&stop_waiting));
std::unique_ptr<QuicPacket> packet(
@@ -322,6 +311,7 @@
bool include_version,
QuicStreamId stream_id,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
bool fin,
QuicStreamOffset offset,
@@ -330,7 +320,7 @@
QuicAckFrame ack(MakeAckFrame(largest_received));
ack.ack_delay_time = QuicTime::Delta::Zero();
- for (QuicPacketNumber i = least_unacked; i <= largest_received; ++i) {
+ for (QuicPacketNumber i = smallest_received; i <= largest_received; ++i) {
ack.received_packet_times.push_back(std::make_pair(i, clock_->Now()));
}
if (largest_received > 0) {
diff --git a/net/quic/chromium/quic_test_packet_maker.h b/net/quic/chromium/quic_test_packet_maker.h
index a398bdd..6bfb4cc 100644
--- a/net/quic/chromium/quic_test_packet_maker.h
+++ b/net/quic/chromium/quic_test_packet_maker.h
@@ -56,14 +56,15 @@
QuicStreamId stream_id,
QuicRstStreamErrorCode error_code,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked,
bool send_feedback);
std::unique_ptr<QuicReceivedPacket> MakeAckAndConnectionClosePacket(
QuicPacketNumber num,
bool include_version,
QuicTime::Delta delta_time_largest_observed,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
QuicErrorCode quic_error,
const std::string& quic_error_details);
@@ -76,19 +77,14 @@
std::unique_ptr<QuicReceivedPacket> MakeAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
bool send_feedback);
std::unique_ptr<QuicReceivedPacket> MakeAckPacket(
QuicPacketNumber packet_number,
QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
- bool send_feedback);
- std::unique_ptr<QuicReceivedPacket> MakeAckPacket(
- QuicPacketNumber packet_number,
- QuicPacketNumber largest_received,
- QuicPacketNumber ack_least_unacked,
- QuicPacketNumber stop_least_unacked,
+ QuicPacketNumber smallest_received,
+ QuicPacketNumber least_unacked,
bool send_feedback,
QuicTime::Delta ack_delay_time);
std::unique_ptr<QuicReceivedPacket> MakeDataPacket(
@@ -117,6 +113,7 @@
bool include_version,
QuicStreamId stream_id,
QuicPacketNumber largest_received,
+ QuicPacketNumber smallest_received,
QuicPacketNumber least_unacked,
bool fin,
QuicStreamOffset offset,