| 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/quic_framer.h" | 5 #include "net/quic/quic_framer.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 } | 248 } |
| 249 ++packet_count_; | 249 ++packet_count_; |
| 250 header_.reset(new QuicPacketHeader(header)); | 250 header_.reset(new QuicPacketHeader(header)); |
| 251 return accept_packet_; | 251 return accept_packet_; |
| 252 } | 252 } |
| 253 | 253 |
| 254 bool OnStreamFrame(const QuicStreamFrame& frame) override { | 254 bool OnStreamFrame(const QuicStreamFrame& frame) override { |
| 255 ++frame_count_; | 255 ++frame_count_; |
| 256 // Save a copy of the data so it is valid after the packet is processed. | 256 // Save a copy of the data so it is valid after the packet is processed. |
| 257 string* string_data = new string(); | 257 string* string_data = new string(); |
| 258 StringPiece(frame.frame_buffer, frame.frame_length) | 258 StringPiece(frame.data_buffer, frame.data_length) |
| 259 .AppendToString(string_data); | 259 .AppendToString(string_data); |
| 260 stream_data_.push_back(string_data); | 260 stream_data_.push_back(string_data); |
| 261 stream_frames_.push_back(new QuicStreamFrame(frame.stream_id, frame.fin, | 261 stream_frames_.push_back(new QuicStreamFrame(frame.stream_id, frame.fin, |
| 262 frame.offset, *string_data)); | 262 frame.offset, *string_data)); |
| 263 return true; | 263 return true; |
| 264 } | 264 } |
| 265 | 265 |
| 266 bool OnAckFrame(const QuicAckFrame& frame) override { | 266 bool OnAckFrame(const QuicAckFrame& frame) override { |
| 267 ++frame_count_; | 267 ++frame_count_; |
| 268 ack_frames_.push_back(new QuicAckFrame(frame)); | 268 ack_frames_.push_back(new QuicAckFrame(frame)); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 string expected_error, | 439 string expected_error, |
| 440 QuicErrorCode error_code) { | 440 QuicErrorCode error_code) { |
| 441 QuicEncryptedPacket encrypted(AsChars(packet), len, false); | 441 QuicEncryptedPacket encrypted(AsChars(packet), len, false); |
| 442 EXPECT_FALSE(framer_.ProcessPacket(encrypted)) << "len: " << len; | 442 EXPECT_FALSE(framer_.ProcessPacket(encrypted)) << "len: " << len; |
| 443 EXPECT_EQ(expected_error, framer_.detailed_error()) << "len: " << len; | 443 EXPECT_EQ(expected_error, framer_.detailed_error()) << "len: " << len; |
| 444 EXPECT_EQ(error_code, framer_.error()) << "len: " << len; | 444 EXPECT_EQ(error_code, framer_.error()) << "len: " << len; |
| 445 } | 445 } |
| 446 | 446 |
| 447 // Checks if the supplied string matches data in the supplied StreamFrame. | 447 // Checks if the supplied string matches data in the supplied StreamFrame. |
| 448 void CheckStreamFrameData(string str, QuicStreamFrame* frame) { | 448 void CheckStreamFrameData(string str, QuicStreamFrame* frame) { |
| 449 EXPECT_EQ(str, string(frame->frame_buffer, frame->frame_length)); | 449 EXPECT_EQ(str, string(frame->data_buffer, frame->data_length)); |
| 450 } | 450 } |
| 451 | 451 |
| 452 void CheckStreamFrameBoundaries(unsigned char* packet, | 452 void CheckStreamFrameBoundaries(unsigned char* packet, |
| 453 size_t stream_id_size, | 453 size_t stream_id_size, |
| 454 bool include_version) { | 454 bool include_version) { |
| 455 // Now test framing boundaries. | 455 // Now test framing boundaries. |
| 456 for (size_t i = kQuicFrameTypeSize; i < GetMinStreamFrameSize(); ++i) { | 456 for (size_t i = kQuicFrameTypeSize; i < GetMinStreamFrameSize(); ++i) { |
| 457 string expected_error; | 457 string expected_error; |
| 458 if (i < kQuicFrameTypeSize + stream_id_size) { | 458 if (i < kQuicFrameTypeSize + stream_id_size) { |
| 459 expected_error = "Unable to read stream_id."; | 459 expected_error = "Unable to read stream_id."; |
| (...skipping 6428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6888 false); | 6888 false); |
| 6889 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); | 6889 EXPECT_TRUE(framer_.ProcessPacket(encrypted)); |
| 6890 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); | 6890 EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); |
| 6891 } | 6891 } |
| 6892 | 6892 |
| 6893 static char kTestString[] = "At least 20 characters."; | 6893 static char kTestString[] = "At least 20 characters."; |
| 6894 static QuicStreamId kTestQuicStreamId = 1; | 6894 static QuicStreamId kTestQuicStreamId = 1; |
| 6895 static bool ExpectedStreamFrame(const QuicStreamFrame& frame) { | 6895 static bool ExpectedStreamFrame(const QuicStreamFrame& frame) { |
| 6896 return frame.stream_id == kTestQuicStreamId && !frame.fin && | 6896 return frame.stream_id == kTestQuicStreamId && !frame.fin && |
| 6897 frame.offset == 0 && | 6897 frame.offset == 0 && |
| 6898 string(frame.frame_buffer, frame.frame_length) == kTestString; | 6898 string(frame.data_buffer, frame.data_length) == kTestString; |
| 6899 // FIN is hard-coded false in ConstructEncryptedPacket. | 6899 // FIN is hard-coded false in ConstructEncryptedPacket. |
| 6900 // Offset 0 is hard-coded in ConstructEncryptedPacket. | 6900 // Offset 0 is hard-coded in ConstructEncryptedPacket. |
| 6901 } | 6901 } |
| 6902 | 6902 |
| 6903 // Verify that the packet returned by ConstructEncryptedPacket() can be properly | 6903 // Verify that the packet returned by ConstructEncryptedPacket() can be properly |
| 6904 // parsed by the framer. | 6904 // parsed by the framer. |
| 6905 TEST_P(QuicFramerTest, ConstructEncryptedPacket) { | 6905 TEST_P(QuicFramerTest, ConstructEncryptedPacket) { |
| 6906 // Since we are using ConstructEncryptedPacket, we have to set the framer's | 6906 // Since we are using ConstructEncryptedPacket, we have to set the framer's |
| 6907 // crypto to be Null. | 6907 // crypto to be Null. |
| 6908 framer_.SetDecrypter(ENCRYPTION_NONE, QuicDecrypter::Create(kNULL)); | 6908 framer_.SetDecrypter(ENCRYPTION_NONE, QuicDecrypter::Create(kNULL)); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7032 'o', ' ', 'w', 'o', | 7032 'o', ' ', 'w', 'o', |
| 7033 'r', 'l', 'd', '!', | 7033 'r', 'l', 'd', '!', |
| 7034 }; | 7034 }; |
| 7035 // clang-format on | 7035 // clang-format on |
| 7036 | 7036 |
| 7037 QuicFramerFuzzFunc(packet, arraysize(packet)); | 7037 QuicFramerFuzzFunc(packet, arraysize(packet)); |
| 7038 } | 7038 } |
| 7039 | 7039 |
| 7040 } // namespace test | 7040 } // namespace test |
| 7041 } // namespace net | 7041 } // namespace net |
| OLD | NEW |