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

Side by Side Diff: net/http/http_proxy_client_socket_pool_unittest.cc

Issue 2156643002: Move ~1000 SpdySerializedFrame instances from heap to stack in tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
OLDNEW
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/http/http_proxy_client_socket_pool.h" 5 #include "net/http/http_proxy_client_socket_pool.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 "Host: www.google.com:443\r\n" 273 "Host: www.google.com:443\r\n"
274 "Proxy-Connection: keep-alive\r\n\r\n"), 274 "Proxy-Connection: keep-alive\r\n\r\n"),
275 }; 275 };
276 MockRead reads[] = { 276 MockRead reads[] = {
277 // No credentials. 277 // No credentials.
278 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"), 278 MockRead(ASYNC, 1, "HTTP/1.1 407 Proxy Authentication Required\r\n"),
279 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"), 279 MockRead(ASYNC, 2, "Proxy-Authenticate: Basic realm=\"MyRealm1\"\r\n"),
280 MockRead(ASYNC, 3, "Content-Length: 10\r\n\r\n"), 280 MockRead(ASYNC, 3, "Content-Length: 10\r\n\r\n"),
281 MockRead(ASYNC, 4, "0123456789"), 281 MockRead(ASYNC, 4, "0123456789"),
282 }; 282 };
283 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyConnect( 283 SpdySerializedFrame req(spdy_util_.ConstructSpdyConnect(
284 NULL, 0, 1, LOW, HostPortPair("www.google.com", 443))); 284 NULL, 0, 1, LOW, HostPortPair("www.google.com", 443)));
285 std::unique_ptr<SpdySerializedFrame> rst( 285 SpdySerializedFrame rst(
286 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 286 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
287 MockWrite spdy_writes[] = { 287 MockWrite spdy_writes[] = {
288 CreateMockWrite(*req, 0, ASYNC), 288 CreateMockWrite(req, 0, ASYNC), CreateMockWrite(rst, 2, ASYNC),
289 CreateMockWrite(*rst, 2, ASYNC),
290 }; 289 };
291 SpdyHeaderBlock resp_block; 290 SpdyHeaderBlock resp_block;
292 resp_block[spdy_util_.GetStatusKey()] = "407"; 291 resp_block[spdy_util_.GetStatusKey()] = "407";
293 resp_block["proxy-authenticate"] = "Basic realm=\"MyRealm1\""; 292 resp_block["proxy-authenticate"] = "Basic realm=\"MyRealm1\"";
294 293
295 std::unique_ptr<SpdySerializedFrame> resp( 294 SpdySerializedFrame resp(
296 spdy_util_.ConstructSpdyReply(1, std::move(resp_block))); 295 spdy_util_.ConstructSpdyReply(1, std::move(resp_block)));
297 MockRead spdy_reads[] = { 296 MockRead spdy_reads[] = {CreateMockRead(resp, 1, ASYNC),
298 CreateMockRead(*resp, 1, ASYNC), 297 MockRead(ASYNC, 0, 3)};
299 MockRead(ASYNC, 0, 3)
300 };
301 298
302 Initialize(reads, arraysize(reads), writes, arraysize(writes), 299 Initialize(reads, arraysize(reads), writes, arraysize(writes),
303 spdy_reads, arraysize(spdy_reads), spdy_writes, 300 spdy_reads, arraysize(spdy_reads), spdy_writes,
304 arraysize(spdy_writes)); 301 arraysize(spdy_writes));
305 302
306 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 303 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
307 ClientSocketPool::RespectLimits::ENABLED, 304 ClientSocketPool::RespectLimits::ENABLED,
308 callback_.callback(), &pool_, BoundNetLog()); 305 callback_.callback(), &pool_, BoundNetLog());
309 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 306 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
310 EXPECT_FALSE(handle_.is_initialized()); 307 EXPECT_FALSE(handle_.is_initialized());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n" 378 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n"
382 "Foo: " + 379 "Foo: " +
383 proxy_host_port + "\r\n\r\n"; 380 proxy_host_port + "\r\n\r\n";
384 MockWrite writes[] = { 381 MockWrite writes[] = {
385 MockWrite(ASYNC, 0, request.c_str()), 382 MockWrite(ASYNC, 0, request.c_str()),
386 }; 383 };
387 MockRead reads[] = { 384 MockRead reads[] = {
388 MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), 385 MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
389 }; 386 };
390 387
391 std::unique_ptr<SpdySerializedFrame> req( 388 SpdySerializedFrame req(
392 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW, 389 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW,
393 HostPortPair("www.google.com", 443))); 390 HostPortPair("www.google.com", 443)));
394 MockWrite spdy_writes[] = { 391 MockWrite spdy_writes[] = {CreateMockWrite(req, 0, ASYNC)};
395 CreateMockWrite(*req, 0, ASYNC) 392 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
396 };
397 std::unique_ptr<SpdySerializedFrame> resp(
398 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
399 MockRead spdy_reads[] = { 393 MockRead spdy_reads[] = {
400 CreateMockRead(*resp, 1, ASYNC), 394 CreateMockRead(resp, 1, ASYNC),
401 // Connection stays open. 395 // Connection stays open.
402 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 396 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
403 }; 397 };
404 398
405 Initialize(reads, arraysize(reads), writes, arraysize(writes), 399 Initialize(reads, arraysize(reads), writes, arraysize(writes),
406 spdy_reads, arraysize(spdy_reads), spdy_writes, 400 spdy_reads, arraysize(spdy_reads), spdy_writes,
407 arraysize(spdy_writes)); 401 arraysize(spdy_writes));
408 AddAuthToCache(); 402 AddAuthToCache();
409 403
410 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 404 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
(...skipping 13 matching lines...) Expand all
424 proxy_host_port.c_str()); 418 proxy_host_port.c_str());
425 } 419 }
426 420
427 // Make sure that HttpProxyConnectJob passes on its priority to its 421 // Make sure that HttpProxyConnectJob passes on its priority to its
428 // SPDY session's socket request on Init (if applicable). 422 // SPDY session's socket request on Init (if applicable).
429 TEST_P(HttpProxyClientSocketPoolTest, 423 TEST_P(HttpProxyClientSocketPoolTest,
430 SetSpdySessionSocketRequestPriorityOnInit) { 424 SetSpdySessionSocketRequestPriorityOnInit) {
431 if (GetParam().proxy_type != SPDY) 425 if (GetParam().proxy_type != SPDY)
432 return; 426 return;
433 427
434 std::unique_ptr<SpdySerializedFrame> req( 428 SpdySerializedFrame req(
435 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, MEDIUM, 429 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, MEDIUM,
436 HostPortPair("www.google.com", 443))); 430 HostPortPair("www.google.com", 443)));
437 MockWrite spdy_writes[] = { 431 MockWrite spdy_writes[] = {CreateMockWrite(req, 0, ASYNC)};
438 CreateMockWrite(*req, 0, ASYNC) 432 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
439 }; 433 MockRead spdy_reads[] = {CreateMockRead(resp, 1, ASYNC),
440 std::unique_ptr<SpdySerializedFrame> resp( 434 MockRead(ASYNC, 0, 2)};
441 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
442 MockRead spdy_reads[] = {
443 CreateMockRead(*resp, 1, ASYNC),
444 MockRead(ASYNC, 0, 2)
445 };
446 435
447 Initialize(NULL, 0, NULL, 0, 436 Initialize(NULL, 0, NULL, 0,
448 spdy_reads, arraysize(spdy_reads), 437 spdy_reads, arraysize(spdy_reads),
449 spdy_writes, arraysize(spdy_writes)); 438 spdy_writes, arraysize(spdy_writes));
450 AddAuthToCache(); 439 AddAuthToCache();
451 440
452 EXPECT_EQ(ERR_IO_PENDING, 441 EXPECT_EQ(ERR_IO_PENDING,
453 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM, 442 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM,
454 ClientSocketPool::RespectLimits::ENABLED, 443 ClientSocketPool::RespectLimits::ENABLED,
455 callback_.callback(), &pool_, BoundNetLog())); 444 callback_.callback(), &pool_, BoundNetLog()));
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 MockWrite(ASYNC, 0, 526 MockWrite(ASYNC, 0,
538 "CONNECT www.google.com:443 HTTP/1.1\r\n" 527 "CONNECT www.google.com:443 HTTP/1.1\r\n"
539 "Host: www.google.com:443\r\n" 528 "Host: www.google.com:443\r\n"
540 "Proxy-Connection: keep-alive\r\n" 529 "Proxy-Connection: keep-alive\r\n"
541 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 530 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
542 }; 531 };
543 MockRead reads[] = { 532 MockRead reads[] = {
544 MockRead(ASYNC, 1, "HTTP/1.1 200 Conn"), 533 MockRead(ASYNC, 1, "HTTP/1.1 200 Conn"),
545 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 2), 534 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 2),
546 }; 535 };
547 std::unique_ptr<SpdySerializedFrame> req( 536 SpdySerializedFrame req(
548 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW, 537 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW,
549 HostPortPair("www.google.com", 443))); 538 HostPortPair("www.google.com", 443)));
550 MockWrite spdy_writes[] = { 539 MockWrite spdy_writes[] = {CreateMockWrite(req, 0, ASYNC)};
551 CreateMockWrite(*req, 0, ASYNC)
552 };
553 MockRead spdy_reads[] = { 540 MockRead spdy_reads[] = {
554 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), 541 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1),
555 }; 542 };
556 543
557 Initialize(reads, arraysize(reads), writes, arraysize(writes), 544 Initialize(reads, arraysize(reads), writes, arraysize(writes),
558 spdy_reads, arraysize(spdy_reads), spdy_writes, 545 spdy_reads, arraysize(spdy_reads), spdy_writes,
559 arraysize(spdy_writes)); 546 arraysize(spdy_writes));
560 AddAuthToCache(); 547 AddAuthToCache();
561 548
562 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 549 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 MockWrite writes[] = { 600 MockWrite writes[] = {
614 MockWrite(ASYNC, 0, 601 MockWrite(ASYNC, 0,
615 "CONNECT www.google.com:443 HTTP/1.1\r\n" 602 "CONNECT www.google.com:443 HTTP/1.1\r\n"
616 "Host: www.google.com:443\r\n" 603 "Host: www.google.com:443\r\n"
617 "Proxy-Connection: keep-alive\r\n" 604 "Proxy-Connection: keep-alive\r\n"
618 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 605 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
619 }; 606 };
620 MockRead reads[] = { 607 MockRead reads[] = {
621 MockRead(ASYNC, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"), 608 MockRead(ASYNC, 1, "HTTP/1.1 304 Not Modified\r\n\r\n"),
622 }; 609 };
623 std::unique_ptr<SpdySerializedFrame> req( 610 SpdySerializedFrame req(
624 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW, 611 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW,
625 HostPortPair("www.google.com", 443))); 612 HostPortPair("www.google.com", 443)));
626 std::unique_ptr<SpdySerializedFrame> rst( 613 SpdySerializedFrame rst(
627 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 614 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
628 MockWrite spdy_writes[] = { 615 MockWrite spdy_writes[] = {
629 CreateMockWrite(*req, 0, ASYNC), 616 CreateMockWrite(req, 0, ASYNC), CreateMockWrite(rst, 2, ASYNC),
630 CreateMockWrite(*rst, 2, ASYNC),
631 }; 617 };
632 std::unique_ptr<SpdySerializedFrame> resp( 618 SpdySerializedFrame resp(spdy_util_.ConstructSpdySynReplyError(1));
633 spdy_util_.ConstructSpdySynReplyError(1));
634 MockRead spdy_reads[] = { 619 MockRead spdy_reads[] = {
635 CreateMockRead(*resp, 1, ASYNC), 620 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 3),
636 MockRead(ASYNC, 0, 3),
637 }; 621 };
638 622
639 Initialize(reads, arraysize(reads), writes, arraysize(writes), 623 Initialize(reads, arraysize(reads), writes, arraysize(writes),
640 spdy_reads, arraysize(spdy_reads), spdy_writes, 624 spdy_reads, arraysize(spdy_reads), spdy_writes,
641 arraysize(spdy_writes)); 625 arraysize(spdy_writes));
642 AddAuthToCache(); 626 AddAuthToCache();
643 627
644 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 628 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
645 ClientSocketPool::RespectLimits::ENABLED, 629 ClientSocketPool::RespectLimits::ENABLED,
646 callback_.callback(), &pool_, BoundNetLog()); 630 callback_.callback(), &pool_, BoundNetLog());
(...skipping 18 matching lines...) Expand all
665 MockWrite writes[] = { 649 MockWrite writes[] = {
666 MockWrite(ASYNC, 0, 650 MockWrite(ASYNC, 0,
667 "CONNECT www.google.com:443 HTTP/1.1\r\n" 651 "CONNECT www.google.com:443 HTTP/1.1\r\n"
668 "Host: www.google.com:443\r\n" 652 "Host: www.google.com:443\r\n"
669 "Proxy-Connection: keep-alive\r\n" 653 "Proxy-Connection: keep-alive\r\n"
670 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 654 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
671 }; 655 };
672 MockRead reads[] = { 656 MockRead reads[] = {
673 MockRead(ASYNC, 1, responseText.c_str()), 657 MockRead(ASYNC, 1, responseText.c_str()),
674 }; 658 };
675 std::unique_ptr<SpdySerializedFrame> req( 659 SpdySerializedFrame req(
676 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW, 660 spdy_util_.ConstructSpdyConnect(kAuthHeaders, kAuthHeadersSize, 1, LOW,
677 HostPortPair("www.google.com", 443))); 661 HostPortPair("www.google.com", 443)));
678 std::unique_ptr<SpdySerializedFrame> rst( 662 SpdySerializedFrame rst(
679 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 663 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
680 664
681 MockWrite spdy_writes[] = { 665 MockWrite spdy_writes[] = {
682 CreateMockWrite(*req, 0, ASYNC), 666 CreateMockWrite(req, 0, ASYNC), CreateMockWrite(rst, 3, ASYNC),
683 CreateMockWrite(*rst, 3, ASYNC),
684 }; 667 };
685 668
686 const char* const responseHeaders[] = { 669 const char* const responseHeaders[] = {
687 "location", redirectTarget.c_str(), 670 "location", redirectTarget.c_str(),
688 "set-cookie", "foo=bar", 671 "set-cookie", "foo=bar",
689 }; 672 };
690 const int responseHeadersSize = arraysize(responseHeaders) / 2; 673 const int responseHeadersSize = arraysize(responseHeaders) / 2;
691 std::unique_ptr<SpdySerializedFrame> resp( 674 SpdySerializedFrame resp(spdy_util_.ConstructSpdySynReplyError(
692 spdy_util_.ConstructSpdySynReplyError("302 Found", responseHeaders, 675 "302 Found", responseHeaders, responseHeadersSize, 1));
693 responseHeadersSize, 1));
694 MockRead spdy_reads[] = { 676 MockRead spdy_reads[] = {
695 CreateMockRead(*resp, 1, ASYNC), 677 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 2),
696 MockRead(ASYNC, 0, 2),
697 }; 678 };
698 679
699 Initialize(reads, arraysize(reads), writes, arraysize(writes), 680 Initialize(reads, arraysize(reads), writes, arraysize(writes),
700 spdy_reads, arraysize(spdy_reads), spdy_writes, 681 spdy_reads, arraysize(spdy_reads), spdy_writes,
701 arraysize(spdy_writes)); 682 arraysize(spdy_writes));
702 AddAuthToCache(); 683 AddAuthToCache();
703 684
704 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 685 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
705 ClientSocketPool::RespectLimits::ENABLED, 686 ClientSocketPool::RespectLimits::ENABLED,
706 callback_.callback(), &pool_, BoundNetLog()); 687 callback_.callback(), &pool_, BoundNetLog());
(...skipping 28 matching lines...) Expand all
735 // Make sure Location header was included and correct. 716 // Make sure Location header was included and correct.
736 std::string location; 717 std::string location;
737 EXPECT_TRUE(headers->IsRedirect(&location)); 718 EXPECT_TRUE(headers->IsRedirect(&location));
738 EXPECT_EQ(location, redirectTarget); 719 EXPECT_EQ(location, redirectTarget);
739 } 720 }
740 } 721 }
741 722
742 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 723 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
743 724
744 } // namespace net 725 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/spdy/bidirectional_stream_spdy_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698