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_framer.h" | 5 #include "net/quic/core/quic_framer.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
(...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1180 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) | 1180 framer_.version() <= QUIC_VERSION_33 ? arraysize(packet) |
1181 : arraysize(packet_34), | 1181 : arraysize(packet_34), |
1182 false); | 1182 false); |
1183 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); | 1183 EXPECT_FALSE(framer_.ProcessPacket(encrypted)); |
1184 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); | 1184 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); |
1185 EXPECT_EQ(0u, QuicFramerPeer::GetLastPacketNumber(&framer_)); | 1185 EXPECT_EQ(0u, QuicFramerPeer::GetLastPacketNumber(&framer_)); |
1186 EXPECT_EQ(kInvalidPathId, QuicFramerPeer::GetLastPathId(&framer_)); | 1186 EXPECT_EQ(kInvalidPathId, QuicFramerPeer::GetLastPathId(&framer_)); |
1187 } | 1187 } |
1188 | 1188 |
1189 TEST_P(QuicFramerTest, PacketHeaderWith4BytePacketNumber) { | 1189 TEST_P(QuicFramerTest, PacketHeaderWith4BytePacketNumber) { |
1190 if (FLAGS_quic_packet_numbers_largest_received) { | 1190 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); |
1191 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); | |
1192 } else { | |
1193 QuicFramerPeer::SetLastPacketNumber(&framer_, kPacketNumber - 2); | |
1194 } | |
1195 | 1191 |
1196 // clang-format off | 1192 // clang-format off |
1197 unsigned char packet[] = { | 1193 unsigned char packet[] = { |
1198 // public flags (8 byte connection_id and 4 byte packet number) | 1194 // public flags (8 byte connection_id and 4 byte packet number) |
1199 0x28, | 1195 0x28, |
1200 // connection_id | 1196 // connection_id |
1201 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, | 1197 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, |
1202 // packet number | 1198 // packet number |
1203 0xBC, 0x9A, 0x78, 0x56, | 1199 0xBC, 0x9A, 0x78, 0x56, |
1204 // private flags | 1200 // private flags |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1254 expected_error = "Unable to read packet number."; | 1250 expected_error = "Unable to read packet number."; |
1255 } | 1251 } |
1256 } | 1252 } |
1257 CheckProcessingFails( | 1253 CheckProcessingFails( |
1258 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, | 1254 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, |
1259 expected_error, QUIC_INVALID_PACKET_HEADER); | 1255 expected_error, QUIC_INVALID_PACKET_HEADER); |
1260 } | 1256 } |
1261 } | 1257 } |
1262 | 1258 |
1263 TEST_P(QuicFramerTest, PacketHeaderWith2BytePacketNumber) { | 1259 TEST_P(QuicFramerTest, PacketHeaderWith2BytePacketNumber) { |
1264 if (FLAGS_quic_packet_numbers_largest_received) { | 1260 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); |
1265 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); | |
1266 } else { | |
1267 QuicFramerPeer::SetLastPacketNumber(&framer_, kPacketNumber - 2); | |
1268 } | |
1269 | 1261 |
1270 // clang-format off | 1262 // clang-format off |
1271 unsigned char packet[] = { | 1263 unsigned char packet[] = { |
1272 // public flags (8 byte connection_id and 2 byte packet number) | 1264 // public flags (8 byte connection_id and 2 byte packet number) |
1273 0x18, | 1265 0x18, |
1274 // connection_id | 1266 // connection_id |
1275 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, | 1267 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, |
1276 // packet number | 1268 // packet number |
1277 0xBC, 0x9A, | 1269 0xBC, 0x9A, |
1278 // private flags | 1270 // private flags |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1330 expected_error = "Unable to read packet number."; | 1322 expected_error = "Unable to read packet number."; |
1331 } | 1323 } |
1332 } | 1324 } |
1333 CheckProcessingFails( | 1325 CheckProcessingFails( |
1334 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, | 1326 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, |
1335 expected_error, QUIC_INVALID_PACKET_HEADER); | 1327 expected_error, QUIC_INVALID_PACKET_HEADER); |
1336 } | 1328 } |
1337 } | 1329 } |
1338 | 1330 |
1339 TEST_P(QuicFramerTest, PacketHeaderWith1BytePacketNumber) { | 1331 TEST_P(QuicFramerTest, PacketHeaderWith1BytePacketNumber) { |
1340 if (FLAGS_quic_packet_numbers_largest_received) { | 1332 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); |
1341 QuicFramerPeer::SetLargestPacketNumber(&framer_, kPacketNumber - 2); | |
1342 } else { | |
1343 QuicFramerPeer::SetLastPacketNumber(&framer_, kPacketNumber - 2); | |
1344 } | |
1345 | 1333 |
1346 // clang-format off | 1334 // clang-format off |
1347 unsigned char packet[] = { | 1335 unsigned char packet[] = { |
1348 // public flags (8 byte connection_id and 1 byte packet number) | 1336 // public flags (8 byte connection_id and 1 byte packet number) |
1349 0x08, | 1337 0x08, |
1350 // connection_id | 1338 // connection_id |
1351 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, | 1339 0x10, 0x32, 0x54, 0x76, 0x98, 0xBA, 0xDC, 0xFE, |
1352 // packet number | 1340 // packet number |
1353 0xBC, | 1341 0xBC, |
1354 // private flags | 1342 // private flags |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1406 expected_error = "Unable to read packet number."; | 1394 expected_error = "Unable to read packet number."; |
1407 } | 1395 } |
1408 } | 1396 } |
1409 CheckProcessingFails( | 1397 CheckProcessingFails( |
1410 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, | 1398 framer_.version() <= QUIC_VERSION_33 ? packet : packet_34, i, |
1411 expected_error, QUIC_INVALID_PACKET_HEADER); | 1399 expected_error, QUIC_INVALID_PACKET_HEADER); |
1412 } | 1400 } |
1413 } | 1401 } |
1414 | 1402 |
1415 TEST_P(QuicFramerTest, PacketNumberDecreasesThenIncreases) { | 1403 TEST_P(QuicFramerTest, PacketNumberDecreasesThenIncreases) { |
1416 FLAGS_quic_packet_numbers_largest_received = true; | |
1417 // Test the case when a packet is received from the past and future packet | 1404 // Test the case when a packet is received from the past and future packet |
1418 // numbers are still calculated relative to the largest received packet. | 1405 // numbers are still calculated relative to the largest received packet. |
1419 QuicPacketHeader header; | 1406 QuicPacketHeader header; |
1420 header.public_header.connection_id = kConnectionId; | 1407 header.public_header.connection_id = kConnectionId; |
1421 header.public_header.reset_flag = false; | 1408 header.public_header.reset_flag = false; |
1422 header.public_header.version_flag = false; | 1409 header.public_header.version_flag = false; |
1423 header.entropy_flag = false; | 1410 header.entropy_flag = false; |
1424 header.packet_number = kPacketNumber - 2; | 1411 header.packet_number = kPacketNumber - 2; |
1425 | 1412 |
1426 QuicPaddingFrame padding_frame; | 1413 QuicPaddingFrame padding_frame; |
(...skipping 5065 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6492 'o', ' ', 'w', 'o', | 6479 'o', ' ', 'w', 'o', |
6493 'r', 'l', 'd', '!', | 6480 'r', 'l', 'd', '!', |
6494 }; | 6481 }; |
6495 // clang-format on | 6482 // clang-format on |
6496 | 6483 |
6497 QuicFramerFuzzFunc(packet, arraysize(packet)); | 6484 QuicFramerFuzzFunc(packet, arraysize(packet)); |
6498 } | 6485 } |
6499 | 6486 |
6500 } // namespace test | 6487 } // namespace test |
6501 } // namespace net | 6488 } // namespace net |
OLD | NEW |