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

Side by Side Diff: net/socket/websocket_transport_client_socket_pool_unittest.cc

Issue 2341233002: Replace NULL with nullptr in WebSocket code in net/socket/ (Closed)
Patch Set: Rebase Created 4 years, 3 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/socket/websocket_transport_client_socket_pool.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/socket/websocket_transport_client_socket_pool.h" 5 #include "net/socket/websocket_transport_client_socket_pool.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 HostPortPair("www.google.com", 80), 60 HostPortPair("www.google.com", 80),
61 false, 61 false,
62 OnHostResolutionCallback(), 62 OnHostResolutionCallback(),
63 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), 63 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
64 host_resolver_(new MockHostResolver), 64 host_resolver_(new MockHostResolver),
65 client_socket_factory_(&net_log_), 65 client_socket_factory_(&net_log_),
66 pool_(kMaxSockets, 66 pool_(kMaxSockets,
67 kMaxSocketsPerGroup, 67 kMaxSocketsPerGroup,
68 host_resolver_.get(), 68 host_resolver_.get(),
69 &client_socket_factory_, 69 &client_socket_factory_,
70 NULL) {} 70 nullptr) {}
71 71
72 ~WebSocketTransportClientSocketPoolTest() override { 72 ~WebSocketTransportClientSocketPoolTest() override {
73 RunUntilIdle(); 73 RunUntilIdle();
74 // ReleaseAllConnections() calls RunUntilIdle() after releasing each 74 // ReleaseAllConnections() calls RunUntilIdle() after releasing each
75 // connection. 75 // connection.
76 ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE); 76 ReleaseAllConnections(ClientSocketPoolTest::NO_KEEP_ALIVE);
77 EXPECT_TRUE(WebSocketEndpointLockManager::GetInstance()->IsEmpty()); 77 EXPECT_TRUE(WebSocketEndpointLockManager::GetInstance()->IsEmpty());
78 } 78 }
79 79
80 static void RunUntilIdle() { base::RunLoop().RunUntilIdle(); } 80 static void RunUntilIdle() { base::RunLoop().RunUntilIdle(); }
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 EXPECT_THAT(StartRequest("a", kDefaultPriority), IsError(ERR_IO_PENDING)); 510 EXPECT_THAT(StartRequest("a", kDefaultPriority), IsError(ERR_IO_PENDING));
511 RunUntilIdle(); 511 RunUntilIdle();
512 pool_.CancelRequest("a", request(0)->handle()); 512 pool_.CancelRequest("a", request(0)->handle());
513 EXPECT_THAT(request(1)->WaitForResult(), IsOk()); 513 EXPECT_THAT(request(1)->WaitForResult(), IsOk());
514 } 514 }
515 515
516 // Test the case of the IPv6 address stalling, and falling back to the IPv4 516 // Test the case of the IPv6 address stalling, and falling back to the IPv4
517 // socket which finishes first. 517 // socket which finishes first.
518 TEST_F(WebSocketTransportClientSocketPoolTest, 518 TEST_F(WebSocketTransportClientSocketPoolTest,
519 IPv6FallbackSocketIPv4FinishesFirst) { 519 IPv6FallbackSocketIPv4FinishesFirst) {
520 WebSocketTransportClientSocketPool pool(kMaxSockets, 520 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
521 kMaxSocketsPerGroup,
522 host_resolver_.get(), 521 host_resolver_.get(),
523 &client_socket_factory_, 522 &client_socket_factory_, nullptr);
524 NULL);
525 523
526 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 524 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
527 // This is the IPv6 socket. 525 // This is the IPv6 socket.
528 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, 526 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET,
529 // This is the IPv4 socket. 527 // This is the IPv4 socket.
530 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET}; 528 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET};
531 529
532 client_socket_factory_.set_client_socket_types(case_types, 2); 530 client_socket_factory_.set_client_socket_types(case_types, 2);
533 531
534 // Resolve an AddressList with an IPv6 address first and then an IPv4 address. 532 // Resolve an AddressList with an IPv6 address first and then an IPv4 address.
(...skipping 16 matching lines...) Expand all
551 handle.socket()->GetLocalAddress(&endpoint); 549 handle.socket()->GetLocalAddress(&endpoint);
552 EXPECT_TRUE(endpoint.address().IsIPv4()); 550 EXPECT_TRUE(endpoint.address().IsIPv4());
553 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 551 EXPECT_EQ(2, client_socket_factory_.allocation_count());
554 } 552 }
555 553
556 // Test the case of the IPv6 address being slow, thus falling back to trying to 554 // Test the case of the IPv6 address being slow, thus falling back to trying to
557 // connect to the IPv4 address, but having the connect to the IPv6 address 555 // connect to the IPv4 address, but having the connect to the IPv6 address
558 // finish first. 556 // finish first.
559 TEST_F(WebSocketTransportClientSocketPoolTest, 557 TEST_F(WebSocketTransportClientSocketPoolTest,
560 IPv6FallbackSocketIPv6FinishesFirst) { 558 IPv6FallbackSocketIPv6FinishesFirst) {
561 WebSocketTransportClientSocketPool pool(kMaxSockets, 559 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
562 kMaxSocketsPerGroup,
563 host_resolver_.get(), 560 host_resolver_.get(),
564 &client_socket_factory_, 561 &client_socket_factory_, nullptr);
565 NULL);
566 562
567 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 563 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
568 // This is the IPv6 socket. 564 // This is the IPv6 socket.
569 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, 565 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET,
570 // This is the IPv4 socket. 566 // This is the IPv4 socket.
571 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET}; 567 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET};
572 568
573 client_socket_factory_.set_client_socket_types(case_types, 2); 569 client_socket_factory_.set_client_socket_types(case_types, 2);
574 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( 570 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds(
575 TransportConnectJob::kIPv6FallbackTimerInMs + 50)); 571 TransportConnectJob::kIPv6FallbackTimerInMs + 50));
(...skipping 15 matching lines...) Expand all
591 EXPECT_TRUE(handle.is_initialized()); 587 EXPECT_TRUE(handle.is_initialized());
592 EXPECT_TRUE(handle.socket()); 588 EXPECT_TRUE(handle.socket());
593 IPEndPoint endpoint; 589 IPEndPoint endpoint;
594 handle.socket()->GetLocalAddress(&endpoint); 590 handle.socket()->GetLocalAddress(&endpoint);
595 EXPECT_TRUE(endpoint.address().IsIPv6()); 591 EXPECT_TRUE(endpoint.address().IsIPv6());
596 EXPECT_EQ(2, client_socket_factory_.allocation_count()); 592 EXPECT_EQ(2, client_socket_factory_.allocation_count());
597 } 593 }
598 594
599 TEST_F(WebSocketTransportClientSocketPoolTest, 595 TEST_F(WebSocketTransportClientSocketPoolTest,
600 IPv6NoIPv4AddressesToFallbackTo) { 596 IPv6NoIPv4AddressesToFallbackTo) {
601 WebSocketTransportClientSocketPool pool(kMaxSockets, 597 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
602 kMaxSocketsPerGroup,
603 host_resolver_.get(), 598 host_resolver_.get(),
604 &client_socket_factory_, 599 &client_socket_factory_, nullptr);
605 NULL);
606 600
607 client_socket_factory_.set_default_client_socket_type( 601 client_socket_factory_.set_default_client_socket_type(
608 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 602 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
609 603
610 // Resolve an AddressList with only IPv6 addresses. 604 // Resolve an AddressList with only IPv6 addresses.
611 host_resolver_->rules()->AddIPLiteralRule( 605 host_resolver_->rules()->AddIPLiteralRule(
612 "*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); 606 "*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string());
613 607
614 TestCompletionCallback callback; 608 TestCompletionCallback callback;
615 ClientSocketHandle handle; 609 ClientSocketHandle handle;
616 int rv = 610 int rv =
617 handle.Init("a", params_, LOW, ClientSocketPool::RespectLimits::ENABLED, 611 handle.Init("a", params_, LOW, ClientSocketPool::RespectLimits::ENABLED,
618 callback.callback(), &pool, BoundNetLog()); 612 callback.callback(), &pool, BoundNetLog());
619 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 613 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
620 EXPECT_FALSE(handle.is_initialized()); 614 EXPECT_FALSE(handle.is_initialized());
621 EXPECT_FALSE(handle.socket()); 615 EXPECT_FALSE(handle.socket());
622 616
623 EXPECT_THAT(callback.WaitForResult(), IsOk()); 617 EXPECT_THAT(callback.WaitForResult(), IsOk());
624 EXPECT_TRUE(handle.is_initialized()); 618 EXPECT_TRUE(handle.is_initialized());
625 EXPECT_TRUE(handle.socket()); 619 EXPECT_TRUE(handle.socket());
626 IPEndPoint endpoint; 620 IPEndPoint endpoint;
627 handle.socket()->GetLocalAddress(&endpoint); 621 handle.socket()->GetLocalAddress(&endpoint);
628 EXPECT_TRUE(endpoint.address().IsIPv6()); 622 EXPECT_TRUE(endpoint.address().IsIPv6());
629 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 623 EXPECT_EQ(1, client_socket_factory_.allocation_count());
630 } 624 }
631 625
632 TEST_F(WebSocketTransportClientSocketPoolTest, IPv4HasNoFallback) { 626 TEST_F(WebSocketTransportClientSocketPoolTest, IPv4HasNoFallback) {
633 WebSocketTransportClientSocketPool pool(kMaxSockets, 627 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
634 kMaxSocketsPerGroup,
635 host_resolver_.get(), 628 host_resolver_.get(),
636 &client_socket_factory_, 629 &client_socket_factory_, nullptr);
637 NULL);
638 630
639 client_socket_factory_.set_default_client_socket_type( 631 client_socket_factory_.set_default_client_socket_type(
640 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); 632 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET);
641 633
642 // Resolve an AddressList with only IPv4 addresses. 634 // Resolve an AddressList with only IPv4 addresses.
643 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); 635 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string());
644 636
645 TestCompletionCallback callback; 637 TestCompletionCallback callback;
646 ClientSocketHandle handle; 638 ClientSocketHandle handle;
647 int rv = 639 int rv =
648 handle.Init("a", params_, LOW, ClientSocketPool::RespectLimits::ENABLED, 640 handle.Init("a", params_, LOW, ClientSocketPool::RespectLimits::ENABLED,
649 callback.callback(), &pool, BoundNetLog()); 641 callback.callback(), &pool, BoundNetLog());
650 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 642 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
651 EXPECT_FALSE(handle.is_initialized()); 643 EXPECT_FALSE(handle.is_initialized());
652 EXPECT_FALSE(handle.socket()); 644 EXPECT_FALSE(handle.socket());
653 645
654 EXPECT_THAT(callback.WaitForResult(), IsOk()); 646 EXPECT_THAT(callback.WaitForResult(), IsOk());
655 EXPECT_TRUE(handle.is_initialized()); 647 EXPECT_TRUE(handle.is_initialized());
656 EXPECT_TRUE(handle.socket()); 648 EXPECT_TRUE(handle.socket());
657 IPEndPoint endpoint; 649 IPEndPoint endpoint;
658 handle.socket()->GetLocalAddress(&endpoint); 650 handle.socket()->GetLocalAddress(&endpoint);
659 EXPECT_TRUE(endpoint.address().IsIPv4()); 651 EXPECT_TRUE(endpoint.address().IsIPv4());
660 EXPECT_EQ(1, client_socket_factory_.allocation_count()); 652 EXPECT_EQ(1, client_socket_factory_.allocation_count());
661 } 653 }
662 654
663 // If all IPv6 addresses fail to connect synchronously, then IPv4 connections 655 // If all IPv6 addresses fail to connect synchronously, then IPv4 connections
664 // proceeed immediately. 656 // proceeed immediately.
665 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6InstantFail) { 657 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6InstantFail) {
666 WebSocketTransportClientSocketPool pool(kMaxSockets, 658 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
667 kMaxSocketsPerGroup,
668 host_resolver_.get(), 659 host_resolver_.get(),
669 &client_socket_factory_, 660 &client_socket_factory_, nullptr);
670 NULL);
671 661
672 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 662 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
673 // First IPv6 socket. 663 // First IPv6 socket.
674 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET, 664 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET,
675 // Second IPv6 socket. 665 // Second IPv6 socket.
676 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET, 666 MockTransportClientSocketFactory::MOCK_FAILING_CLIENT_SOCKET,
677 // This is the IPv4 socket. 667 // This is the IPv4 socket.
678 MockTransportClientSocketFactory::MOCK_CLIENT_SOCKET}; 668 MockTransportClientSocketFactory::MOCK_CLIENT_SOCKET};
679 669
680 client_socket_factory_.set_client_socket_types(case_types, 670 client_socket_factory_.set_client_socket_types(case_types,
(...skipping 12 matching lines...) Expand all
693 ASSERT_TRUE(handle.socket()); 683 ASSERT_TRUE(handle.socket());
694 684
695 IPEndPoint endpoint; 685 IPEndPoint endpoint;
696 handle.socket()->GetPeerAddress(&endpoint); 686 handle.socket()->GetPeerAddress(&endpoint);
697 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort()); 687 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort());
698 } 688 }
699 689
700 // If all IPv6 addresses fail before the IPv4 fallback timeout, then the IPv4 690 // If all IPv6 addresses fail before the IPv4 fallback timeout, then the IPv4
701 // connections proceed immediately. 691 // connections proceed immediately.
702 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6RapidFail) { 692 TEST_F(WebSocketTransportClientSocketPoolTest, IPv6RapidFail) {
703 WebSocketTransportClientSocketPool pool(kMaxSockets, 693 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
704 kMaxSocketsPerGroup,
705 host_resolver_.get(), 694 host_resolver_.get(),
706 &client_socket_factory_, 695 &client_socket_factory_, nullptr);
707 NULL);
708 696
709 MockTransportClientSocketFactory::ClientSocketType case_types[] = { 697 MockTransportClientSocketFactory::ClientSocketType case_types[] = {
710 // First IPv6 socket. 698 // First IPv6 socket.
711 MockTransportClientSocketFactory::MOCK_PENDING_FAILING_CLIENT_SOCKET, 699 MockTransportClientSocketFactory::MOCK_PENDING_FAILING_CLIENT_SOCKET,
712 // Second IPv6 socket. 700 // Second IPv6 socket.
713 MockTransportClientSocketFactory::MOCK_PENDING_FAILING_CLIENT_SOCKET, 701 MockTransportClientSocketFactory::MOCK_PENDING_FAILING_CLIENT_SOCKET,
714 // This is the IPv4 socket. 702 // This is the IPv4 socket.
715 MockTransportClientSocketFactory::MOCK_CLIENT_SOCKET}; 703 MockTransportClientSocketFactory::MOCK_CLIENT_SOCKET};
716 704
717 client_socket_factory_.set_client_socket_types(case_types, 705 client_socket_factory_.set_client_socket_types(case_types,
(...skipping 20 matching lines...) Expand all
738 726
739 IPEndPoint endpoint; 727 IPEndPoint endpoint;
740 handle.socket()->GetPeerAddress(&endpoint); 728 handle.socket()->GetPeerAddress(&endpoint);
741 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort()); 729 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort());
742 } 730 }
743 731
744 // If two sockets connect successfully, the one which connected first wins (this 732 // If two sockets connect successfully, the one which connected first wins (this
745 // can only happen if the sockets are different types, since sockets of the same 733 // can only happen if the sockets are different types, since sockets of the same
746 // type do not race). 734 // type do not race).
747 TEST_F(WebSocketTransportClientSocketPoolTest, FirstSuccessWins) { 735 TEST_F(WebSocketTransportClientSocketPoolTest, FirstSuccessWins) {
748 WebSocketTransportClientSocketPool pool(kMaxSockets, 736 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
749 kMaxSocketsPerGroup,
750 host_resolver_.get(), 737 host_resolver_.get(),
751 &client_socket_factory_, 738 &client_socket_factory_, nullptr);
752 NULL);
753 739
754 client_socket_factory_.set_default_client_socket_type( 740 client_socket_factory_.set_default_client_socket_type(
755 MockTransportClientSocketFactory::MOCK_TRIGGERABLE_CLIENT_SOCKET); 741 MockTransportClientSocketFactory::MOCK_TRIGGERABLE_CLIENT_SOCKET);
756 742
757 // Resolve an AddressList with an IPv6 addresses and an IPv4 address. 743 // Resolve an AddressList with an IPv6 addresses and an IPv4 address.
758 host_resolver_->rules()->AddIPLiteralRule( 744 host_resolver_->rules()->AddIPLiteralRule(
759 "*", "2:abcd::3:4:ff,2.2.2.2", std::string()); 745 "*", "2:abcd::3:4:ff,2.2.2.2", std::string());
760 746
761 TestCompletionCallback callback; 747 TestCompletionCallback callback;
762 ClientSocketHandle handle; 748 ClientSocketHandle handle;
(...skipping 14 matching lines...) Expand all
777 EXPECT_THAT(callback.WaitForResult(), IsOk()); 763 EXPECT_THAT(callback.WaitForResult(), IsOk());
778 ASSERT_TRUE(handle.socket()); 764 ASSERT_TRUE(handle.socket());
779 765
780 IPEndPoint endpoint; 766 IPEndPoint endpoint;
781 handle.socket()->GetPeerAddress(&endpoint); 767 handle.socket()->GetPeerAddress(&endpoint);
782 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort()); 768 EXPECT_EQ("2.2.2.2", endpoint.ToStringWithoutPort());
783 } 769 }
784 770
785 // We should not report failure until all connections have failed. 771 // We should not report failure until all connections have failed.
786 TEST_F(WebSocketTransportClientSocketPoolTest, LastFailureWins) { 772 TEST_F(WebSocketTransportClientSocketPoolTest, LastFailureWins) {
787 WebSocketTransportClientSocketPool pool(kMaxSockets, 773 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
788 kMaxSocketsPerGroup,
789 host_resolver_.get(), 774 host_resolver_.get(),
790 &client_socket_factory_, 775 &client_socket_factory_, nullptr);
791 NULL);
792 776
793 client_socket_factory_.set_default_client_socket_type( 777 client_socket_factory_.set_default_client_socket_type(
794 MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET); 778 MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET);
795 base::TimeDelta delay = base::TimeDelta::FromMilliseconds( 779 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(
796 TransportConnectJob::kIPv6FallbackTimerInMs / 3); 780 TransportConnectJob::kIPv6FallbackTimerInMs / 3);
797 client_socket_factory_.set_delay(delay); 781 client_socket_factory_.set_delay(delay);
798 782
799 // Resolve an AddressList with 4 IPv6 addresses and 2 IPv4 addresses. 783 // Resolve an AddressList with 4 IPv6 addresses and 2 IPv4 addresses.
800 host_resolver_->rules()->AddIPLiteralRule("*", 784 host_resolver_->rules()->AddIPLiteralRule("*",
801 "1:abcd::3:4:ff,2:abcd::3:4:ff," 785 "1:abcd::3:4:ff,2:abcd::3:4:ff,"
(...skipping 18 matching lines...) Expand all
820 804
821 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_FAILED)); 805 EXPECT_THAT(callback.WaitForResult(), IsError(ERR_CONNECTION_FAILED));
822 806
823 EXPECT_GE(base::TimeTicks::Now() - start, delay * 5); 807 EXPECT_GE(base::TimeTicks::Now() - start, delay * 5);
824 } 808 }
825 809
826 // Global timeout for all connects applies. This test is disabled by default 810 // Global timeout for all connects applies. This test is disabled by default
827 // because it takes 4 minutes. Run with --gtest_also_run_disabled_tests if you 811 // because it takes 4 minutes. Run with --gtest_also_run_disabled_tests if you
828 // want to run it. 812 // want to run it.
829 TEST_F(WebSocketTransportClientSocketPoolTest, DISABLED_OverallTimeoutApplies) { 813 TEST_F(WebSocketTransportClientSocketPoolTest, DISABLED_OverallTimeoutApplies) {
830 WebSocketTransportClientSocketPool pool(kMaxSockets, 814 WebSocketTransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup,
831 kMaxSocketsPerGroup,
832 host_resolver_.get(), 815 host_resolver_.get(),
833 &client_socket_factory_, 816 &client_socket_factory_, nullptr);
834 NULL);
835 const base::TimeDelta connect_job_timeout = pool.ConnectionTimeout(); 817 const base::TimeDelta connect_job_timeout = pool.ConnectionTimeout();
836 818
837 client_socket_factory_.set_default_client_socket_type( 819 client_socket_factory_.set_default_client_socket_type(
838 MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET); 820 MockTransportClientSocketFactory::MOCK_DELAYED_FAILING_CLIENT_SOCKET);
839 client_socket_factory_.set_delay(base::TimeDelta::FromSeconds(1) + 821 client_socket_factory_.set_delay(base::TimeDelta::FromSeconds(1) +
840 connect_job_timeout / 6); 822 connect_job_timeout / 6);
841 823
842 // Resolve an AddressList with 6 IPv6 addresses and 6 IPv4 addresses. 824 // Resolve an AddressList with 6 IPv6 addresses and 6 IPv4 addresses.
843 host_resolver_->rules()->AddIPLiteralRule("*", 825 host_resolver_->rules()->AddIPLiteralRule("*",
844 "1:abcd::3:4:ff,2:abcd::3:4:ff," 826 "1:abcd::3:4:ff,2:abcd::3:4:ff,"
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 EXPECT_THAT(request(1)->WaitForResult(), IsOk()); 1081 EXPECT_THAT(request(1)->WaitForResult(), IsOk());
1100 // Third socket should still be waiting for endpoint. 1082 // Third socket should still be waiting for endpoint.
1101 ASSERT_FALSE(request(2)->handle()->is_initialized()); 1083 ASSERT_FALSE(request(2)->handle()->is_initialized());
1102 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET, 1084 EXPECT_EQ(LOAD_STATE_WAITING_FOR_AVAILABLE_SOCKET,
1103 request(2)->handle()->GetLoadState()); 1085 request(2)->handle()->GetLoadState());
1104 } 1086 }
1105 1087
1106 } // namespace 1088 } // namespace
1107 1089
1108 } // namespace net 1090 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/websocket_transport_client_socket_pool.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698