| 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 |