| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_sent_packet_manager.h" | 5 #include "net/quic/quic_sent_packet_manager.h" |
| 6 | 6 |
| 7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
| 8 #include "net/quic/quic_flags.h" | 8 #include "net/quic/quic_flags.h" |
| 9 #include "net/quic/test_tools/quic_config_peer.h" | 9 #include "net/quic/test_tools/quic_config_peer.h" |
| 10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" | 10 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_, | 187 EXPECT_TRUE(QuicSentPacketManagerPeer::IsRetransmission(&manager_, |
| 188 new_packet_number)); | 188 new_packet_number)); |
| 189 } | 189 } |
| 190 | 190 |
| 191 SerializedPacket CreateDataPacket(QuicPacketNumber packet_number) { | 191 SerializedPacket CreateDataPacket(QuicPacketNumber packet_number) { |
| 192 return CreatePacket(packet_number, true); | 192 return CreatePacket(packet_number, true); |
| 193 } | 193 } |
| 194 | 194 |
| 195 SerializedPacket CreatePacket(QuicPacketNumber packet_number, | 195 SerializedPacket CreatePacket(QuicPacketNumber packet_number, |
| 196 bool retransmittable) { | 196 bool retransmittable) { |
| 197 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); | |
| 198 SerializedPacket packet(kDefaultPathId, packet_number, | 197 SerializedPacket packet(kDefaultPathId, packet_number, |
| 199 PACKET_6BYTE_PACKET_NUMBER, packets_.back(), 0u, | 198 PACKET_6BYTE_PACKET_NUMBER, nullptr, kDefaultLength, |
| 200 false, false); | 199 0u, false, false); |
| 201 if (retransmittable) { | 200 if (retransmittable) { |
| 202 packet.retransmittable_frames.push_back( | 201 packet.retransmittable_frames.push_back( |
| 203 QuicFrame(new QuicStreamFrame(kStreamId, false, 0, StringPiece()))); | 202 QuicFrame(new QuicStreamFrame(kStreamId, false, 0, StringPiece()))); |
| 204 } | 203 } |
| 205 return packet; | 204 return packet; |
| 206 } | 205 } |
| 207 | 206 |
| 208 SerializedPacket CreateFecPacket(QuicPacketNumber packet_number) { | 207 SerializedPacket CreateFecPacket(QuicPacketNumber packet_number) { |
| 209 packets_.push_back(new QuicEncryptedPacket(nullptr, kDefaultLength)); | |
| 210 SerializedPacket serialized(kDefaultPathId, packet_number, | 208 SerializedPacket serialized(kDefaultPathId, packet_number, |
| 211 PACKET_6BYTE_PACKET_NUMBER, packets_.back(), 0u, | 209 PACKET_6BYTE_PACKET_NUMBER, nullptr, |
| 212 false, false); | 210 kDefaultLength, 0u, false, false); |
| 213 serialized.is_fec_packet = true; | 211 serialized.is_fec_packet = true; |
| 214 return serialized; | 212 return serialized; |
| 215 } | 213 } |
| 216 | 214 |
| 217 void SendDataPacket(QuicPacketNumber packet_number) { | 215 void SendDataPacket(QuicPacketNumber packet_number) { |
| 218 EXPECT_CALL(*send_algorithm_, | 216 EXPECT_CALL(*send_algorithm_, |
| 219 OnPacketSent(_, BytesInFlight(), packet_number, _, _)) | 217 OnPacketSent(_, BytesInFlight(), packet_number, _, _)) |
| 220 .Times(1) | 218 .Times(1) |
| 221 .WillOnce(Return(true)); | 219 .WillOnce(Return(true)); |
| 222 SerializedPacket packet(CreateDataPacket(packet_number)); | 220 SerializedPacket packet(CreateDataPacket(packet_number)); |
| 223 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.packet->length(), | 221 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.encrypted_length, |
| 224 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); | 222 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); |
| 225 } | 223 } |
| 226 | 224 |
| 227 void SendCryptoPacket(QuicPacketNumber packet_number) { | 225 void SendCryptoPacket(QuicPacketNumber packet_number) { |
| 228 EXPECT_CALL(*send_algorithm_, | 226 EXPECT_CALL(*send_algorithm_, |
| 229 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, | 227 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, |
| 230 HAS_RETRANSMITTABLE_DATA)) | 228 HAS_RETRANSMITTABLE_DATA)) |
| 231 .Times(1) | 229 .Times(1) |
| 232 .WillOnce(Return(true)); | 230 .WillOnce(Return(true)); |
| 233 SerializedPacket packet(CreateDataPacket(packet_number)); | 231 SerializedPacket packet(CreateDataPacket(packet_number)); |
| 234 packet.retransmittable_frames.push_back( | 232 packet.retransmittable_frames.push_back( |
| 235 QuicFrame(new QuicStreamFrame(1, false, 0, StringPiece()))); | 233 QuicFrame(new QuicStreamFrame(1, false, 0, StringPiece()))); |
| 236 packet.has_crypto_handshake = IS_HANDSHAKE; | 234 packet.has_crypto_handshake = IS_HANDSHAKE; |
| 237 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.packet->length(), | 235 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.encrypted_length, |
| 238 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); | 236 NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA); |
| 239 } | 237 } |
| 240 | 238 |
| 241 void SendFecPacket(QuicPacketNumber packet_number) { | 239 void SendFecPacket(QuicPacketNumber packet_number) { |
| 242 EXPECT_CALL(*send_algorithm_, | 240 EXPECT_CALL(*send_algorithm_, |
| 243 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, | 241 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, |
| 244 HAS_RETRANSMITTABLE_DATA)) | 242 HAS_RETRANSMITTABLE_DATA)) |
| 245 .Times(1) | 243 .Times(1) |
| 246 .WillOnce(Return(true)); | 244 .WillOnce(Return(true)); |
| 247 SerializedPacket packet(CreateFecPacket(packet_number)); | 245 SerializedPacket packet(CreateFecPacket(packet_number)); |
| 248 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.packet->length(), | 246 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.encrypted_length, |
| 249 NOT_RETRANSMISSION, NO_RETRANSMITTABLE_DATA); | 247 NOT_RETRANSMISSION, NO_RETRANSMITTABLE_DATA); |
| 250 } | 248 } |
| 251 | 249 |
| 252 void SendAckPacket(QuicPacketNumber packet_number) { | 250 void SendAckPacket(QuicPacketNumber packet_number) { |
| 253 EXPECT_CALL(*send_algorithm_, | 251 EXPECT_CALL(*send_algorithm_, |
| 254 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, | 252 OnPacketSent(_, BytesInFlight(), packet_number, kDefaultLength, |
| 255 NO_RETRANSMITTABLE_DATA)) | 253 NO_RETRANSMITTABLE_DATA)) |
| 256 .Times(1) | 254 .Times(1) |
| 257 .WillOnce(Return(false)); | 255 .WillOnce(Return(false)); |
| 258 SerializedPacket packet(CreatePacket(packet_number, false)); | 256 SerializedPacket packet(CreatePacket(packet_number, false)); |
| 259 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.packet->length(), | 257 manager_.OnPacketSent(&packet, 0, clock_.Now(), packet.encrypted_length, |
| 260 NOT_RETRANSMISSION, NO_RETRANSMITTABLE_DATA); | 258 NOT_RETRANSMISSION, NO_RETRANSMITTABLE_DATA); |
| 261 } | 259 } |
| 262 | 260 |
| 263 // Based on QuicConnection's WritePendingRetransmissions. | 261 // Based on QuicConnection's WritePendingRetransmissions. |
| 264 void RetransmitNextPacket(QuicPacketNumber retransmission_packet_number) { | 262 void RetransmitNextPacket(QuicPacketNumber retransmission_packet_number) { |
| 265 EXPECT_TRUE(manager_.HasPendingRetransmissions()); | 263 EXPECT_TRUE(manager_.HasPendingRetransmissions()); |
| 266 EXPECT_CALL(*send_algorithm_, | 264 EXPECT_CALL(*send_algorithm_, |
| 267 OnPacketSent(_, _, retransmission_packet_number, kDefaultLength, | 265 OnPacketSent(_, _, retransmission_packet_number, kDefaultLength, |
| 268 HAS_RETRANSMITTABLE_DATA)) | 266 HAS_RETRANSMITTABLE_DATA)) |
| 269 .Times(1) | 267 .Times(1) |
| (...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1695 | 1693 |
| 1696 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_, false)); | 1694 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_, false)); |
| 1697 manager_.ResumeConnectionState(cached_network_params, false); | 1695 manager_.ResumeConnectionState(cached_network_params, false); |
| 1698 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, | 1696 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, |
| 1699 static_cast<uint64_t>(manager_.GetRttStats()->initial_rtt_us())); | 1697 static_cast<uint64_t>(manager_.GetRttStats()->initial_rtt_us())); |
| 1700 } | 1698 } |
| 1701 | 1699 |
| 1702 } // namespace | 1700 } // namespace |
| 1703 } // namespace test | 1701 } // namespace test |
| 1704 } // namespace net | 1702 } // namespace net |
| OLD | NEW |