Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Side by Side Diff: net/quic/core/frames/quic_frames_test.cc

Issue 2848203002: Add a platform implementation of QuicTest and QuicTestWithParam (Closed)
Patch Set: net/quic/platform/impl/quic_test_impl.cc Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/core/crypto/strike_register_test.cc ('k') | net/quic/core/quic_alarm_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
11 #include "net/quic/core/frames/quic_padding_frame.h" 11 #include "net/quic/core/frames/quic_padding_frame.h"
12 #include "net/quic/core/frames/quic_ping_frame.h" 12 #include "net/quic/core/frames/quic_ping_frame.h"
13 #include "net/quic/core/frames/quic_rst_stream_frame.h" 13 #include "net/quic/core/frames/quic_rst_stream_frame.h"
14 #include "net/quic/core/frames/quic_stop_waiting_frame.h" 14 #include "net/quic/core/frames/quic_stop_waiting_frame.h"
15 #include "net/quic/core/frames/quic_stream_frame.h" 15 #include "net/quic/core/frames/quic_stream_frame.h"
16 #include "net/quic/core/frames/quic_window_update_frame.h" 16 #include "net/quic/core/frames/quic_window_update_frame.h"
17 #include "testing/gmock/include/gmock/gmock.h" 17 #include "net/quic/platform/api/quic_test.h"
18 #include "testing/gtest/include/gtest/gtest.h"
19 18
20 namespace net { 19 namespace net {
21 namespace test { 20 namespace test {
22 namespace { 21 namespace {
23 22
24 using testing::_; 23 using testing::_;
25 24
26 TEST(QuicFramesTest, AckFrameToString) { 25 class QuicFramesTest : public QuicTest {};
26
27 TEST_F(QuicFramesTest, AckFrameToString) {
27 QuicAckFrame frame; 28 QuicAckFrame frame;
28 frame.largest_observed = 2; 29 frame.largest_observed = 2;
29 frame.ack_delay_time = QuicTime::Delta::FromMicroseconds(3); 30 frame.ack_delay_time = QuicTime::Delta::FromMicroseconds(3);
30 frame.packets.Add(4); 31 frame.packets.Add(4);
31 frame.packets.Add(5); 32 frame.packets.Add(5);
32 frame.received_packet_times = { 33 frame.received_packet_times = {
33 {6, QuicTime::Zero() + QuicTime::Delta::FromMicroseconds(7)}}; 34 {6, QuicTime::Zero() + QuicTime::Delta::FromMicroseconds(7)}};
34 std::ostringstream stream; 35 std::ostringstream stream;
35 stream << frame; 36 stream << frame;
36 EXPECT_EQ( 37 EXPECT_EQ(
37 "{ largest_observed: 2, ack_delay_time: 3, " 38 "{ largest_observed: 2, ack_delay_time: 3, "
38 "packets: [ 4 5 ], received_packets: [ 6 at 7 ] }\n", 39 "packets: [ 4 5 ], received_packets: [ 6 at 7 ] }\n",
39 stream.str()); 40 stream.str());
40 } 41 }
41 42
42 TEST(QuicFramesTest, PaddingFrameToString) { 43 TEST_F(QuicFramesTest, PaddingFrameToString) {
43 QuicPaddingFrame frame; 44 QuicPaddingFrame frame;
44 frame.num_padding_bytes = 1; 45 frame.num_padding_bytes = 1;
45 std::ostringstream stream; 46 std::ostringstream stream;
46 stream << frame; 47 stream << frame;
47 EXPECT_EQ("{ num_padding_bytes: 1 }\n", stream.str()); 48 EXPECT_EQ("{ num_padding_bytes: 1 }\n", stream.str());
48 } 49 }
49 50
50 TEST(QuicFramesTest, RstStreamFrameToString) { 51 TEST_F(QuicFramesTest, RstStreamFrameToString) {
51 QuicRstStreamFrame frame; 52 QuicRstStreamFrame frame;
52 frame.stream_id = 1; 53 frame.stream_id = 1;
53 frame.error_code = QUIC_STREAM_CANCELLED; 54 frame.error_code = QUIC_STREAM_CANCELLED;
54 std::ostringstream stream; 55 std::ostringstream stream;
55 stream << frame; 56 stream << frame;
56 EXPECT_EQ("{ stream_id: 1, error_code: 6 }\n", stream.str()); 57 EXPECT_EQ("{ stream_id: 1, error_code: 6 }\n", stream.str());
57 } 58 }
58 59
59 TEST(QuicFramesTest, ConnectionCloseFrameToString) { 60 TEST_F(QuicFramesTest, ConnectionCloseFrameToString) {
60 QuicConnectionCloseFrame frame; 61 QuicConnectionCloseFrame frame;
61 frame.error_code = QUIC_NETWORK_IDLE_TIMEOUT; 62 frame.error_code = QUIC_NETWORK_IDLE_TIMEOUT;
62 frame.error_details = "No recent network activity."; 63 frame.error_details = "No recent network activity.";
63 std::ostringstream stream; 64 std::ostringstream stream;
64 stream << frame; 65 stream << frame;
65 EXPECT_EQ( 66 EXPECT_EQ(
66 "{ error_code: 25, error_details: 'No recent network activity.' }\n", 67 "{ error_code: 25, error_details: 'No recent network activity.' }\n",
67 stream.str()); 68 stream.str());
68 } 69 }
69 70
70 TEST(QuicFramesTest, GoAwayFrameToString) { 71 TEST_F(QuicFramesTest, GoAwayFrameToString) {
71 QuicGoAwayFrame frame; 72 QuicGoAwayFrame frame;
72 frame.error_code = QUIC_NETWORK_IDLE_TIMEOUT; 73 frame.error_code = QUIC_NETWORK_IDLE_TIMEOUT;
73 frame.last_good_stream_id = 2; 74 frame.last_good_stream_id = 2;
74 frame.reason_phrase = "Reason"; 75 frame.reason_phrase = "Reason";
75 std::ostringstream stream; 76 std::ostringstream stream;
76 stream << frame; 77 stream << frame;
77 EXPECT_EQ( 78 EXPECT_EQ(
78 "{ error_code: 25, last_good_stream_id: 2, reason_phrase: 'Reason' }\n", 79 "{ error_code: 25, last_good_stream_id: 2, reason_phrase: 'Reason' }\n",
79 stream.str()); 80 stream.str());
80 } 81 }
81 82
82 TEST(QuicFramesTest, WindowUpdateFrameToString) { 83 TEST_F(QuicFramesTest, WindowUpdateFrameToString) {
83 QuicWindowUpdateFrame frame; 84 QuicWindowUpdateFrame frame;
84 std::ostringstream stream; 85 std::ostringstream stream;
85 frame.stream_id = 1; 86 frame.stream_id = 1;
86 frame.byte_offset = 2; 87 frame.byte_offset = 2;
87 stream << frame; 88 stream << frame;
88 EXPECT_EQ("{ stream_id: 1, byte_offset: 2 }\n", stream.str()); 89 EXPECT_EQ("{ stream_id: 1, byte_offset: 2 }\n", stream.str());
89 } 90 }
90 91
91 TEST(QuicFramesTest, BlockedFrameToString) { 92 TEST_F(QuicFramesTest, BlockedFrameToString) {
92 QuicBlockedFrame frame; 93 QuicBlockedFrame frame;
93 frame.stream_id = 1; 94 frame.stream_id = 1;
94 std::ostringstream stream; 95 std::ostringstream stream;
95 stream << frame; 96 stream << frame;
96 EXPECT_EQ("{ stream_id: 1 }\n", stream.str()); 97 EXPECT_EQ("{ stream_id: 1 }\n", stream.str());
97 } 98 }
98 99
99 TEST(QuicFramesTest, StreamFrameToString) { 100 TEST_F(QuicFramesTest, StreamFrameToString) {
100 QuicStreamFrame frame; 101 QuicStreamFrame frame;
101 frame.stream_id = 1; 102 frame.stream_id = 1;
102 frame.fin = false; 103 frame.fin = false;
103 frame.offset = 2; 104 frame.offset = 2;
104 frame.data_length = 3; 105 frame.data_length = 3;
105 std::ostringstream stream; 106 std::ostringstream stream;
106 stream << frame; 107 stream << frame;
107 EXPECT_EQ("{ stream_id: 1, fin: 0, offset: 2, length: 3 }\n", stream.str()); 108 EXPECT_EQ("{ stream_id: 1, fin: 0, offset: 2, length: 3 }\n", stream.str());
108 } 109 }
109 110
110 TEST(QuicFramesTest, StopWaitingFrameToString) { 111 TEST_F(QuicFramesTest, StopWaitingFrameToString) {
111 QuicStopWaitingFrame frame; 112 QuicStopWaitingFrame frame;
112 frame.least_unacked = 2; 113 frame.least_unacked = 2;
113 std::ostringstream stream; 114 std::ostringstream stream;
114 stream << frame; 115 stream << frame;
115 EXPECT_EQ("{ least_unacked: 2 }\n", stream.str()); 116 EXPECT_EQ("{ least_unacked: 2 }\n", stream.str());
116 } 117 }
117 118
118 TEST(QuicFramesTest, IsAwaitingPacket) { 119 TEST_F(QuicFramesTest, IsAwaitingPacket) {
119 QuicAckFrame ack_frame1; 120 QuicAckFrame ack_frame1;
120 ack_frame1.largest_observed = 10u; 121 ack_frame1.largest_observed = 10u;
121 ack_frame1.packets.Add(1, 11); 122 ack_frame1.packets.Add(1, 11);
122 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); 123 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u));
123 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u)); 124 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u));
124 125
125 ack_frame1.packets.Remove(10); 126 ack_frame1.packets.Remove(10);
126 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 10u, 0u)); 127 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 10u, 0u));
127 128
128 QuicAckFrame ack_frame2; 129 QuicAckFrame ack_frame2;
129 ack_frame2.largest_observed = 100u; 130 ack_frame2.largest_observed = 100u;
130 ack_frame2.packets.Add(21, 100); 131 ack_frame2.packets.Add(21, 100);
131 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u)); 132 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u));
132 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u)); 133 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u));
133 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); 134 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u));
134 135
135 ack_frame2.packets.Remove(50); 136 ack_frame2.packets.Remove(50);
136 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 50u, 20u)); 137 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 50u, 20u));
137 } 138 }
138 139
139 TEST(QuicFramesTest, RemoveSmallestInterval) { 140 TEST_F(QuicFramesTest, RemoveSmallestInterval) {
140 QuicAckFrame ack_frame1; 141 QuicAckFrame ack_frame1;
141 ack_frame1.largest_observed = 100u; 142 ack_frame1.largest_observed = 100u;
142 ack_frame1.packets.Add(51, 60); 143 ack_frame1.packets.Add(51, 60);
143 ack_frame1.packets.Add(71, 80); 144 ack_frame1.packets.Add(71, 80);
144 ack_frame1.packets.Add(91, 100); 145 ack_frame1.packets.Add(91, 100);
145 ack_frame1.packets.RemoveSmallestInterval(); 146 ack_frame1.packets.RemoveSmallestInterval();
146 EXPECT_EQ(2u, ack_frame1.packets.NumIntervals()); 147 EXPECT_EQ(2u, ack_frame1.packets.NumIntervals());
147 EXPECT_EQ(71u, ack_frame1.packets.Min()); 148 EXPECT_EQ(71u, ack_frame1.packets.Min());
148 EXPECT_EQ(99u, ack_frame1.packets.Max()); 149 EXPECT_EQ(99u, ack_frame1.packets.Max());
149 150
150 ack_frame1.packets.RemoveSmallestInterval(); 151 ack_frame1.packets.RemoveSmallestInterval();
151 EXPECT_EQ(1u, ack_frame1.packets.NumIntervals()); 152 EXPECT_EQ(1u, ack_frame1.packets.NumIntervals());
152 EXPECT_EQ(91u, ack_frame1.packets.Min()); 153 EXPECT_EQ(91u, ack_frame1.packets.Min());
153 EXPECT_EQ(99u, ack_frame1.packets.Max()); 154 EXPECT_EQ(99u, ack_frame1.packets.Max());
154 } 155 }
155 156
157 class PacketNumberQueueTest : public QuicTest {};
158
156 // Tests that a queue contains the expected data after calls to Add(). 159 // Tests that a queue contains the expected data after calls to Add().
157 TEST(PacketNumberQueueTest, AddRange) { 160 TEST_F(PacketNumberQueueTest, AddRange) {
158 PacketNumberQueue queue; 161 PacketNumberQueue queue;
159 queue.Add(1, 51); 162 queue.Add(1, 51);
160 queue.Add(53); 163 queue.Add(53);
161 164
162 EXPECT_FALSE(queue.Contains(0)); 165 EXPECT_FALSE(queue.Contains(0));
163 for (int i = 1; i < 51; ++i) { 166 for (int i = 1; i < 51; ++i) {
164 EXPECT_TRUE(queue.Contains(i)); 167 EXPECT_TRUE(queue.Contains(i));
165 } 168 }
166 EXPECT_FALSE(queue.Contains(51)); 169 EXPECT_FALSE(queue.Contains(51));
167 EXPECT_FALSE(queue.Contains(52)); 170 EXPECT_FALSE(queue.Contains(52));
168 EXPECT_TRUE(queue.Contains(53)); 171 EXPECT_TRUE(queue.Contains(53));
169 EXPECT_FALSE(queue.Contains(54)); 172 EXPECT_FALSE(queue.Contains(54));
170 EXPECT_EQ(51u, queue.NumPacketsSlow()); 173 EXPECT_EQ(51u, queue.NumPacketsSlow());
171 EXPECT_EQ(1u, queue.Min()); 174 EXPECT_EQ(1u, queue.Min());
172 EXPECT_EQ(53u, queue.Max()); 175 EXPECT_EQ(53u, queue.Max());
173 176
174 queue.Add(70); 177 queue.Add(70);
175 EXPECT_EQ(70u, queue.Max()); 178 EXPECT_EQ(70u, queue.Max());
176 } 179 }
177 180
178 // Tests that a queue contains the expected data after calls to Remove(). 181 // Tests that a queue contains the expected data after calls to Remove().
179 TEST(PacketNumberQueueTest, Removal) { 182 TEST_F(PacketNumberQueueTest, Removal) {
180 PacketNumberQueue queue; 183 PacketNumberQueue queue;
181 queue.Add(0, 100); 184 queue.Add(0, 100);
182 185
183 EXPECT_TRUE(queue.RemoveUpTo(51)); 186 EXPECT_TRUE(queue.RemoveUpTo(51));
184 EXPECT_FALSE(queue.RemoveUpTo(51)); 187 EXPECT_FALSE(queue.RemoveUpTo(51));
185 queue.Remove(53); 188 queue.Remove(53);
186 189
187 EXPECT_FALSE(queue.Contains(0)); 190 EXPECT_FALSE(queue.Contains(0));
188 for (int i = 1; i < 51; ++i) { 191 for (int i = 1; i < 51; ++i) {
189 EXPECT_FALSE(queue.Contains(i)); 192 EXPECT_FALSE(queue.Contains(i));
190 } 193 }
191 EXPECT_TRUE(queue.Contains(51)); 194 EXPECT_TRUE(queue.Contains(51));
192 EXPECT_TRUE(queue.Contains(52)); 195 EXPECT_TRUE(queue.Contains(52));
193 EXPECT_FALSE(queue.Contains(53)); 196 EXPECT_FALSE(queue.Contains(53));
194 EXPECT_TRUE(queue.Contains(54)); 197 EXPECT_TRUE(queue.Contains(54));
195 EXPECT_EQ(48u, queue.NumPacketsSlow()); 198 EXPECT_EQ(48u, queue.NumPacketsSlow());
196 EXPECT_EQ(51u, queue.Min()); 199 EXPECT_EQ(51u, queue.Min());
197 EXPECT_EQ(99u, queue.Max()); 200 EXPECT_EQ(99u, queue.Max());
198 201
199 queue.Remove(51); 202 queue.Remove(51);
200 EXPECT_EQ(52u, queue.Min()); 203 EXPECT_EQ(52u, queue.Min());
201 queue.Remove(99); 204 queue.Remove(99);
202 EXPECT_EQ(98u, queue.Max()); 205 EXPECT_EQ(98u, queue.Max());
203 } 206 }
204 207
205 // Tests that a queue is empty when all of its elements are removed. 208 // Tests that a queue is empty when all of its elements are removed.
206 TEST(PacketNumberQueueTest, Empty) { 209 TEST_F(PacketNumberQueueTest, Empty) {
207 PacketNumberQueue queue; 210 PacketNumberQueue queue;
208 EXPECT_TRUE(queue.Empty()); 211 EXPECT_TRUE(queue.Empty());
209 EXPECT_EQ(0u, queue.NumPacketsSlow()); 212 EXPECT_EQ(0u, queue.NumPacketsSlow());
210 213
211 queue.Add(1, 100); 214 queue.Add(1, 100);
212 EXPECT_TRUE(queue.RemoveUpTo(100)); 215 EXPECT_TRUE(queue.RemoveUpTo(100));
213 EXPECT_TRUE(queue.Empty()); 216 EXPECT_TRUE(queue.Empty());
214 EXPECT_EQ(0u, queue.NumPacketsSlow()); 217 EXPECT_EQ(0u, queue.NumPacketsSlow());
215 } 218 }
216 219
217 // Tests that logging the state of a PacketNumberQueue does not crash. 220 // Tests that logging the state of a PacketNumberQueue does not crash.
218 TEST(PacketNumberQueueTest, LogDoesNotCrash) { 221 TEST_F(PacketNumberQueueTest, LogDoesNotCrash) {
219 std::ostringstream oss; 222 std::ostringstream oss;
220 PacketNumberQueue queue; 223 PacketNumberQueue queue;
221 oss << queue; 224 oss << queue;
222 225
223 queue.Add(1); 226 queue.Add(1);
224 queue.Add(50, 100); 227 queue.Add(50, 100);
225 oss << queue; 228 oss << queue;
226 } 229 }
227 230
228 // Tests that the iterators returned from a packet queue iterate over the queue. 231 // Tests that the iterators returned from a packet queue iterate over the queue.
229 TEST(PacketNumberQueueTest, Iterators) { 232 TEST_F(PacketNumberQueueTest, Iterators) {
230 PacketNumberQueue queue; 233 PacketNumberQueue queue;
231 queue.Add(1, 100); 234 queue.Add(1, 100);
232 235
233 const std::vector<Interval<QuicPacketNumber>> actual_intervals(queue.begin(), 236 const std::vector<Interval<QuicPacketNumber>> actual_intervals(queue.begin(),
234 queue.end()); 237 queue.end());
235 238
236 std::vector<Interval<QuicPacketNumber>> expected_intervals; 239 std::vector<Interval<QuicPacketNumber>> expected_intervals;
237 expected_intervals.push_back(Interval<QuicPacketNumber>(1, 100)); 240 expected_intervals.push_back(Interval<QuicPacketNumber>(1, 100));
238 241
239 EXPECT_EQ(expected_intervals, actual_intervals); 242 EXPECT_EQ(expected_intervals, actual_intervals);
240 } 243 }
241 244
242 TEST(PacketNumberQueueTest, LowerBoundEquals) { 245 TEST_F(PacketNumberQueueTest, LowerBoundEquals) {
243 PacketNumberQueue queue; 246 PacketNumberQueue queue;
244 queue.Add(1, 100); 247 queue.Add(1, 100);
245 248
246 PacketNumberQueue::const_iterator it = queue.lower_bound(10); 249 PacketNumberQueue::const_iterator it = queue.lower_bound(10);
247 ASSERT_NE(queue.end(), it); 250 ASSERT_NE(queue.end(), it);
248 EXPECT_TRUE(it->Contains(10u)); 251 EXPECT_TRUE(it->Contains(10u));
249 252
250 it = queue.lower_bound(101); 253 it = queue.lower_bound(101);
251 EXPECT_TRUE(queue.end() == it); 254 EXPECT_TRUE(queue.end() == it);
252 } 255 }
253 256
254 TEST(PacketNumberQueueTest, LowerBoundGreater) { 257 TEST_F(PacketNumberQueueTest, LowerBoundGreater) {
255 PacketNumberQueue queue; 258 PacketNumberQueue queue;
256 queue.Add(15, 25); 259 queue.Add(15, 25);
257 queue.Add(50, 100); 260 queue.Add(50, 100);
258 261
259 PacketNumberQueue::const_iterator it = queue.lower_bound(10); 262 PacketNumberQueue::const_iterator it = queue.lower_bound(10);
260 ASSERT_NE(queue.end(), it); 263 ASSERT_NE(queue.end(), it);
261 EXPECT_EQ(15u, it->min()); 264 EXPECT_EQ(15u, it->min());
262 EXPECT_EQ(25u, it->max()); 265 EXPECT_EQ(25u, it->max());
263 } 266 }
264 267
265 TEST(PacketNumberQueueTest, IntervalLengthAndRemoveInterval) { 268 TEST_F(PacketNumberQueueTest, IntervalLengthAndRemoveInterval) {
266 PacketNumberQueue queue; 269 PacketNumberQueue queue;
267 queue.Add(1, 10); 270 queue.Add(1, 10);
268 queue.Add(20, 30); 271 queue.Add(20, 30);
269 queue.Add(40, 50); 272 queue.Add(40, 50);
270 EXPECT_EQ(3u, queue.NumIntervals()); 273 EXPECT_EQ(3u, queue.NumIntervals());
271 EXPECT_EQ(10u, queue.LastIntervalLength()); 274 EXPECT_EQ(10u, queue.LastIntervalLength());
272 queue.Remove(9, 21); 275 queue.Remove(9, 21);
273 EXPECT_EQ(3u, queue.NumIntervals()); 276 EXPECT_EQ(3u, queue.NumIntervals());
274 EXPECT_FALSE(queue.Contains(9)); 277 EXPECT_FALSE(queue.Contains(9));
275 EXPECT_FALSE(queue.Contains(20)); 278 EXPECT_FALSE(queue.Contains(20));
276 } 279 }
277 280
278 TEST(PacketNumberQueueTest, Complement) { 281 TEST_F(PacketNumberQueueTest, Complement) {
279 PacketNumberQueue queue; 282 PacketNumberQueue queue;
280 queue.Add(1, 10); 283 queue.Add(1, 10);
281 queue.Add(12, 20); 284 queue.Add(12, 20);
282 queue.Add(22, 30); 285 queue.Add(22, 30);
283 queue.Complement(); 286 queue.Complement();
284 EXPECT_EQ(2u, queue.NumIntervals()); 287 EXPECT_EQ(2u, queue.NumIntervals());
285 EXPECT_TRUE(queue.Contains(10)); 288 EXPECT_TRUE(queue.Contains(10));
286 EXPECT_TRUE(queue.Contains(11)); 289 EXPECT_TRUE(queue.Contains(11));
287 EXPECT_TRUE(queue.Contains(20)); 290 EXPECT_TRUE(queue.Contains(20));
288 EXPECT_TRUE(queue.Contains(21)); 291 EXPECT_TRUE(queue.Contains(21));
289 } 292 }
290 293
291 } // namespace 294 } // namespace
292 } // namespace test 295 } // namespace test
293 } // namespace net 296 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/crypto/strike_register_test.cc ('k') | net/quic/core/quic_alarm_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698