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 |