| 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 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 335 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
| 336 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( | 336 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( |
| 337 &received_manager_, 4)); | 337 &received_manager_, 4)); |
| 338 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); | 338 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); |
| 339 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 339 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
| 340 } | 340 } |
| 341 | 341 |
| 342 TEST_P(QuicReceivedPacketManagerTest, GetUpdatedAckFrame) { | 342 TEST_P(QuicReceivedPacketManagerTest, GetUpdatedAckFrame) { |
| 343 QuicPacketHeader header; | 343 QuicPacketHeader header; |
| 344 header.packet_number = 2u; | 344 header.packet_number = 2u; |
| 345 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); | 345 QuicTime two_ms = QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(2); |
| 346 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 346 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
| 347 received_manager_.RecordPacketReceived(0u, header, two_ms); | 347 received_manager_.RecordPacketReceived(0u, header, two_ms); |
| 348 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 348 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
| 349 | 349 |
| 350 QuicFrame ack = received_manager_.GetUpdatedAckFrame(QuicTime::Zero()); | 350 QuicFrame ack = received_manager_.GetUpdatedAckFrame(QuicTime::Zero()); |
| 351 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 351 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
| 352 // When UpdateReceivedPacketInfo with a time earlier than the time of the | 352 // When UpdateReceivedPacketInfo with a time earlier than the time of the |
| 353 // largest observed packet, make sure that the delta is 0, not negative. | 353 // largest observed packet, make sure that the delta is 0, not negative. |
| 354 EXPECT_EQ(QuicTime::Delta::Zero(), ack.ack_frame->ack_delay_time); | 354 EXPECT_EQ(QuicTime::Delta::Zero(), ack.ack_frame->ack_delay_time); |
| 355 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); | 355 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); |
| 356 | 356 |
| 357 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); | 357 QuicTime four_ms = QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(4); |
| 358 ack = received_manager_.GetUpdatedAckFrame(four_ms); | 358 ack = received_manager_.GetUpdatedAckFrame(four_ms); |
| 359 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 359 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
| 360 // When UpdateReceivedPacketInfo after not having received a new packet, | 360 // When UpdateReceivedPacketInfo after not having received a new packet, |
| 361 // the delta should still be accurate. | 361 // the delta should still be accurate. |
| 362 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), | 362 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), |
| 363 ack.ack_frame->ack_delay_time); | 363 ack.ack_frame->ack_delay_time); |
| 364 // And received packet times won't have change. | 364 // And received packet times won't have change. |
| 365 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); | 365 EXPECT_EQ(1u, ack.ack_frame->received_packet_times.size()); |
| 366 | 366 |
| 367 header.packet_number = 999u; | 367 header.packet_number = 999u; |
| 368 received_manager_.RecordPacketReceived(0u, header, two_ms); | 368 received_manager_.RecordPacketReceived(0u, header, two_ms); |
| 369 header.packet_number = 4u; | 369 header.packet_number = 4u; |
| 370 received_manager_.RecordPacketReceived(0u, header, two_ms); | 370 received_manager_.RecordPacketReceived(0u, header, two_ms); |
| 371 header.packet_number = 1000u; | 371 header.packet_number = 1000u; |
| 372 received_manager_.RecordPacketReceived(0u, header, two_ms); | 372 received_manager_.RecordPacketReceived(0u, header, two_ms); |
| 373 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 373 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
| 374 ack = received_manager_.GetUpdatedAckFrame(two_ms); | 374 ack = received_manager_.GetUpdatedAckFrame(two_ms); |
| 375 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 375 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
| 376 // UpdateReceivedPacketInfo should discard any times which can't be | 376 // UpdateReceivedPacketInfo should discard any times which can't be |
| 377 // expressed on the wire. | 377 // expressed on the wire. |
| 378 EXPECT_EQ(2u, ack.ack_frame->received_packet_times.size()); | 378 EXPECT_EQ(2u, ack.ack_frame->received_packet_times.size()); |
| 379 } | 379 } |
| 380 | 380 |
| 381 TEST_P(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { | 381 TEST_P(QuicReceivedPacketManagerTest, UpdateReceivedConnectionStats) { |
| 382 EXPECT_FALSE(received_manager_.ack_frame_updated()); | 382 EXPECT_FALSE(received_manager_.ack_frame_updated()); |
| 383 RecordPacketReceipt(1, 0); | 383 RecordPacketReceipt(1, 0); |
| 384 EXPECT_TRUE(received_manager_.ack_frame_updated()); | 384 EXPECT_TRUE(received_manager_.ack_frame_updated()); |
| 385 RecordPacketReceipt(6, 0); | 385 RecordPacketReceipt(6, 0); |
| 386 RecordPacketReceipt( | 386 RecordPacketReceipt(2, 0, |
| 387 2, 0, QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(1))); | 387 QuicTime::Zero() + QuicTime::Delta::FromMilliseconds(1)); |
| 388 | 388 |
| 389 EXPECT_EQ(4u, stats_.max_sequence_reordering); | 389 EXPECT_EQ(4u, stats_.max_sequence_reordering); |
| 390 EXPECT_EQ(1000, stats_.max_time_reordering_us); | 390 EXPECT_EQ(1000, stats_.max_time_reordering_us); |
| 391 EXPECT_EQ(1u, stats_.packets_reordered); | 391 EXPECT_EQ(1u, stats_.packets_reordered); |
| 392 } | 392 } |
| 393 | 393 |
| 394 } // namespace | 394 } // namespace |
| 395 } // namespace test | 395 } // namespace test |
| 396 } // namespace net | 396 } // namespace net |
| OLD | NEW |