| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_unacked_packet_map.h" | 5 #include "net/quic/quic_unacked_packet_map.h" |
| 6 | 6 |
| 7 #include "net/quic/test_tools/quic_test_utils.h" | 7 #include "net/quic/test_tools/quic_test_utils.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 namespace net { | 10 namespace net { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 SerializedPacket CreateNonRetransmittablePacket( | 30 SerializedPacket CreateNonRetransmittablePacket( |
| 31 QuicPacketSequenceNumber sequence_number) { | 31 QuicPacketSequenceNumber sequence_number) { |
| 32 return SerializedPacket( | 32 return SerializedPacket( |
| 33 sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, NULL, 0, NULL); | 33 sequence_number, PACKET_1BYTE_SEQUENCE_NUMBER, NULL, 0, NULL); |
| 34 } | 34 } |
| 35 | 35 |
| 36 void VerifyPendingPackets(QuicPacketSequenceNumber* packets, | 36 void VerifyPendingPackets(QuicPacketSequenceNumber* packets, |
| 37 size_t num_packets) { | 37 size_t num_packets) { |
| 38 if (num_packets == 0) { | 38 if (num_packets == 0) { |
| 39 EXPECT_FALSE(unacked_packets_.HasPendingPackets()); | 39 EXPECT_FALSE(unacked_packets_.HasInFlightPackets()); |
| 40 EXPECT_FALSE(unacked_packets_.HasMultiplePendingPackets()); | 40 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); |
| 41 return; | 41 return; |
| 42 } | 42 } |
| 43 if (num_packets == 1) { | 43 if (num_packets == 1) { |
| 44 EXPECT_TRUE(unacked_packets_.HasPendingPackets()); | 44 EXPECT_TRUE(unacked_packets_.HasInFlightPackets()); |
| 45 EXPECT_FALSE(unacked_packets_.HasMultiplePendingPackets()); | 45 EXPECT_FALSE(unacked_packets_.HasMultipleInFlightPackets()); |
| 46 } | 46 } |
| 47 for (size_t i = 0; i < num_packets; ++i) { | 47 for (size_t i = 0; i < num_packets; ++i) { |
| 48 ASSERT_TRUE(unacked_packets_.IsUnacked(packets[i])); | 48 ASSERT_TRUE(unacked_packets_.IsUnacked(packets[i])); |
| 49 EXPECT_TRUE(unacked_packets_.GetTransmissionInfo(packets[i]).pending); | 49 EXPECT_TRUE(unacked_packets_.GetTransmissionInfo(packets[i]).in_flight); |
| 50 } | 50 } |
| 51 } | 51 } |
| 52 | 52 |
| 53 void VerifyUnackedPackets(QuicPacketSequenceNumber* packets, | 53 void VerifyUnackedPackets(QuicPacketSequenceNumber* packets, |
| 54 size_t num_packets) { | 54 size_t num_packets) { |
| 55 if (num_packets == 0) { | 55 if (num_packets == 0) { |
| 56 EXPECT_FALSE(unacked_packets_.HasUnackedPackets()); | 56 EXPECT_FALSE(unacked_packets_.HasUnackedPackets()); |
| 57 EXPECT_FALSE(unacked_packets_.HasUnackedRetransmittableFrames()); | 57 EXPECT_FALSE(unacked_packets_.HasUnackedRetransmittableFrames()); |
| 58 return; | 58 return; |
| 59 } | 59 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 unacked_packets_.RemoveRetransmittability(1); | 112 unacked_packets_.RemoveRetransmittability(1); |
| 113 VerifyUnackedPackets(unacked, arraysize(unacked)); | 113 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 114 VerifyPendingPackets(unacked, arraysize(unacked)); | 114 VerifyPendingPackets(unacked, arraysize(unacked)); |
| 115 VerifyRetransmittablePackets(NULL, 0); | 115 VerifyRetransmittablePackets(NULL, 0); |
| 116 | 116 |
| 117 unacked_packets_.IncreaseLargestObserved(1); | 117 unacked_packets_.IncreaseLargestObserved(1); |
| 118 VerifyUnackedPackets(unacked, arraysize(unacked)); | 118 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 119 VerifyPendingPackets(unacked, arraysize(unacked)); | 119 VerifyPendingPackets(unacked, arraysize(unacked)); |
| 120 VerifyRetransmittablePackets(NULL, 0); | 120 VerifyRetransmittablePackets(NULL, 0); |
| 121 | 121 |
| 122 unacked_packets_.SetNotPending(1); | 122 unacked_packets_.RemoveFromInFlight(1); |
| 123 VerifyUnackedPackets(NULL, 0); | 123 VerifyUnackedPackets(NULL, 0); |
| 124 VerifyPendingPackets(NULL, 0); | 124 VerifyPendingPackets(NULL, 0); |
| 125 VerifyRetransmittablePackets(NULL, 0); | 125 VerifyRetransmittablePackets(NULL, 0); |
| 126 } | 126 } |
| 127 | 127 |
| 128 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) { | 128 TEST_F(QuicUnackedPacketMapTest, RetransmittedPacket) { |
| 129 // Simulate a retransmittable packet being sent, retransmitted, and the first | 129 // Simulate a retransmittable packet being sent, retransmitted, and the first |
| 130 // transmission being acked. | 130 // transmission being acked. |
| 131 unacked_packets_.AddPacket(CreateRetransmittablePacket(1)); | 131 unacked_packets_.AddPacket(CreateRetransmittablePacket(1)); |
| 132 unacked_packets_.SetSent(1, now_, kDefaultLength, true); | 132 unacked_packets_.SetSent(1, now_, kDefaultLength, true); |
| 133 unacked_packets_.OnRetransmittedPacket(1, 2); | 133 unacked_packets_.OnRetransmittedPacket(1, 2); |
| 134 unacked_packets_.SetSent(2, now_, kDefaultLength, true); | 134 unacked_packets_.SetSent(2, now_, kDefaultLength, true); |
| 135 | 135 |
| 136 QuicPacketSequenceNumber unacked[] = { 1, 2 }; | 136 QuicPacketSequenceNumber unacked[] = { 1, 2 }; |
| 137 VerifyUnackedPackets(unacked, arraysize(unacked)); | 137 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 138 VerifyPendingPackets(unacked, arraysize(unacked)); | 138 VerifyPendingPackets(unacked, arraysize(unacked)); |
| 139 QuicPacketSequenceNumber retransmittable[] = { 2 }; | 139 QuicPacketSequenceNumber retransmittable[] = { 2 }; |
| 140 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); | 140 VerifyRetransmittablePackets(retransmittable, arraysize(retransmittable)); |
| 141 | 141 |
| 142 unacked_packets_.RemoveRetransmittability(1); | 142 unacked_packets_.RemoveRetransmittability(1); |
| 143 VerifyUnackedPackets(unacked, arraysize(unacked)); | 143 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 144 VerifyPendingPackets(unacked, arraysize(unacked)); | 144 VerifyPendingPackets(unacked, arraysize(unacked)); |
| 145 VerifyRetransmittablePackets(NULL, 0); | 145 VerifyRetransmittablePackets(NULL, 0); |
| 146 | 146 |
| 147 unacked_packets_.IncreaseLargestObserved(2); | 147 unacked_packets_.IncreaseLargestObserved(2); |
| 148 VerifyUnackedPackets(unacked, arraysize(unacked)); | 148 VerifyUnackedPackets(unacked, arraysize(unacked)); |
| 149 VerifyPendingPackets(unacked, arraysize(unacked)); | 149 VerifyPendingPackets(unacked, arraysize(unacked)); |
| 150 VerifyRetransmittablePackets(NULL, 0); | 150 VerifyRetransmittablePackets(NULL, 0); |
| 151 | 151 |
| 152 unacked_packets_.SetNotPending(2); | 152 unacked_packets_.RemoveFromInFlight(2); |
| 153 QuicPacketSequenceNumber unacked2[] = { 1 }; | 153 QuicPacketSequenceNumber unacked2[] = { 1 }; |
| 154 VerifyUnackedPackets(unacked, arraysize(unacked2)); | 154 VerifyUnackedPackets(unacked, arraysize(unacked2)); |
| 155 VerifyPendingPackets(unacked, arraysize(unacked2)); | 155 VerifyPendingPackets(unacked, arraysize(unacked2)); |
| 156 VerifyRetransmittablePackets(NULL, 0); | 156 VerifyRetransmittablePackets(NULL, 0); |
| 157 | 157 |
| 158 unacked_packets_.SetNotPending(1); | 158 unacked_packets_.RemoveFromInFlight(1); |
| 159 VerifyUnackedPackets(NULL, 0); | 159 VerifyUnackedPackets(NULL, 0); |
| 160 VerifyPendingPackets(NULL, 0); | 160 VerifyPendingPackets(NULL, 0); |
| 161 VerifyRetransmittablePackets(NULL, 0); | 161 VerifyRetransmittablePackets(NULL, 0); |
| 162 } | 162 } |
| 163 | 163 |
| 164 } // namespace | 164 } // namespace |
| 165 } // namespace test | 165 } // namespace test |
| 166 } // namespace net | 166 } // namespace net |
| OLD | NEW |