| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/test_tools/quic_test_packet_maker.h" | 5 #include "net/quic/test_tools/quic_test_packet_maker.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <memory> |
| 8 | 9 |
| 10 #include "base/memory/ptr_util.h" |
| 9 #include "net/quic/quic_framer.h" | 11 #include "net/quic/quic_framer.h" |
| 10 #include "net/quic/quic_http_utils.h" | 12 #include "net/quic/quic_http_utils.h" |
| 11 #include "net/quic/quic_utils.h" | 13 #include "net/quic/quic_utils.h" |
| 12 #include "net/quic/test_tools/quic_test_utils.h" | 14 #include "net/quic/test_tools/quic_test_utils.h" |
| 13 | 15 |
| 14 using std::make_pair; | 16 using std::make_pair; |
| 15 | 17 |
| 16 namespace net { | 18 namespace net { |
| 17 namespace test { | 19 namespace test { |
| 18 | 20 |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 QuicStreamId stream_id, | 286 QuicStreamId stream_id, |
| 285 bool should_include_version, | 287 bool should_include_version, |
| 286 bool fin, | 288 bool fin, |
| 287 QuicStreamOffset offset, | 289 QuicStreamOffset offset, |
| 288 base::StringPiece data) { | 290 base::StringPiece data) { |
| 289 InitializeHeader(packet_number, should_include_version); | 291 InitializeHeader(packet_number, should_include_version); |
| 290 QuicStreamFrame frame(stream_id, fin, offset, data); | 292 QuicStreamFrame frame(stream_id, fin, offset, data); |
| 291 return MakePacket(header_, QuicFrame(&frame)); | 293 return MakePacket(header_, QuicFrame(&frame)); |
| 292 } | 294 } |
| 293 | 295 |
| 296 std::unique_ptr<QuicReceivedPacket> |
| 297 QuicTestPacketMaker::MakeMultipleDataFramesPacket( |
| 298 QuicPacketNumber packet_number, |
| 299 QuicStreamId stream_id, |
| 300 bool should_include_version, |
| 301 bool fin, |
| 302 QuicStreamOffset offset, |
| 303 const std::vector<std::string>& data_writes) { |
| 304 InitializeHeader(packet_number, should_include_version); |
| 305 QuicFrames data_frames; |
| 306 // QuicFrame takes a raw pointer. Use a std::vector here so we keep |
| 307 // StreamFrames alive until MakeMultipleFramesPacket is done. |
| 308 std::vector<std::unique_ptr<QuicStreamFrame>> stream_frames; |
| 309 for (size_t i = 0; i < data_writes.size(); ++i) { |
| 310 bool is_fin = fin && (i == data_writes.size() - 1); |
| 311 stream_frames.push_back(base::WrapUnique(new QuicStreamFrame( |
| 312 stream_id, is_fin, offset, base::StringPiece(data_writes[i])))); |
| 313 offset += data_writes[i].length(); |
| 314 } |
| 315 for (const auto& stream_frame : stream_frames) { |
| 316 QuicFrame quic_frame(stream_frame.get()); |
| 317 DVLOG(1) << "Adding frame: " << quic_frame; |
| 318 data_frames.push_back(quic_frame); |
| 319 } |
| 320 return MakeMultipleFramesPacket(header_, data_frames); |
| 321 } |
| 322 |
| 294 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndDataPacket( | 323 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndDataPacket( |
| 295 QuicPacketNumber packet_number, | 324 QuicPacketNumber packet_number, |
| 296 bool include_version, | 325 bool include_version, |
| 297 QuicStreamId stream_id, | 326 QuicStreamId stream_id, |
| 298 QuicPacketNumber largest_received, | 327 QuicPacketNumber largest_received, |
| 299 QuicPacketNumber least_unacked, | 328 QuicPacketNumber least_unacked, |
| 300 bool fin, | 329 bool fin, |
| 301 QuicStreamOffset offset, | 330 QuicStreamOffset offset, |
| 302 base::StringPiece data) { | 331 base::StringPiece data) { |
| 303 InitializeHeader(packet_number, include_version); | 332 InitializeHeader(packet_number, include_version); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 314 stop_waiting.least_unacked = least_unacked; | 343 stop_waiting.least_unacked = least_unacked; |
| 315 frames.push_back(QuicFrame(&stop_waiting)); | 344 frames.push_back(QuicFrame(&stop_waiting)); |
| 316 | 345 |
| 317 QuicStreamFrame stream_frame(stream_id, fin, offset, data); | 346 QuicStreamFrame stream_frame(stream_id, fin, offset, data); |
| 318 frames.push_back(QuicFrame(&stream_frame)); | 347 frames.push_back(QuicFrame(&stream_frame)); |
| 319 | 348 |
| 320 return MakeMultipleFramesPacket(header_, frames); | 349 return MakeMultipleFramesPacket(header_, frames); |
| 321 } | 350 } |
| 322 | 351 |
| 323 std::unique_ptr<QuicReceivedPacket> | 352 std::unique_ptr<QuicReceivedPacket> |
| 353 QuicTestPacketMaker::MakeRequestHeadersAndMultipleDataFramesPacket( |
| 354 QuicPacketNumber packet_number, |
| 355 QuicStreamId stream_id, |
| 356 bool should_include_version, |
| 357 bool fin, |
| 358 SpdyPriority priority, |
| 359 const SpdyHeaderBlock& headers, |
| 360 size_t* spdy_headers_frame_length, |
| 361 const std::vector<std::string>& data_writes) { |
| 362 InitializeHeader(packet_number, should_include_version); |
| 363 SpdySerializedFrame spdy_frame; |
| 364 if (spdy_request_framer_.protocol_version() == SPDY3) { |
| 365 SpdySynStreamIR syn_stream(stream_id); |
| 366 syn_stream.set_header_block(headers); |
| 367 syn_stream.set_fin(fin); |
| 368 syn_stream.set_priority(priority); |
| 369 spdy_frame = spdy_request_framer_.SerializeSynStream(syn_stream); |
| 370 } else { |
| 371 SpdyHeadersIR headers_frame(stream_id); |
| 372 headers_frame.set_header_block(headers); |
| 373 headers_frame.set_fin(fin); |
| 374 headers_frame.set_priority(priority); |
| 375 headers_frame.set_has_priority(true); |
| 376 spdy_frame = spdy_request_framer_.SerializeFrame(headers_frame); |
| 377 } |
| 378 if (spdy_headers_frame_length) { |
| 379 *spdy_headers_frame_length = spdy_frame.size(); |
| 380 } |
| 381 QuicStreamFrame frame( |
| 382 kHeadersStreamId, false, 0, |
| 383 base::StringPiece(spdy_frame.data(), spdy_frame.size())); |
| 384 |
| 385 QuicFrames frames; |
| 386 frames.push_back(QuicFrame(&frame)); |
| 387 |
| 388 QuicStreamOffset offset = 0; |
| 389 // QuicFrame takes a raw pointer. Use a std::vector here so we keep |
| 390 // StreamFrames alive until MakeMultipleFramesPacket is done. |
| 391 std::vector<std::unique_ptr<QuicStreamFrame>> stream_frames; |
| 392 for (size_t i = 0; i < data_writes.size(); ++i) { |
| 393 bool is_fin = fin && (i == data_writes.size() - 1); |
| 394 stream_frames.push_back(base::WrapUnique(new QuicStreamFrame( |
| 395 stream_id, is_fin, offset, base::StringPiece(data_writes[i])))); |
| 396 offset += data_writes[i].length(); |
| 397 } |
| 398 for (const auto& stream_frame : stream_frames) { |
| 399 QuicFrame quic_frame(stream_frame.get()); |
| 400 DVLOG(1) << "Adding frame: " << quic_frame; |
| 401 frames.push_back(quic_frame); |
| 402 } |
| 403 return MakeMultipleFramesPacket(header_, frames); |
| 404 } |
| 405 |
| 406 std::unique_ptr<QuicReceivedPacket> |
| 324 QuicTestPacketMaker::MakeRequestHeadersPacket( | 407 QuicTestPacketMaker::MakeRequestHeadersPacket( |
| 325 QuicPacketNumber packet_number, | 408 QuicPacketNumber packet_number, |
| 326 QuicStreamId stream_id, | 409 QuicStreamId stream_id, |
| 327 bool should_include_version, | 410 bool should_include_version, |
| 328 bool fin, | 411 bool fin, |
| 329 SpdyPriority priority, | 412 SpdyPriority priority, |
| 330 const SpdyHeaderBlock& headers, | 413 const SpdyHeaderBlock& headers, |
| 331 size_t* spdy_headers_frame_length) { | 414 size_t* spdy_headers_frame_length) { |
| 332 return MakeRequestHeadersPacket(packet_number, stream_id, | 415 return MakeRequestHeadersPacket(packet_number, stream_id, |
| 333 should_include_version, fin, priority, | 416 should_include_version, fin, priority, |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 header_.public_header.version_flag = should_include_version; | 608 header_.public_header.version_flag = should_include_version; |
| 526 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; | 609 header_.public_header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER; |
| 527 header_.packet_number = packet_number; | 610 header_.packet_number = packet_number; |
| 528 header_.fec_group = 0; | 611 header_.fec_group = 0; |
| 529 header_.entropy_flag = false; | 612 header_.entropy_flag = false; |
| 530 header_.fec_flag = false; | 613 header_.fec_flag = false; |
| 531 } | 614 } |
| 532 | 615 |
| 533 } // namespace test | 616 } // namespace test |
| 534 } // namespace net | 617 } // namespace net |
| OLD | NEW |