| 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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 | 196 |
| 197 void RecordPacketReceipt(QuicPacketNumber packet_number, | 197 void RecordPacketReceipt(QuicPacketNumber packet_number, |
| 198 QuicPacketEntropyHash entropy_hash, | 198 QuicPacketEntropyHash entropy_hash, |
| 199 QuicTime receipt_time) { | 199 QuicTime receipt_time) { |
| 200 QuicPacketHeader header; | 200 QuicPacketHeader header; |
| 201 header.packet_number = packet_number; | 201 header.packet_number = packet_number; |
| 202 header.entropy_hash = entropy_hash; | 202 header.entropy_hash = entropy_hash; |
| 203 received_manager_.RecordPacketReceived(0u, header, receipt_time); | 203 received_manager_.RecordPacketReceived(0u, header, receipt_time); |
| 204 } | 204 } |
| 205 | 205 |
| 206 void RecordPacketRevived(QuicPacketNumber packet_number) { | |
| 207 received_manager_.RecordPacketRevived(packet_number); | |
| 208 } | |
| 209 | |
| 210 QuicConnectionStats stats_; | 206 QuicConnectionStats stats_; |
| 211 QuicReceivedPacketManager received_manager_; | 207 QuicReceivedPacketManager received_manager_; |
| 212 }; | 208 }; |
| 213 | 209 |
| 214 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { | 210 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { |
| 215 vector<pair<QuicPacketNumber, QuicPacketEntropyHash>> entropies; | 211 vector<pair<QuicPacketNumber, QuicPacketEntropyHash>> entropies; |
| 216 entropies.push_back(std::make_pair(1, 12)); | 212 entropies.push_back(std::make_pair(1, 12)); |
| 217 entropies.push_back(std::make_pair(7, 1)); | 213 entropies.push_back(std::make_pair(7, 1)); |
| 218 entropies.push_back(std::make_pair(2, 33)); | 214 entropies.push_back(std::make_pair(2, 33)); |
| 219 entropies.push_back(std::make_pair(5, 3)); | 215 entropies.push_back(std::make_pair(5, 3)); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 343 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
| 348 RecordPacketReceipt(6, 0); | 344 RecordPacketReceipt(6, 0); |
| 349 RecordPacketReceipt( | 345 RecordPacketReceipt( |
| 350 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); | 346 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); |
| 351 | 347 |
| 352 EXPECT_EQ(4u, stats_.max_sequence_reordering); | 348 EXPECT_EQ(4u, stats_.max_sequence_reordering); |
| 353 EXPECT_EQ(1000, stats_.max_time_reordering_us); | 349 EXPECT_EQ(1000, stats_.max_time_reordering_us); |
| 354 EXPECT_EQ(1u, stats_.packets_reordered); | 350 EXPECT_EQ(1u, stats_.packets_reordered); |
| 355 } | 351 } |
| 356 | 352 |
| 357 TEST_F(QuicReceivedPacketManagerTest, RevivedPacket) { | |
| 358 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 359 RecordPacketReceipt(1, 0); | |
| 360 EXPECT_TRUE(received_manager_.ack_frame_updated()); | |
| 361 RecordPacketReceipt(3, 0); | |
| 362 RecordPacketRevived(2); | |
| 363 | |
| 364 QuicAckFrame ack; | |
| 365 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); | |
| 366 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 367 EXPECT_EQ(1u, ack.missing_packets.NumPacketsSlow()); | |
| 368 EXPECT_EQ(2u, ack.missing_packets.Min()); | |
| 369 EXPECT_EQ(2u, ack.latest_revived_packet); | |
| 370 } | |
| 371 | |
| 372 TEST_F(QuicReceivedPacketManagerTest, PacketRevivedThenReceived) { | |
| 373 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 374 RecordPacketReceipt(1, 0); | |
| 375 EXPECT_TRUE(received_manager_.ack_frame_updated()); | |
| 376 RecordPacketReceipt(3, 0); | |
| 377 RecordPacketRevived(2); | |
| 378 RecordPacketReceipt(2, 0); | |
| 379 | |
| 380 QuicAckFrame ack; | |
| 381 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); | |
| 382 EXPECT_TRUE(ack.missing_packets.Empty()); | |
| 383 EXPECT_EQ(0u, ack.latest_revived_packet); | |
| 384 } | |
| 385 | |
| 386 TEST_F(QuicReceivedPacketManagerTest, RevivedPacketAckFrameUpdated) { | |
| 387 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 388 RecordPacketReceipt(1, 0); | |
| 389 RecordPacketReceipt(3, 0); | |
| 390 EXPECT_TRUE(received_manager_.ack_frame_updated()); | |
| 391 | |
| 392 QuicAckFrame ack; | |
| 393 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); | |
| 394 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 395 EXPECT_EQ(1u, ack.missing_packets.NumPacketsSlow()); | |
| 396 EXPECT_EQ(2u, ack.missing_packets.Min()); | |
| 397 EXPECT_EQ(0u, ack.latest_revived_packet); | |
| 398 | |
| 399 RecordPacketRevived(2); | |
| 400 EXPECT_TRUE(received_manager_.ack_frame_updated()); | |
| 401 received_manager_.UpdateReceivedPacketInfo(&ack, QuicTime::Zero()); | |
| 402 EXPECT_FALSE(received_manager_.ack_frame_updated()); | |
| 403 EXPECT_EQ(1u, ack.missing_packets.NumPacketsSlow()); | |
| 404 EXPECT_EQ(2u, ack.missing_packets.Min()); | |
| 405 EXPECT_EQ(2u, ack.latest_revived_packet); | |
| 406 } | |
| 407 | |
| 408 } // namespace | 353 } // namespace |
| 409 } // namespace test | 354 } // namespace test |
| 410 } // namespace net | 355 } // namespace net |
| OLD | NEW |