OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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/core/frames/quic_ack_frame.h" | 5 #include "net/quic/core/frames/quic_ack_frame.h" |
6 #include "net/quic/core/frames/quic_blocked_frame.h" | 6 #include "net/quic/core/frames/quic_blocked_frame.h" |
7 #include "net/quic/core/frames/quic_connection_close_frame.h" | 7 #include "net/quic/core/frames/quic_connection_close_frame.h" |
8 #include "net/quic/core/frames/quic_frame.h" | 8 #include "net/quic/core/frames/quic_frame.h" |
9 #include "net/quic/core/frames/quic_goaway_frame.h" | 9 #include "net/quic/core/frames/quic_goaway_frame.h" |
10 #include "net/quic/core/frames/quic_mtu_discovery_frame.h" | 10 #include "net/quic/core/frames/quic_mtu_discovery_frame.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 EXPECT_EQ("{ least_unacked: 2 }\n", stream.str()); | 116 EXPECT_EQ("{ least_unacked: 2 }\n", stream.str()); |
117 } | 117 } |
118 | 118 |
119 TEST_F(QuicFramesTest, IsAwaitingPacket) { | 119 TEST_F(QuicFramesTest, IsAwaitingPacket) { |
120 QuicAckFrame ack_frame1; | 120 QuicAckFrame ack_frame1; |
121 ack_frame1.largest_observed = 10u; | 121 ack_frame1.largest_observed = 10u; |
122 ack_frame1.packets.Add(1, 11); | 122 ack_frame1.packets.Add(1, 11); |
123 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); | 123 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); |
124 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u)); | 124 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u)); |
125 | 125 |
126 ack_frame1.packets.Remove(10); | 126 ack_frame1.packets.Add(12); |
127 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 10u, 0u)); | 127 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); |
128 | 128 |
129 QuicAckFrame ack_frame2; | 129 QuicAckFrame ack_frame2; |
130 ack_frame2.largest_observed = 100u; | 130 ack_frame2.largest_observed = 100u; |
131 ack_frame2.packets.Add(21, 100); | 131 ack_frame2.packets.Add(21, 100); |
132 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u)); | 132 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u)); |
133 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u)); | 133 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u)); |
134 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); | 134 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); |
135 | 135 |
136 ack_frame2.packets.Remove(50); | 136 ack_frame2.packets.Add(102, 200); |
137 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 50u, 20u)); | 137 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); |
138 } | 138 } |
139 | 139 |
140 TEST_F(QuicFramesTest, RemoveSmallestInterval) { | 140 TEST_F(QuicFramesTest, RemoveSmallestInterval) { |
141 QuicAckFrame ack_frame1; | 141 QuicAckFrame ack_frame1; |
142 ack_frame1.largest_observed = 100u; | 142 ack_frame1.largest_observed = 100u; |
143 ack_frame1.packets.Add(51, 60); | 143 ack_frame1.packets.Add(51, 60); |
144 ack_frame1.packets.Add(71, 80); | 144 ack_frame1.packets.Add(71, 80); |
145 ack_frame1.packets.Add(91, 100); | 145 ack_frame1.packets.Add(91, 100); |
146 ack_frame1.packets.RemoveSmallestInterval(); | 146 ack_frame1.packets.RemoveSmallestInterval(); |
147 EXPECT_EQ(2u, ack_frame1.packets.NumIntervals()); | 147 EXPECT_EQ(2u, ack_frame1.packets.NumIntervals()); |
(...skipping 23 matching lines...) Expand all Loading... |
171 EXPECT_TRUE(queue.Contains(53)); | 171 EXPECT_TRUE(queue.Contains(53)); |
172 EXPECT_FALSE(queue.Contains(54)); | 172 EXPECT_FALSE(queue.Contains(54)); |
173 EXPECT_EQ(51u, queue.NumPacketsSlow()); | 173 EXPECT_EQ(51u, queue.NumPacketsSlow()); |
174 EXPECT_EQ(1u, queue.Min()); | 174 EXPECT_EQ(1u, queue.Min()); |
175 EXPECT_EQ(53u, queue.Max()); | 175 EXPECT_EQ(53u, queue.Max()); |
176 | 176 |
177 queue.Add(70); | 177 queue.Add(70); |
178 EXPECT_EQ(70u, queue.Max()); | 178 EXPECT_EQ(70u, queue.Max()); |
179 } | 179 } |
180 | 180 |
181 // Tests that a queue contains the expected data after calls to Remove(). | 181 // Tests that a queue contains the expected data after calls to RemoveUpTo(). |
182 TEST_F(PacketNumberQueueTest, Removal) { | 182 TEST_F(PacketNumberQueueTest, Removal) { |
183 PacketNumberQueue queue; | 183 PacketNumberQueue queue; |
184 queue.Add(0, 100); | 184 queue.Add(0, 100); |
185 | 185 |
186 EXPECT_TRUE(queue.RemoveUpTo(51)); | 186 EXPECT_TRUE(queue.RemoveUpTo(51)); |
187 EXPECT_FALSE(queue.RemoveUpTo(51)); | 187 EXPECT_FALSE(queue.RemoveUpTo(51)); |
188 queue.Remove(53); | |
189 | 188 |
190 EXPECT_FALSE(queue.Contains(0)); | 189 EXPECT_FALSE(queue.Contains(0)); |
191 for (int i = 1; i < 51; ++i) { | 190 for (int i = 1; i < 51; ++i) { |
192 EXPECT_FALSE(queue.Contains(i)); | 191 EXPECT_FALSE(queue.Contains(i)); |
193 } | 192 } |
194 EXPECT_TRUE(queue.Contains(51)); | 193 for (int i = 51; i < 100; ++i) { |
195 EXPECT_TRUE(queue.Contains(52)); | 194 EXPECT_TRUE(queue.Contains(i)); |
196 EXPECT_FALSE(queue.Contains(53)); | 195 } |
197 EXPECT_TRUE(queue.Contains(54)); | 196 EXPECT_EQ(49u, queue.NumPacketsSlow()); |
198 EXPECT_EQ(48u, queue.NumPacketsSlow()); | |
199 EXPECT_EQ(51u, queue.Min()); | 197 EXPECT_EQ(51u, queue.Min()); |
200 EXPECT_EQ(99u, queue.Max()); | 198 EXPECT_EQ(99u, queue.Max()); |
201 | |
202 queue.Remove(51); | |
203 EXPECT_EQ(52u, queue.Min()); | |
204 queue.Remove(99); | |
205 EXPECT_EQ(98u, queue.Max()); | |
206 } | 199 } |
207 | 200 |
208 // Tests that a queue is empty when all of its elements are removed. | 201 // Tests that a queue is empty when all of its elements are removed. |
209 TEST_F(PacketNumberQueueTest, Empty) { | 202 TEST_F(PacketNumberQueueTest, Empty) { |
210 PacketNumberQueue queue; | 203 PacketNumberQueue queue; |
211 EXPECT_TRUE(queue.Empty()); | 204 EXPECT_TRUE(queue.Empty()); |
212 EXPECT_EQ(0u, queue.NumPacketsSlow()); | 205 EXPECT_EQ(0u, queue.NumPacketsSlow()); |
213 | 206 |
214 queue.Add(1, 100); | 207 queue.Add(1, 100); |
215 EXPECT_TRUE(queue.RemoveUpTo(100)); | 208 EXPECT_TRUE(queue.RemoveUpTo(100)); |
(...skipping 26 matching lines...) Expand all Loading... |
242 EXPECT_EQ(expected_intervals, actual_intervals); | 235 EXPECT_EQ(expected_intervals, actual_intervals); |
243 } | 236 } |
244 | 237 |
245 TEST_F(PacketNumberQueueTest, IntervalLengthAndRemoveInterval) { | 238 TEST_F(PacketNumberQueueTest, IntervalLengthAndRemoveInterval) { |
246 PacketNumberQueue queue; | 239 PacketNumberQueue queue; |
247 queue.Add(1, 10); | 240 queue.Add(1, 10); |
248 queue.Add(20, 30); | 241 queue.Add(20, 30); |
249 queue.Add(40, 50); | 242 queue.Add(40, 50); |
250 EXPECT_EQ(3u, queue.NumIntervals()); | 243 EXPECT_EQ(3u, queue.NumIntervals()); |
251 EXPECT_EQ(10u, queue.LastIntervalLength()); | 244 EXPECT_EQ(10u, queue.LastIntervalLength()); |
252 queue.Remove(9, 21); | 245 |
253 EXPECT_EQ(3u, queue.NumIntervals()); | 246 EXPECT_TRUE(queue.RemoveUpTo(25)); |
254 EXPECT_FALSE(queue.Contains(9)); | 247 EXPECT_EQ(2u, queue.NumIntervals()); |
255 EXPECT_FALSE(queue.Contains(20)); | 248 EXPECT_EQ(10u, queue.LastIntervalLength()); |
| 249 EXPECT_EQ(25u, queue.Min()); |
| 250 EXPECT_EQ(49u, queue.Max()); |
256 } | 251 } |
257 | 252 |
258 } // namespace | 253 } // namespace |
259 } // namespace test | 254 } // namespace test |
260 } // namespace net | 255 } // namespace net |
OLD | NEW |