OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/quic_protocol.h" | 5 #include "net/quic/core/quic_protocol.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "net/quic/core/quic_flags.h" | 10 #include "net/quic/core/quic_flags.h" |
11 #include "net/quic/core/quic_utils.h" | 11 #include "net/quic/core/quic_utils.h" |
12 #include "net/quic/test_tools/quic_test_utils.h" | 12 #include "net/quic/test_tools/quic_test_utils.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 | 14 |
15 namespace net { | 15 namespace net { |
16 namespace test { | 16 namespace test { |
17 namespace { | 17 namespace { |
18 | 18 |
19 TEST(QuicProtocolTest, MakeQuicTag) { | 19 TEST(QuicProtocolTest, MakeQuicTag) { |
20 QuicTag tag = MakeQuicTag('A', 'B', 'C', 'D'); | 20 QuicTag tag = MakeQuicTag('A', 'B', 'C', 'D'); |
21 char bytes[4]; | 21 char bytes[4]; |
22 memcpy(bytes, &tag, 4); | 22 memcpy(bytes, &tag, 4); |
23 EXPECT_EQ('A', bytes[0]); | 23 EXPECT_EQ('A', bytes[0]); |
24 EXPECT_EQ('B', bytes[1]); | 24 EXPECT_EQ('B', bytes[1]); |
25 EXPECT_EQ('C', bytes[2]); | 25 EXPECT_EQ('C', bytes[2]); |
26 EXPECT_EQ('D', bytes[3]); | 26 EXPECT_EQ('D', bytes[3]); |
27 } | 27 } |
28 | 28 |
29 TEST(QuicProtocolTest, IsAawaitingPacket) { | 29 TEST(QuicProtocolTest, IsAwaitingPacket) { |
30 QuicAckFrame ack_frame; | |
31 ack_frame.largest_observed = 10u; | |
32 EXPECT_TRUE(IsAwaitingPacket(ack_frame, 11u, 0u)); | |
33 EXPECT_FALSE(IsAwaitingPacket(ack_frame, 1u, 0u)); | |
34 | |
35 ack_frame.packets.Add(10); | |
36 EXPECT_TRUE(IsAwaitingPacket(ack_frame, 10u, 0u)); | |
37 | |
38 QuicAckFrame ack_frame1; | 30 QuicAckFrame ack_frame1; |
39 ack_frame1.missing = false; | |
40 ack_frame1.largest_observed = 10u; | 31 ack_frame1.largest_observed = 10u; |
41 ack_frame1.packets.Add(1, 11); | 32 ack_frame1.packets.Add(1, 11); |
42 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); | 33 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 11u, 0u)); |
43 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u)); | 34 EXPECT_FALSE(IsAwaitingPacket(ack_frame1, 1u, 0u)); |
44 | 35 |
45 ack_frame1.packets.Remove(10); | 36 ack_frame1.packets.Remove(10); |
46 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 10u, 0u)); | 37 EXPECT_TRUE(IsAwaitingPacket(ack_frame1, 10u, 0u)); |
47 | 38 |
48 QuicAckFrame ack_frame2; | 39 QuicAckFrame ack_frame2; |
49 ack_frame2.missing = false; | |
50 ack_frame2.largest_observed = 100u; | 40 ack_frame2.largest_observed = 100u; |
51 ack_frame2.packets.Add(21, 100); | 41 ack_frame2.packets.Add(21, 100); |
52 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u)); | 42 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 11u, 20u)); |
53 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u)); | 43 EXPECT_FALSE(IsAwaitingPacket(ack_frame2, 80u, 20u)); |
54 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); | 44 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 101u, 20u)); |
55 | 45 |
56 ack_frame2.packets.Remove(50); | 46 ack_frame2.packets.Remove(50); |
57 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 50u, 20u)); | 47 EXPECT_TRUE(IsAwaitingPacket(ack_frame2, 50u, 20u)); |
58 } | 48 } |
59 | 49 |
60 TEST(QuicProtocolTest, QuicVersionToQuicTag) { | 50 TEST(QuicProtocolTest, QuicVersionToQuicTag) { |
61 // If you add a new version to the QuicVersion enum you will need to add a new | 51 // If you add a new version to the QuicVersion enum you will need to add a new |
62 // case to QuicVersionToQuicTag, otherwise this test will fail. | 52 // case to QuicVersionToQuicTag, otherwise this test will fail. |
63 | 53 |
64 // TODO(rtenneti): Enable checking of Log(ERROR) messages. | 54 // TODO(rtenneti): Enable checking of Log(ERROR) messages. |
65 #if 0 | 55 #if 0 |
66 // Any logs would indicate an unsupported version which we don't expect. | 56 // Any logs would indicate an unsupported version which we don't expect. |
67 ScopedMockLog log(kDoNotCaptureLogsYet); | 57 ScopedMockLog log(kDoNotCaptureLogsYet); |
68 EXPECT_CALL(log, Log(_, _, _)).Times(0); | 58 EXPECT_CALL(log, Log(_, _, _)).Times(0); |
69 log.StartCapturingLogs(); | 59 log.StartCapturingLogs(); |
70 #endif | 60 #endif |
71 | 61 |
72 // Explicitly test a specific version. | 62 // Explicitly test a specific version. |
73 EXPECT_EQ(MakeQuicTag('Q', '0', '3', '2'), | 63 EXPECT_EQ(MakeQuicTag('Q', '0', '3', '4'), |
74 QuicVersionToQuicTag(QUIC_VERSION_32)); | 64 QuicVersionToQuicTag(QUIC_VERSION_34)); |
75 | 65 |
76 // Loop over all supported versions and make sure that we never hit the | 66 // Loop over all supported versions and make sure that we never hit the |
77 // default case (i.e. all supported versions should be successfully converted | 67 // default case (i.e. all supported versions should be successfully converted |
78 // to valid QuicTags). | 68 // to valid QuicTags). |
79 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { | 69 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
80 QuicVersion version = kSupportedQuicVersions[i]; | 70 QuicVersion version = kSupportedQuicVersions[i]; |
81 EXPECT_LT(0u, QuicVersionToQuicTag(version)); | 71 EXPECT_LT(0u, QuicVersionToQuicTag(version)); |
82 } | 72 } |
83 } | 73 } |
84 | 74 |
(...skipping 18 matching lines...) Expand all Loading... |
103 | 93 |
104 // TODO(rtenneti): Enable checking of Log(ERROR) messages. | 94 // TODO(rtenneti): Enable checking of Log(ERROR) messages. |
105 #if 0 | 95 #if 0 |
106 // Any logs would indicate an unsupported version which we don't expect. | 96 // Any logs would indicate an unsupported version which we don't expect. |
107 ScopedMockLog log(kDoNotCaptureLogsYet); | 97 ScopedMockLog log(kDoNotCaptureLogsYet); |
108 EXPECT_CALL(log, Log(_, _, _)).Times(0); | 98 EXPECT_CALL(log, Log(_, _, _)).Times(0); |
109 log.StartCapturingLogs(); | 99 log.StartCapturingLogs(); |
110 #endif | 100 #endif |
111 | 101 |
112 // Explicitly test specific versions. | 102 // Explicitly test specific versions. |
113 EXPECT_EQ(QUIC_VERSION_32, | 103 EXPECT_EQ(QUIC_VERSION_34, |
114 QuicTagToQuicVersion(MakeQuicTag('Q', '0', '3', '2'))); | 104 QuicTagToQuicVersion(MakeQuicTag('Q', '0', '3', '4'))); |
115 | 105 |
116 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { | 106 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
117 QuicVersion version = kSupportedQuicVersions[i]; | 107 QuicVersion version = kSupportedQuicVersions[i]; |
118 | 108 |
119 // Get the tag from the version (we can loop over QuicVersions easily). | 109 // Get the tag from the version (we can loop over QuicVersions easily). |
120 QuicTag tag = QuicVersionToQuicTag(version); | 110 QuicTag tag = QuicVersionToQuicTag(version); |
121 EXPECT_LT(0u, tag); | 111 EXPECT_LT(0u, tag); |
122 | 112 |
123 // Now try converting back. | 113 // Now try converting back. |
124 QuicVersion tag_to_quic_version = QuicTagToQuicVersion(tag); | 114 QuicVersion tag_to_quic_version = QuicTagToQuicVersion(tag); |
(...skipping 12 matching lines...) Expand all Loading... |
137 .Times(1); | 127 .Times(1); |
138 #endif | 128 #endif |
139 log.StartCapturingLogs(); | 129 log.StartCapturingLogs(); |
140 #endif | 130 #endif |
141 | 131 |
142 EXPECT_EQ(QUIC_VERSION_UNSUPPORTED, | 132 EXPECT_EQ(QUIC_VERSION_UNSUPPORTED, |
143 QuicTagToQuicVersion(MakeQuicTag('F', 'A', 'K', 'E'))); | 133 QuicTagToQuicVersion(MakeQuicTag('F', 'A', 'K', 'E'))); |
144 } | 134 } |
145 | 135 |
146 TEST(QuicProtocolTest, QuicVersionToString) { | 136 TEST(QuicProtocolTest, QuicVersionToString) { |
147 EXPECT_EQ("QUIC_VERSION_32", QuicVersionToString(QUIC_VERSION_32)); | 137 EXPECT_EQ("QUIC_VERSION_34", QuicVersionToString(QUIC_VERSION_34)); |
148 EXPECT_EQ("QUIC_VERSION_UNSUPPORTED", | 138 EXPECT_EQ("QUIC_VERSION_UNSUPPORTED", |
149 QuicVersionToString(QUIC_VERSION_UNSUPPORTED)); | 139 QuicVersionToString(QUIC_VERSION_UNSUPPORTED)); |
150 | 140 |
151 QuicVersion single_version[] = {QUIC_VERSION_32}; | 141 QuicVersion single_version[] = {QUIC_VERSION_34}; |
152 QuicVersionVector versions_vector; | 142 QuicVersionVector versions_vector; |
153 for (size_t i = 0; i < arraysize(single_version); ++i) { | 143 for (size_t i = 0; i < arraysize(single_version); ++i) { |
154 versions_vector.push_back(single_version[i]); | 144 versions_vector.push_back(single_version[i]); |
155 } | 145 } |
156 EXPECT_EQ("QUIC_VERSION_32", QuicVersionVectorToString(versions_vector)); | 146 EXPECT_EQ("QUIC_VERSION_34", QuicVersionVectorToString(versions_vector)); |
157 | 147 |
158 QuicVersion multiple_versions[] = {QUIC_VERSION_UNSUPPORTED, QUIC_VERSION_32}; | 148 QuicVersion multiple_versions[] = {QUIC_VERSION_UNSUPPORTED, QUIC_VERSION_34}; |
159 versions_vector.clear(); | 149 versions_vector.clear(); |
160 for (size_t i = 0; i < arraysize(multiple_versions); ++i) { | 150 for (size_t i = 0; i < arraysize(multiple_versions); ++i) { |
161 versions_vector.push_back(multiple_versions[i]); | 151 versions_vector.push_back(multiple_versions[i]); |
162 } | 152 } |
163 EXPECT_EQ("QUIC_VERSION_UNSUPPORTED,QUIC_VERSION_32", | 153 EXPECT_EQ("QUIC_VERSION_UNSUPPORTED,QUIC_VERSION_34", |
164 QuicVersionVectorToString(versions_vector)); | 154 QuicVersionVectorToString(versions_vector)); |
165 | 155 |
166 // Make sure that all supported versions are present in QuicVersionToString. | 156 // Make sure that all supported versions are present in QuicVersionToString. |
167 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { | 157 for (size_t i = 0; i < arraysize(kSupportedQuicVersions); ++i) { |
168 QuicVersion version = kSupportedQuicVersions[i]; | 158 QuicVersion version = kSupportedQuicVersions[i]; |
169 EXPECT_NE("QUIC_VERSION_UNSUPPORTED", QuicVersionToString(version)); | 159 EXPECT_NE("QUIC_VERSION_UNSUPPORTED", QuicVersionToString(version)); |
170 } | 160 } |
171 } | 161 } |
172 | 162 |
173 TEST(QuicProtocolTest, AckFrameToString) { | 163 TEST(QuicProtocolTest, AckFrameToString) { |
174 QuicAckFrame frame; | 164 QuicAckFrame frame; |
175 frame.entropy_hash = 1; | |
176 frame.largest_observed = 2; | 165 frame.largest_observed = 2; |
177 frame.ack_delay_time = QuicTime::Delta::FromMicroseconds(3); | 166 frame.ack_delay_time = QuicTime::Delta::FromMicroseconds(3); |
178 frame.packets.Add(4); | 167 frame.packets.Add(4); |
179 frame.packets.Add(5); | 168 frame.packets.Add(5); |
180 frame.received_packet_times = { | 169 frame.received_packet_times = { |
181 {6, QuicTime::Zero() + QuicTime::Delta::FromMicroseconds(7)}}; | 170 {6, QuicTime::Zero() + QuicTime::Delta::FromMicroseconds(7)}}; |
182 std::ostringstream stream; | 171 std::ostringstream stream; |
183 stream << frame; | 172 stream << frame; |
184 EXPECT_EQ( | 173 EXPECT_EQ( |
185 "{ entropy_hash: 1, largest_observed: 2, ack_delay_time: 3, " | 174 "{ largest_observed: 2, ack_delay_time: 3, " |
186 "packets: [ 4 5 ], is_truncated: 0, received_packets: [ 6 at 7 ] }\n", | 175 "packets: [ 4 5 ], received_packets: [ 6 at 7 ] }\n", |
187 stream.str()); | 176 stream.str()); |
188 } | 177 } |
189 | 178 |
190 TEST(QuicProtocolTest, PaddingFrameToString) { | 179 TEST(QuicProtocolTest, PaddingFrameToString) { |
191 QuicPaddingFrame frame; | 180 QuicPaddingFrame frame; |
192 frame.num_padding_bytes = 1; | 181 frame.num_padding_bytes = 1; |
193 std::ostringstream stream; | 182 std::ostringstream stream; |
194 stream << frame; | 183 stream << frame; |
195 EXPECT_EQ("{ num_padding_bytes: 1 }\n", stream.str()); | 184 EXPECT_EQ("{ num_padding_bytes: 1 }\n", stream.str()); |
196 } | 185 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 frame.fin = false; | 239 frame.fin = false; |
251 frame.offset = 2; | 240 frame.offset = 2; |
252 frame.data_length = 3; | 241 frame.data_length = 3; |
253 std::ostringstream stream; | 242 std::ostringstream stream; |
254 stream << frame; | 243 stream << frame; |
255 EXPECT_EQ("{ stream_id: 1, fin: 0, offset: 2, length: 3 }\n", stream.str()); | 244 EXPECT_EQ("{ stream_id: 1, fin: 0, offset: 2, length: 3 }\n", stream.str()); |
256 } | 245 } |
257 | 246 |
258 TEST(QuicProtocolTest, StopWaitingFrameToString) { | 247 TEST(QuicProtocolTest, StopWaitingFrameToString) { |
259 QuicStopWaitingFrame frame; | 248 QuicStopWaitingFrame frame; |
260 frame.entropy_hash = 1; | |
261 frame.least_unacked = 2; | 249 frame.least_unacked = 2; |
262 std::ostringstream stream; | 250 std::ostringstream stream; |
263 stream << frame; | 251 stream << frame; |
264 EXPECT_EQ("{ entropy_hash: 1, least_unacked: 2 }\n", stream.str()); | 252 EXPECT_EQ("{ least_unacked: 2 }\n", stream.str()); |
265 } | 253 } |
266 | 254 |
267 TEST(QuicProtocolTest, PathCloseFrameToString) { | 255 TEST(QuicProtocolTest, PathCloseFrameToString) { |
268 QuicPathCloseFrame frame; | 256 QuicPathCloseFrame frame; |
269 frame.path_id = 1; | 257 frame.path_id = 1; |
270 std::ostringstream stream; | 258 std::ostringstream stream; |
271 stream << frame; | 259 stream << frame; |
272 EXPECT_EQ("{ path_id: 1 }\n", stream.str()); | 260 EXPECT_EQ("{ path_id: 1 }\n", stream.str()); |
273 } | 261 } |
274 | 262 |
275 TEST(QuicProtocolTest, FilterSupportedVersions) { | 263 TEST(QuicProtocolTest, FilterSupportedVersions) { |
276 QuicFlagSaver flags; | 264 QuicFlagSaver flags; |
277 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | 265 QuicVersionVector all_versions = {QUIC_VERSION_34, QUIC_VERSION_35, |
278 QUIC_VERSION_34, QUIC_VERSION_35, | |
279 QUIC_VERSION_36}; | 266 QUIC_VERSION_36}; |
280 | 267 |
281 FLAGS_quic_disable_pre_34 = true; | |
282 FLAGS_quic_enable_version_35 = false; | 268 FLAGS_quic_enable_version_35 = false; |
283 FLAGS_quic_enable_version_36_v2 = false; | 269 FLAGS_quic_enable_version_36_v2 = false; |
284 | 270 |
285 QuicVersionVector filtered_versions = FilterSupportedVersions(all_versions); | 271 QuicVersionVector filtered_versions = FilterSupportedVersions(all_versions); |
286 ASSERT_EQ(1u, filtered_versions.size()); | 272 ASSERT_EQ(1u, filtered_versions.size()); |
287 EXPECT_EQ(QUIC_VERSION_34, filtered_versions[0]); | 273 EXPECT_EQ(QUIC_VERSION_34, filtered_versions[0]); |
288 } | 274 } |
289 | 275 |
290 TEST(QuicProtocolTest, FilterSupportedVersionsAllVersions) { | 276 TEST(QuicProtocolTest, FilterSupportedVersionsAllVersions) { |
291 QuicFlagSaver flags; | 277 QuicFlagSaver flags; |
292 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | 278 QuicVersionVector all_versions = {QUIC_VERSION_34, QUIC_VERSION_35, |
293 QUIC_VERSION_34, QUIC_VERSION_35, | |
294 QUIC_VERSION_36}; | 279 QUIC_VERSION_36}; |
295 | 280 |
296 FLAGS_quic_disable_pre_34 = false; | |
297 FLAGS_quic_enable_version_35 = true; | 281 FLAGS_quic_enable_version_35 = true; |
298 FLAGS_quic_enable_version_36_v2 = true; | 282 FLAGS_quic_enable_version_36_v2 = true; |
299 | 283 |
300 QuicVersionVector filtered_versions = FilterSupportedVersions(all_versions); | 284 QuicVersionVector filtered_versions = FilterSupportedVersions(all_versions); |
301 ASSERT_EQ(all_versions, filtered_versions); | 285 ASSERT_EQ(all_versions, filtered_versions); |
302 } | 286 } |
303 | 287 |
304 TEST(QuicProtocolTest, FilterSupportedVersionsNo36) { | 288 TEST(QuicProtocolTest, FilterSupportedVersionsNo36) { |
305 QuicFlagSaver flags; | 289 QuicFlagSaver flags; |
306 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | 290 QuicVersionVector all_versions = {QUIC_VERSION_34, QUIC_VERSION_35, |
307 QUIC_VERSION_34, QUIC_VERSION_35, | |
308 QUIC_VERSION_36}; | 291 QUIC_VERSION_36}; |
309 | 292 |
310 FLAGS_quic_disable_pre_34 = false; | |
311 FLAGS_quic_enable_version_35 = true; | 293 FLAGS_quic_enable_version_35 = true; |
312 FLAGS_quic_enable_version_36_v2 = false; | 294 FLAGS_quic_enable_version_36_v2 = false; |
313 | 295 |
314 all_versions.pop_back(); // Remove 36 | 296 all_versions.pop_back(); // Remove 36 |
315 | 297 |
316 ASSERT_EQ(all_versions, FilterSupportedVersions(all_versions)); | 298 ASSERT_EQ(all_versions, FilterSupportedVersions(all_versions)); |
317 } | 299 } |
318 | 300 |
319 TEST(QuicProtocolTest, FilterSupportedVersionsNo35) { | 301 TEST(QuicProtocolTest, FilterSupportedVersionsNo35) { |
320 QuicFlagSaver flags; | 302 QuicFlagSaver flags; |
321 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | 303 QuicVersionVector all_versions = {QUIC_VERSION_34, QUIC_VERSION_35, |
322 QUIC_VERSION_34, QUIC_VERSION_35, | |
323 QUIC_VERSION_36}; | 304 QUIC_VERSION_36}; |
324 | 305 |
325 FLAGS_quic_disable_pre_34 = false; | |
326 FLAGS_quic_enable_version_35 = true; | 306 FLAGS_quic_enable_version_35 = true; |
327 FLAGS_quic_enable_version_36_v2 = true; | 307 FLAGS_quic_enable_version_36_v2 = true; |
328 | 308 |
329 all_versions.pop_back(); // Remove 36 | 309 all_versions.pop_back(); // Remove 36 |
330 all_versions.pop_back(); // Remove 35 | 310 all_versions.pop_back(); // Remove 35 |
331 | 311 |
332 ASSERT_EQ(all_versions, FilterSupportedVersions(all_versions)); | 312 ASSERT_EQ(all_versions, FilterSupportedVersions(all_versions)); |
333 } | 313 } |
334 | 314 |
335 TEST(QuicProtocolTest, FilterSupportedVersionsNoPre34) { | |
336 QuicFlagSaver flags; | |
337 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | |
338 QUIC_VERSION_34, QUIC_VERSION_35, | |
339 QUIC_VERSION_36}; | |
340 | |
341 FLAGS_quic_disable_pre_34 = true; | |
342 FLAGS_quic_enable_version_35 = true; | |
343 FLAGS_quic_enable_version_36_v2 = true; | |
344 | |
345 all_versions.erase(all_versions.begin()); // Remove 32 | |
346 all_versions.erase(all_versions.begin()); // Remove 33 | |
347 | |
348 ASSERT_EQ(all_versions, FilterSupportedVersions(all_versions)); | |
349 } | |
350 | |
351 TEST(QuicProtocolTest, QuicVersionManager) { | 315 TEST(QuicProtocolTest, QuicVersionManager) { |
352 QuicFlagSaver flags; | 316 QuicFlagSaver flags; |
353 FLAGS_quic_enable_version_35 = false; | 317 FLAGS_quic_enable_version_35 = false; |
354 FLAGS_quic_enable_version_36_v2 = false; | 318 FLAGS_quic_enable_version_36_v2 = false; |
355 QuicVersionManager manager(AllSupportedVersions()); | 319 QuicVersionManager manager(AllSupportedVersions()); |
356 EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()), | 320 EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()), |
357 manager.GetSupportedVersions()); | 321 manager.GetSupportedVersions()); |
358 FLAGS_quic_enable_version_35 = true; | 322 FLAGS_quic_enable_version_35 = true; |
359 FLAGS_quic_enable_version_36_v2 = true; | 323 FLAGS_quic_enable_version_36_v2 = true; |
360 EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()), | 324 EXPECT_EQ(FilterSupportedVersions(AllSupportedVersions()), |
361 manager.GetSupportedVersions()); | 325 manager.GetSupportedVersions()); |
362 EXPECT_EQ(QUIC_VERSION_36, manager.GetSupportedVersions()[0]); | 326 EXPECT_EQ(QUIC_VERSION_36, manager.GetSupportedVersions()[0]); |
363 EXPECT_EQ(QUIC_VERSION_35, manager.GetSupportedVersions()[1]); | 327 EXPECT_EQ(QUIC_VERSION_35, manager.GetSupportedVersions()[1]); |
364 } | 328 } |
365 | 329 |
366 TEST(QuicProtocolTest, LookUpVersionByIndex) { | 330 TEST(QuicProtocolTest, LookUpVersionByIndex) { |
367 QuicVersionVector all_versions = {QUIC_VERSION_32, QUIC_VERSION_33, | 331 QuicVersionVector all_versions = {QUIC_VERSION_34, QUIC_VERSION_35, |
368 QUIC_VERSION_34, QUIC_VERSION_35, | |
369 QUIC_VERSION_36}; | 332 QUIC_VERSION_36}; |
370 int version_count = all_versions.size(); | 333 int version_count = all_versions.size(); |
371 for (int i = -5; i <= version_count + 1; ++i) { | 334 for (int i = -5; i <= version_count + 1; ++i) { |
372 if (i >= 0 && i < version_count) { | 335 if (i >= 0 && i < version_count) { |
373 EXPECT_EQ(all_versions[i], VersionOfIndex(all_versions, i)[0]); | 336 EXPECT_EQ(all_versions[i], VersionOfIndex(all_versions, i)[0]); |
374 } else { | 337 } else { |
375 EXPECT_EQ(QUIC_VERSION_UNSUPPORTED, VersionOfIndex(all_versions, i)[0]); | 338 EXPECT_EQ(QUIC_VERSION_UNSUPPORTED, VersionOfIndex(all_versions, i)[0]); |
376 } | 339 } |
377 } | 340 } |
378 } | 341 } |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 EXPECT_EQ(2u, queue.NumIntervals()); | 471 EXPECT_EQ(2u, queue.NumIntervals()); |
509 EXPECT_TRUE(queue.Contains(10)); | 472 EXPECT_TRUE(queue.Contains(10)); |
510 EXPECT_TRUE(queue.Contains(11)); | 473 EXPECT_TRUE(queue.Contains(11)); |
511 EXPECT_TRUE(queue.Contains(20)); | 474 EXPECT_TRUE(queue.Contains(20)); |
512 EXPECT_TRUE(queue.Contains(21)); | 475 EXPECT_TRUE(queue.Contains(21)); |
513 } | 476 } |
514 | 477 |
515 } // namespace | 478 } // namespace |
516 } // namespace test | 479 } // namespace test |
517 } // namespace net | 480 } // namespace net |
OLD | NEW |