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_received_packet_manager.h" | 5 #include "net/quic/quic_received_packet_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "net/quic/quic_connection_stats.h" | 10 #include "net/quic/quic_connection_stats.h" |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 | 195 |
196 void RecordPacketReceipt(QuicPacketSequenceNumber sequence_number, | 196 void RecordPacketReceipt(QuicPacketSequenceNumber sequence_number, |
197 QuicPacketEntropyHash entropy_hash, | 197 QuicPacketEntropyHash entropy_hash, |
198 QuicTime receipt_time) { | 198 QuicTime receipt_time) { |
199 QuicPacketHeader header; | 199 QuicPacketHeader header; |
200 header.packet_sequence_number = sequence_number; | 200 header.packet_sequence_number = sequence_number; |
201 header.entropy_hash = entropy_hash; | 201 header.entropy_hash = entropy_hash; |
202 received_manager_.RecordPacketReceived(0u, header, receipt_time); | 202 received_manager_.RecordPacketReceived(0u, header, receipt_time); |
203 } | 203 } |
204 | 204 |
| 205 void RecordPacketRevived(QuicPacketSequenceNumber sequence_number) { |
| 206 received_manager_.RecordPacketRevived(sequence_number); |
| 207 } |
| 208 |
205 QuicConnectionStats stats_; | 209 QuicConnectionStats stats_; |
206 QuicReceivedPacketManager received_manager_; | 210 QuicReceivedPacketManager received_manager_; |
207 }; | 211 }; |
208 | 212 |
209 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { | 213 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { |
210 vector<pair<QuicPacketSequenceNumber, QuicPacketEntropyHash> > entropies; | 214 vector<pair<QuicPacketSequenceNumber, QuicPacketEntropyHash> > entropies; |
211 entropies.push_back(make_pair(1, 12)); | 215 entropies.push_back(make_pair(1, 12)); |
212 entropies.push_back(make_pair(7, 1)); | 216 entropies.push_back(make_pair(7, 1)); |
213 entropies.push_back(make_pair(2, 33)); | 217 entropies.push_back(make_pair(2, 33)); |
214 entropies.push_back(make_pair(5, 3)); | 218 entropies.push_back(make_pair(5, 3)); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 RecordPacketReceipt(1, 0); | 325 RecordPacketReceipt(1, 0); |
322 RecordPacketReceipt(6, 0); | 326 RecordPacketReceipt(6, 0); |
323 RecordPacketReceipt( | 327 RecordPacketReceipt( |
324 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); | 328 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); |
325 | 329 |
326 EXPECT_EQ(4u, stats_.max_sequence_reordering); | 330 EXPECT_EQ(4u, stats_.max_sequence_reordering); |
327 EXPECT_EQ(1000u, stats_.max_time_reordering_us); | 331 EXPECT_EQ(1000u, stats_.max_time_reordering_us); |
328 EXPECT_EQ(1u, stats_.packets_reordered); | 332 EXPECT_EQ(1u, stats_.packets_reordered); |
329 } | 333 } |
330 | 334 |
| 335 TEST_F(QuicReceivedPacketManagerTest, RevivedPacket) { |
| 336 RecordPacketReceipt(1, 0); |
| 337 RecordPacketReceipt(3, 0); |
| 338 RecordPacketRevived(2); |
| 339 |
| 340 ReceivedPacketInfo info; |
| 341 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); |
| 342 EXPECT_EQ(1u, info.missing_packets.size()); |
| 343 EXPECT_EQ(2u, *info.missing_packets.begin()); |
| 344 EXPECT_EQ(1u, info.revived_packets.size()); |
| 345 EXPECT_EQ(2u, *info.missing_packets.begin()); |
| 346 } |
| 347 |
| 348 TEST_F(QuicReceivedPacketManagerTest, PacketRevivedThenReceived) { |
| 349 RecordPacketReceipt(1, 0); |
| 350 RecordPacketReceipt(3, 0); |
| 351 RecordPacketRevived(2); |
| 352 RecordPacketReceipt(2, 0); |
| 353 |
| 354 ReceivedPacketInfo info; |
| 355 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); |
| 356 EXPECT_TRUE(info.missing_packets.empty()); |
| 357 EXPECT_TRUE(info.revived_packets.empty()); |
| 358 } |
| 359 |
| 360 |
331 } // namespace | 361 } // namespace |
332 } // namespace test | 362 } // namespace test |
333 } // namespace net | 363 } // namespace net |
OLD | NEW |