| 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 5061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6488 'o', ' ', 'w', 'o', | 6475 'o', ' ', 'w', 'o', |
| 6489 'r', 'l', 'd', '!', | 6476 'r', 'l', 'd', '!', |
| 6490 }; | 6477 }; |
| 6491 // clang-format on | 6478 // clang-format on |
| 6492 | 6479 |
| 6493 QuicFramerFuzzFunc(packet, arraysize(packet)); | 6480 QuicFramerFuzzFunc(packet, arraysize(packet)); |
| 6494 } | 6481 } |
| 6495 | 6482 |
| 6496 } // namespace test | 6483 } // namespace test |
| 6497 } // namespace net | 6484 } // namespace net |
| OLD | NEW |