Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: net/quic/bidirectional_stream_quic_impl_unittest.cc

Issue 2096713002: Reduce SpdyHeaderBlock copies with move semantics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clear() does not work after all. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/bidirectional_stream_quic_impl.cc ('k') | net/quic/quic_http_stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/bidirectional_stream_quic_impl.h" 5 #include "net/quic/bidirectional_stream_quic_impl.h"
6 6
7 #include <utility>
8
7 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
8 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h" 11 #include "base/run_loop.h"
10 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
11 #include "net/base/ip_address.h" 13 #include "net/base/ip_address.h"
12 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
13 #include "net/http/bidirectional_stream_request_info.h" 15 #include "net/http/bidirectional_stream_request_info.h"
14 #include "net/http/transport_security_state.h" 16 #include "net/http/transport_security_state.h"
15 #include "net/log/test_net_log.h" 17 #include "net/log/test_net_log.h"
16 #include "net/log/test_net_log_util.h" 18 #include "net/log/test_net_log_util.h"
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 451
450 std::unique_ptr<QuicReceivedPacket> ConstructRequestHeadersPacket( 452 std::unique_ptr<QuicReceivedPacket> ConstructRequestHeadersPacket(
451 QuicPacketNumber packet_number, 453 QuicPacketNumber packet_number,
452 bool fin, 454 bool fin,
453 RequestPriority request_priority, 455 RequestPriority request_priority,
454 size_t* spdy_headers_frame_length) { 456 size_t* spdy_headers_frame_length) {
455 SpdyPriority priority = 457 SpdyPriority priority =
456 ConvertRequestPriorityToQuicPriority(request_priority); 458 ConvertRequestPriorityToQuicPriority(request_priority);
457 return client_maker_.MakeRequestHeadersPacket( 459 return client_maker_.MakeRequestHeadersPacket(
458 packet_number, stream_id_, kIncludeVersion, fin, priority, 460 packet_number, stream_id_, kIncludeVersion, fin, priority,
459 request_headers_, spdy_headers_frame_length); 461 std::move(request_headers_), spdy_headers_frame_length);
460 } 462 }
461 463
462 std::unique_ptr<QuicReceivedPacket> 464 std::unique_ptr<QuicReceivedPacket>
463 ConstructRequestHeadersAndMultipleDataFramesPacket( 465 ConstructRequestHeadersAndMultipleDataFramesPacket(
464 QuicPacketNumber packet_number, 466 QuicPacketNumber packet_number,
465 bool fin, 467 bool fin,
466 RequestPriority request_priority, 468 RequestPriority request_priority,
467 size_t* spdy_headers_frame_length, 469 size_t* spdy_headers_frame_length,
468 const std::vector<std::string>& data) { 470 const std::vector<std::string>& data) {
469 SpdyPriority priority = 471 SpdyPriority priority =
470 ConvertRequestPriorityToQuicPriority(request_priority); 472 ConvertRequestPriorityToQuicPriority(request_priority);
471 std::unique_ptr<QuicReceivedPacket> packet( 473 std::unique_ptr<QuicReceivedPacket> packet(
472 client_maker_.MakeRequestHeadersAndMultipleDataFramesPacket( 474 client_maker_.MakeRequestHeadersAndMultipleDataFramesPacket(
473 packet_number, stream_id_, kIncludeVersion, fin, priority, 475 packet_number, stream_id_, kIncludeVersion, fin, priority,
474 request_headers_, spdy_headers_frame_length, data)); 476 std::move(request_headers_), spdy_headers_frame_length, data));
475 DVLOG(2) << "packet(" << packet_number << "): " << std::endl 477 DVLOG(2) << "packet(" << packet_number << "): " << std::endl
476 << QuicUtils::StringToHexASCIIDump(packet->AsStringPiece()); 478 << QuicUtils::StringToHexASCIIDump(packet->AsStringPiece());
477 return packet; 479 return packet;
478 } 480 }
479 481
480 std::unique_ptr<QuicReceivedPacket> ConstructResponseHeadersPacket( 482 std::unique_ptr<QuicReceivedPacket> ConstructResponseHeadersPacket(
481 QuicPacketNumber packet_number, 483 QuicPacketNumber packet_number,
482 bool fin, 484 bool fin,
483 const SpdyHeaderBlock& response_headers, 485 SpdyHeaderBlock response_headers,
484 size_t* spdy_headers_frame_length, 486 size_t* spdy_headers_frame_length,
485 QuicStreamOffset* offset) { 487 QuicStreamOffset* offset) {
486 return server_maker_.MakeResponseHeadersPacket( 488 return server_maker_.MakeResponseHeadersPacket(
487 packet_number, stream_id_, !kIncludeVersion, fin, response_headers, 489 packet_number, stream_id_, !kIncludeVersion, fin,
488 spdy_headers_frame_length, offset); 490 std::move(response_headers), spdy_headers_frame_length, offset);
489 } 491 }
490 492
491 std::unique_ptr<QuicReceivedPacket> ConstructResponseTrailersPacket( 493 std::unique_ptr<QuicReceivedPacket> ConstructResponseTrailersPacket(
492 QuicPacketNumber packet_number, 494 QuicPacketNumber packet_number,
493 bool fin, 495 bool fin,
494 const SpdyHeaderBlock& trailers, 496 const SpdyHeaderBlock& trailers,
495 size_t* spdy_headers_frame_length, 497 size_t* spdy_headers_frame_length,
496 QuicStreamOffset* offset) { 498 QuicStreamOffset* offset) {
497 return server_maker_.MakeResponseHeadersPacket( 499 return server_maker_.MakeResponseHeadersPacket(
498 packet_number, stream_id_, !kIncludeVersion, fin, trailers, 500 packet_number, stream_id_, !kIncludeVersion, fin, trailers,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 628
627 // Server acks the request. 629 // Server acks the request.
628 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 630 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
629 631
630 // Server sends the response headers. 632 // Server sends the response headers.
631 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 633 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
632 634
633 size_t spdy_response_headers_frame_length; 635 size_t spdy_response_headers_frame_length;
634 QuicStreamOffset offset = 0; 636 QuicStreamOffset offset = 0;
635 ProcessPacket(ConstructResponseHeadersPacket( 637 ProcessPacket(ConstructResponseHeadersPacket(
636 2, !kFin, response_headers, &spdy_response_headers_frame_length, 638 2, !kFin, std::move(response_headers),
637 &offset)); 639 &spdy_response_headers_frame_length, &offset));
638 640
639 delegate->WaitUntilNextCallback(); // OnHeadersReceived 641 delegate->WaitUntilNextCallback(); // OnHeadersReceived
640 TestCompletionCallback cb; 642 TestCompletionCallback cb;
641 int rv = delegate->ReadData(cb.callback()); 643 int rv = delegate->ReadData(cb.callback());
642 EXPECT_EQ(ERR_IO_PENDING, rv); 644 EXPECT_EQ(ERR_IO_PENDING, rv);
643 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 645 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
644 const char kResponseBody[] = "Hello world!"; 646 const char kResponseBody[] = "Hello world!";
645 // Server sends data. 647 // Server sends data.
646 ProcessPacket( 648 ProcessPacket(
647 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 649 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 delegate->WaitUntilNextCallback(); // OnDataSent 746 delegate->WaitUntilNextCallback(); // OnDataSent
745 747
746 // Server acks the request. 748 // Server acks the request.
747 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 749 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
748 750
749 // Server sends the response headers. 751 // Server sends the response headers.
750 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 752 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
751 size_t spdy_response_headers_frame_length; 753 size_t spdy_response_headers_frame_length;
752 QuicStreamOffset offset = 0; 754 QuicStreamOffset offset = 0;
753 ProcessPacket(ConstructResponseHeadersPacket( 755 ProcessPacket(ConstructResponseHeadersPacket(
754 2, !kFin, response_headers, &spdy_response_headers_frame_length, 756 2, !kFin, std::move(response_headers),
755 &offset)); 757 &spdy_response_headers_frame_length, &offset));
756 758
757 delegate->WaitUntilNextCallback(); // OnHeadersReceived 759 delegate->WaitUntilNextCallback(); // OnHeadersReceived
758 TestCompletionCallback cb; 760 TestCompletionCallback cb;
759 int rv = delegate->ReadData(cb.callback()); 761 int rv = delegate->ReadData(cb.callback());
760 EXPECT_EQ(ERR_IO_PENDING, rv); 762 EXPECT_EQ(ERR_IO_PENDING, rv);
761 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 763 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
762 const char kResponseBody[] = "Hello world!"; 764 const char kResponseBody[] = "Hello world!";
763 // Server sends data. 765 // Server sends data.
764 ProcessPacket( 766 ProcessPacket(
765 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 767 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 delegate->WaitUntilNextCallback(); // OnDataSent 845 delegate->WaitUntilNextCallback(); // OnDataSent
844 846
845 // Server acks the request. 847 // Server acks the request.
846 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 848 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
847 849
848 // Server sends the response headers. 850 // Server sends the response headers.
849 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 851 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
850 size_t spdy_response_headers_frame_length; 852 size_t spdy_response_headers_frame_length;
851 QuicStreamOffset offset = 0; 853 QuicStreamOffset offset = 0;
852 ProcessPacket(ConstructResponseHeadersPacket( 854 ProcessPacket(ConstructResponseHeadersPacket(
853 2, !kFin, response_headers, &spdy_response_headers_frame_length, 855 2, !kFin, std::move(response_headers),
854 &offset)); 856 &spdy_response_headers_frame_length, &offset));
855 857
856 delegate->WaitUntilNextCallback(); // OnHeadersReceived 858 delegate->WaitUntilNextCallback(); // OnHeadersReceived
857 TestCompletionCallback cb; 859 TestCompletionCallback cb;
858 int rv = delegate->ReadData(cb.callback()); 860 int rv = delegate->ReadData(cb.callback());
859 EXPECT_EQ(ERR_IO_PENDING, rv); 861 EXPECT_EQ(ERR_IO_PENDING, rv);
860 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 862 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
861 const char kResponseBody[] = "Hello world!"; 863 const char kResponseBody[] = "Hello world!";
862 // Server sends data. 864 // Server sends data.
863 ProcessPacket( 865 ProcessPacket(
864 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 866 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 delegate->WaitUntilNextCallback(); // OnDataSent 945 delegate->WaitUntilNextCallback(); // OnDataSent
944 946
945 // Server acks the request. 947 // Server acks the request.
946 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 948 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
947 949
948 // Server sends the response headers. 950 // Server sends the response headers.
949 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 951 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
950 size_t spdy_response_headers_frame_length; 952 size_t spdy_response_headers_frame_length;
951 QuicStreamOffset offset = 0; 953 QuicStreamOffset offset = 0;
952 ProcessPacket(ConstructResponseHeadersPacket( 954 ProcessPacket(ConstructResponseHeadersPacket(
953 2, !kFin, response_headers, &spdy_response_headers_frame_length, 955 2, !kFin, std::move(response_headers),
954 &offset)); 956 &spdy_response_headers_frame_length, &offset));
955 957
956 delegate->WaitUntilNextCallback(); // OnHeadersReceived 958 delegate->WaitUntilNextCallback(); // OnHeadersReceived
957 TestCompletionCallback cb; 959 TestCompletionCallback cb;
958 int rv = delegate->ReadData(cb.callback()); 960 int rv = delegate->ReadData(cb.callback());
959 EXPECT_EQ(ERR_IO_PENDING, rv); 961 EXPECT_EQ(ERR_IO_PENDING, rv);
960 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 962 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
961 const char kResponseBody[] = "Hello world!"; 963 const char kResponseBody[] = "Hello world!";
962 // Server sends data. 964 // Server sends data.
963 ProcessPacket( 965 ProcessPacket(
964 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 966 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 delegate->WaitUntilNextCallback(); // OnDataSent 1034 delegate->WaitUntilNextCallback(); // OnDataSent
1033 1035
1034 // Server acks the request. 1036 // Server acks the request.
1035 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1037 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1036 1038
1037 // Server sends the response headers. 1039 // Server sends the response headers.
1038 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1040 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1039 size_t spdy_response_headers_frame_length; 1041 size_t spdy_response_headers_frame_length;
1040 QuicStreamOffset offset = 0; 1042 QuicStreamOffset offset = 0;
1041 ProcessPacket(ConstructResponseHeadersPacket( 1043 ProcessPacket(ConstructResponseHeadersPacket(
1042 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1044 2, !kFin, std::move(response_headers),
1043 &offset)); 1045 &spdy_response_headers_frame_length, &offset));
1044 1046
1045 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1047 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1046 TestCompletionCallback cb; 1048 TestCompletionCallback cb;
1047 int rv = delegate->ReadData(cb.callback()); 1049 int rv = delegate->ReadData(cb.callback());
1048 EXPECT_EQ(ERR_IO_PENDING, rv); 1050 EXPECT_EQ(ERR_IO_PENDING, rv);
1049 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1051 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1050 const char kResponseBody[] = "Hello world!"; 1052 const char kResponseBody[] = "Hello world!";
1051 // Server sends data. 1053 // Server sends data.
1052 ProcessPacket( 1054 ProcessPacket(
1053 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1055 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1109 delegate->WaitUntilNextCallback(); // OnDataSent 1111 delegate->WaitUntilNextCallback(); // OnDataSent
1110 1112
1111 // Server acks the request. 1113 // Server acks the request.
1112 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1114 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1113 1115
1114 // Server sends the response headers. 1116 // Server sends the response headers.
1115 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1117 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1116 size_t spdy_response_headers_frame_length; 1118 size_t spdy_response_headers_frame_length;
1117 QuicStreamOffset offset = 0; 1119 QuicStreamOffset offset = 0;
1118 ProcessPacket(ConstructResponseHeadersPacket( 1120 ProcessPacket(ConstructResponseHeadersPacket(
1119 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1121 2, !kFin, std::move(response_headers),
1120 &offset)); 1122 &spdy_response_headers_frame_length, &offset));
1121 1123
1122 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1124 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1123 TestCompletionCallback cb; 1125 TestCompletionCallback cb;
1124 int rv = delegate->ReadData(cb.callback()); 1126 int rv = delegate->ReadData(cb.callback());
1125 EXPECT_EQ(ERR_IO_PENDING, rv); 1127 EXPECT_EQ(ERR_IO_PENDING, rv);
1126 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1128 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1127 const char kResponseBody[] = "Hello world!"; 1129 const char kResponseBody[] = "Hello world!";
1128 // Server sends data. 1130 // Server sends data.
1129 ProcessPacket( 1131 ProcessPacket(
1130 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody)); 1132 ConstructServerDataPacket(3, !kIncludeVersion, !kFin, 0, kResponseBody));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1180 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); 1182 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr());
1181 ConfirmHandshake(); 1183 ConfirmHandshake();
1182 delegate->WaitUntilNextCallback(); // OnStreamReady 1184 delegate->WaitUntilNextCallback(); // OnStreamReady
1183 1185
1184 // Server acks the request. 1186 // Server acks the request.
1185 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1187 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1186 1188
1187 // Server sends the response headers. 1189 // Server sends the response headers.
1188 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1190 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1189 size_t spdy_response_headers_frame_length; 1191 size_t spdy_response_headers_frame_length;
1190 ProcessPacket(ConstructResponseHeadersPacket( 1192 ProcessPacket(
1191 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); 1193 ConstructResponseHeadersPacket(2, !kFin, std::move(response_headers),
1194 &spdy_response_headers_frame_length, 0));
1192 1195
1193 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1196 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1194 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1197 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1195 1198
1196 // Client sends a data packet. 1199 // Client sends a data packet.
1197 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); 1200 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
1198 1201
1199 delegate->SendData(buf, buf->size(), false); 1202 delegate->SendData(buf, buf->size(), false);
1200 delegate->WaitUntilNextCallback(); // OnDataSent 1203 delegate->WaitUntilNextCallback(); // OnDataSent
1201 1204
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 1305
1303 // Server acks the request. 1306 // Server acks the request.
1304 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1307 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1305 1308
1306 // Server sends the response headers. 1309 // Server sends the response headers.
1307 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1310 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1308 1311
1309 size_t spdy_response_headers_frame_length; 1312 size_t spdy_response_headers_frame_length;
1310 QuicStreamOffset offset = 0; 1313 QuicStreamOffset offset = 0;
1311 ProcessPacket(ConstructResponseHeadersPacket( 1314 ProcessPacket(ConstructResponseHeadersPacket(
1312 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1315 2, !kFin, std::move(response_headers),
1313 &offset)); 1316 &spdy_response_headers_frame_length, &offset));
1314 1317
1315 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1318 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1316 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1319 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1317 1320
1318 TestCompletionCallback cb; 1321 TestCompletionCallback cb;
1319 int rv = delegate->ReadData(cb.callback()); 1322 int rv = delegate->ReadData(cb.callback());
1320 EXPECT_EQ(ERR_IO_PENDING, rv); 1323 EXPECT_EQ(ERR_IO_PENDING, rv);
1321 1324
1322 // Server sends a Rst. 1325 // Server sends a Rst.
1323 ProcessPacket(ConstructServerRstStreamPacket(3)); 1326 ProcessPacket(ConstructServerRstStreamPacket(3));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); 1361 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr());
1359 ConfirmHandshake(); 1362 ConfirmHandshake();
1360 delegate->WaitUntilNextCallback(); // OnStreamReady 1363 delegate->WaitUntilNextCallback(); // OnStreamReady
1361 1364
1362 // Server acks the request. 1365 // Server acks the request.
1363 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1366 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1364 1367
1365 // Server sends the response headers. 1368 // Server sends the response headers.
1366 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1369 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1367 size_t spdy_response_headers_frame_length; 1370 size_t spdy_response_headers_frame_length;
1368 ProcessPacket(ConstructResponseHeadersPacket( 1371 ProcessPacket(
1369 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); 1372 ConstructResponseHeadersPacket(2, !kFin, std::move(response_headers),
1373 &spdy_response_headers_frame_length, 0));
1370 1374
1371 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1375 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1372 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1376 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1373 1377
1374 // Send a DATA frame. 1378 // Send a DATA frame.
1375 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); 1379 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
1376 1380
1377 delegate->SendData(buf, buf->size(), false); 1381 delegate->SendData(buf, buf->size(), false);
1378 delegate->WaitUntilNextCallback(); // OnDataSent 1382 delegate->WaitUntilNextCallback(); // OnDataSent
1379 1383
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 1421
1418 // Server acks the request. 1422 // Server acks the request.
1419 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1423 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1420 1424
1421 // Server sends the response headers. 1425 // Server sends the response headers.
1422 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1426 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1423 1427
1424 size_t spdy_response_headers_frame_length; 1428 size_t spdy_response_headers_frame_length;
1425 QuicStreamOffset offset = 0; 1429 QuicStreamOffset offset = 0;
1426 ProcessPacket(ConstructResponseHeadersPacket( 1430 ProcessPacket(ConstructResponseHeadersPacket(
1427 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1431 2, !kFin, std::move(response_headers),
1428 &offset)); 1432 &spdy_response_headers_frame_length, &offset));
1429 1433
1430 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1434 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1431 TestCompletionCallback cb; 1435 TestCompletionCallback cb;
1432 int rv = delegate->ReadData(cb.callback()); 1436 int rv = delegate->ReadData(cb.callback());
1433 EXPECT_EQ(ERR_IO_PENDING, rv); 1437 EXPECT_EQ(ERR_IO_PENDING, rv);
1434 session()->connection()->CloseConnection( 1438 session()->connection()->CloseConnection(
1435 QUIC_NO_ERROR, "test", ConnectionCloseBehavior::SILENT_CLOSE); 1439 QUIC_NO_ERROR, "test", ConnectionCloseBehavior::SILENT_CLOSE);
1436 delegate->WaitUntilNextCallback(); // OnFailed 1440 delegate->WaitUntilNextCallback(); // OnFailed
1437 EXPECT_TRUE(delegate->on_failed_called()); 1441 EXPECT_TRUE(delegate->on_failed_called());
1438 1442
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1473 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); 1477 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr());
1474 ConfirmHandshake(); 1478 ConfirmHandshake();
1475 delegate->WaitUntilNextCallback(); // OnStreamReady 1479 delegate->WaitUntilNextCallback(); // OnStreamReady
1476 1480
1477 // Server acks the request. 1481 // Server acks the request.
1478 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1482 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1479 1483
1480 // Server sends the response headers. 1484 // Server sends the response headers.
1481 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1485 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1482 size_t spdy_response_headers_frame_length; 1486 size_t spdy_response_headers_frame_length;
1483 ProcessPacket(ConstructResponseHeadersPacket( 1487 ProcessPacket(
1484 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); 1488 ConstructResponseHeadersPacket(2, !kFin, std::move(response_headers),
1489 &spdy_response_headers_frame_length, 0));
1485 1490
1486 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1491 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1487 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1492 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1488 1493
1489 // Cancel the stream after ReadData returns ERR_IO_PENDING. 1494 // Cancel the stream after ReadData returns ERR_IO_PENDING.
1490 TestCompletionCallback cb; 1495 TestCompletionCallback cb;
1491 EXPECT_EQ(ERR_IO_PENDING, delegate->ReadData(cb.callback())); 1496 EXPECT_EQ(ERR_IO_PENDING, delegate->ReadData(cb.callback()));
1492 delegate->CancelStream(); 1497 delegate->CancelStream();
1493 1498
1494 base::RunLoop().RunUntilIdle(); 1499 base::RunLoop().RunUntilIdle();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 delegate->WaitUntilNextCallback(); // OnStreamReady 1531 delegate->WaitUntilNextCallback(); // OnStreamReady
1527 1532
1528 // Server acks the request. 1533 // Server acks the request.
1529 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1534 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1530 1535
1531 // Server sends the response headers. 1536 // Server sends the response headers.
1532 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1537 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1533 1538
1534 size_t spdy_response_headers_frame_length; 1539 size_t spdy_response_headers_frame_length;
1535 ProcessPacket(ConstructResponseHeadersPacket( 1540 ProcessPacket(ConstructResponseHeadersPacket(
1536 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1541 2, !kFin, std::move(response_headers),
1537 nullptr)); 1542 &spdy_response_headers_frame_length, nullptr));
1538 1543
1539 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1544 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1540 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1545 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1541 1546
1542 base::RunLoop().RunUntilIdle(); 1547 base::RunLoop().RunUntilIdle();
1543 1548
1544 EXPECT_EQ(0, delegate->on_data_read_count()); 1549 EXPECT_EQ(0, delegate->on_data_read_count());
1545 EXPECT_EQ(0, delegate->on_data_sent_count()); 1550 EXPECT_EQ(0, delegate->on_data_sent_count());
1546 } 1551 }
1547 1552
(...skipping 21 matching lines...) Expand all
1569 delegate->WaitUntilNextCallback(); // OnStreamReady 1574 delegate->WaitUntilNextCallback(); // OnStreamReady
1570 1575
1571 // Server acks the request. 1576 // Server acks the request.
1572 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1577 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1573 1578
1574 // Server sends the response headers. 1579 // Server sends the response headers.
1575 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1580 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1576 1581
1577 size_t spdy_response_headers_frame_length; 1582 size_t spdy_response_headers_frame_length;
1578 ProcessPacket(ConstructResponseHeadersPacket( 1583 ProcessPacket(ConstructResponseHeadersPacket(
1579 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1584 2, !kFin, std::move(response_headers),
1580 nullptr)); 1585 &spdy_response_headers_frame_length, nullptr));
1581 1586
1582 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1587 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1583 1588
1584 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1589 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1585 1590
1586 TestCompletionCallback cb; 1591 TestCompletionCallback cb;
1587 int rv = delegate->ReadData(cb.callback()); 1592 int rv = delegate->ReadData(cb.callback());
1588 EXPECT_EQ(ERR_IO_PENDING, rv); 1593 EXPECT_EQ(ERR_IO_PENDING, rv);
1589 const char kResponseBody[] = "Hello world!"; 1594 const char kResponseBody[] = "Hello world!";
1590 // Server sends data. 1595 // Server sends data.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1622 1627
1623 // Server acks the request. 1628 // Server acks the request.
1624 ProcessPacket(ConstructServerAckPacket(1, 0, 0)); 1629 ProcessPacket(ConstructServerAckPacket(1, 0, 0));
1625 1630
1626 // Server sends the response headers. 1631 // Server sends the response headers.
1627 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); 1632 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200");
1628 1633
1629 QuicStreamOffset offset = 0; 1634 QuicStreamOffset offset = 0;
1630 size_t spdy_response_headers_frame_length; 1635 size_t spdy_response_headers_frame_length;
1631 ProcessPacket(ConstructResponseHeadersPacket( 1636 ProcessPacket(ConstructResponseHeadersPacket(
1632 2, !kFin, response_headers, &spdy_response_headers_frame_length, 1637 2, !kFin, std::move(response_headers),
1633 &offset)); 1638 &spdy_response_headers_frame_length, &offset));
1634 1639
1635 delegate->WaitUntilNextCallback(); // OnHeadersReceived 1640 delegate->WaitUntilNextCallback(); // OnHeadersReceived
1636 1641
1637 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 1642 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
1638 1643
1639 TestCompletionCallback cb; 1644 TestCompletionCallback cb;
1640 int rv = delegate->ReadData(cb.callback()); 1645 int rv = delegate->ReadData(cb.callback());
1641 EXPECT_EQ(ERR_IO_PENDING, rv); 1646 EXPECT_EQ(ERR_IO_PENDING, rv);
1642 const char kResponseBody[] = "Hello world!"; 1647 const char kResponseBody[] = "Hello world!";
1643 // Server sends data. 1648 // Server sends data.
(...skipping 17 matching lines...) Expand all
1661 1666
1662 base::RunLoop().RunUntilIdle(); 1667 base::RunLoop().RunUntilIdle();
1663 1668
1664 EXPECT_EQ(1, delegate->on_data_read_count()); 1669 EXPECT_EQ(1, delegate->on_data_read_count());
1665 EXPECT_EQ(0, delegate->on_data_sent_count()); 1670 EXPECT_EQ(0, delegate->on_data_sent_count());
1666 } 1671 }
1667 1672
1668 } // namespace test 1673 } // namespace test
1669 1674
1670 } // namespace net 1675 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/bidirectional_stream_quic_impl.cc ('k') | net/quic/quic_http_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698