| 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/test_tools/quic_received_packet_manager_peer.h" | 10 #include "net/quic/test_tools/quic_received_packet_manager_peer.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 | 21 |
| 22 class QuicReceivedPacketManagerTest : public ::testing::Test { | 22 class QuicReceivedPacketManagerTest : public ::testing::Test { |
| 23 protected: | 23 protected: |
| 24 QuicReceivedPacketManagerTest() : received_manager_(kTCP) { } | 24 QuicReceivedPacketManagerTest() : received_manager_(kTCP) { } |
| 25 | 25 |
| 26 void RecordPacketEntropyHash(QuicPacketSequenceNumber sequence_number, | 26 void RecordPacketEntropyHash(QuicPacketSequenceNumber sequence_number, |
| 27 QuicPacketEntropyHash entropy_hash) { | 27 QuicPacketEntropyHash entropy_hash) { |
| 28 QuicPacketHeader header; | 28 QuicPacketHeader header; |
| 29 header.packet_sequence_number = sequence_number; | 29 header.packet_sequence_number = sequence_number; |
| 30 header.entropy_hash = entropy_hash; | 30 header.entropy_hash = entropy_hash; |
| 31 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero(), false); | 31 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero()); |
| 32 } | 32 } |
| 33 | 33 |
| 34 QuicReceivedPacketManager received_manager_; | 34 QuicReceivedPacketManager received_manager_; |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { | 37 TEST_F(QuicReceivedPacketManagerTest, ReceivedPacketEntropyHash) { |
| 38 vector<pair<QuicPacketSequenceNumber, QuicPacketEntropyHash> > entropies; | 38 vector<pair<QuicPacketSequenceNumber, QuicPacketEntropyHash> > entropies; |
| 39 entropies.push_back(make_pair(1, 12)); | 39 entropies.push_back(make_pair(1, 12)); |
| 40 entropies.push_back(make_pair(7, 1)); | 40 entropies.push_back(make_pair(7, 1)); |
| 41 entropies.push_back(make_pair(2, 33)); | 41 entropies.push_back(make_pair(2, 33)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 EXPECT_EQ(entropy_hash, received_manager_.EntropyHash(6)); | 98 EXPECT_EQ(entropy_hash, received_manager_.EntropyHash(6)); |
| 99 | 99 |
| 100 QuicReceivedPacketManagerPeer::RecalculateEntropyHash( | 100 QuicReceivedPacketManagerPeer::RecalculateEntropyHash( |
| 101 &received_manager_, 1, 50); | 101 &received_manager_, 1, 50); |
| 102 EXPECT_EQ(entropy_hash, received_manager_.EntropyHash(6)); | 102 EXPECT_EQ(entropy_hash, received_manager_.EntropyHash(6)); |
| 103 } | 103 } |
| 104 | 104 |
| 105 TEST_F(QuicReceivedPacketManagerTest, DontWaitForPacketsBefore) { | 105 TEST_F(QuicReceivedPacketManagerTest, DontWaitForPacketsBefore) { |
| 106 QuicPacketHeader header; | 106 QuicPacketHeader header; |
| 107 header.packet_sequence_number = 2u; | 107 header.packet_sequence_number = 2u; |
| 108 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero(), false); | 108 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero()); |
| 109 header.packet_sequence_number = 7u; | 109 header.packet_sequence_number = 7u; |
| 110 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero(), false); | 110 received_manager_.RecordPacketReceived(0u, header, QuicTime::Zero()); |
| 111 EXPECT_TRUE(received_manager_.IsAwaitingPacket(3u)); | 111 EXPECT_TRUE(received_manager_.IsAwaitingPacket(3u)); |
| 112 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 112 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
| 113 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( | 113 EXPECT_TRUE(QuicReceivedPacketManagerPeer::DontWaitForPacketsBefore( |
| 114 &received_manager_, 4)); | 114 &received_manager_, 4)); |
| 115 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); | 115 EXPECT_FALSE(received_manager_.IsAwaitingPacket(3u)); |
| 116 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); | 116 EXPECT_TRUE(received_manager_.IsAwaitingPacket(6u)); |
| 117 } | 117 } |
| 118 | 118 |
| 119 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedPacketInfo) { | 119 TEST_F(QuicReceivedPacketManagerTest, UpdateReceivedPacketInfo) { |
| 120 QuicPacketHeader header; | 120 QuicPacketHeader header; |
| 121 header.packet_sequence_number = 2u; | 121 header.packet_sequence_number = 2u; |
| 122 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); | 122 QuicTime two_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(2)); |
| 123 received_manager_.RecordPacketReceived(0u, header, two_ms, false); | 123 received_manager_.RecordPacketReceived(0u, header, two_ms); |
| 124 | 124 |
| 125 ReceivedPacketInfo info; | 125 ReceivedPacketInfo info; |
| 126 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); | 126 received_manager_.UpdateReceivedPacketInfo(&info, QuicTime::Zero()); |
| 127 // When UpdateReceivedPacketInfo with a time earlier than the time of the | 127 // When UpdateReceivedPacketInfo with a time earlier than the time of the |
| 128 // largest observed packet, make sure that the delta is 0, not negative. | 128 // largest observed packet, make sure that the delta is 0, not negative. |
| 129 EXPECT_EQ(QuicTime::Delta::Zero(), info.delta_time_largest_observed); | 129 EXPECT_EQ(QuicTime::Delta::Zero(), info.delta_time_largest_observed); |
| 130 | 130 |
| 131 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); | 131 QuicTime four_ms = QuicTime::Zero().Add(QuicTime::Delta::FromMilliseconds(4)); |
| 132 received_manager_.UpdateReceivedPacketInfo(&info, four_ms); | 132 received_manager_.UpdateReceivedPacketInfo(&info, four_ms); |
| 133 // When UpdateReceivedPacketInfo after not having received a new packet, | 133 // When UpdateReceivedPacketInfo after not having received a new packet, |
| 134 // the delta should still be accurate. | 134 // the delta should still be accurate. |
| 135 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), | 135 EXPECT_EQ(QuicTime::Delta::FromMilliseconds(2), |
| 136 info.delta_time_largest_observed); | 136 info.delta_time_largest_observed); |
| 137 } | 137 } |
| 138 | 138 |
| 139 } // namespace | 139 } // namespace |
| 140 } // namespace test | 140 } // namespace test |
| 141 } // namespace net | 141 } // namespace net |
| OLD | NEW |