| 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 |