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

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

Issue 1744693002: Implement QUIC-based net::BidirectionalStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@basecl
Patch Set: Address Ryan's comments Created 4 years, 9 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/quic/quic_stream_factory.h" 5 #include "net/quic/quic_stream_factory.h"
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "net/base/test_data_directory.h" 10 #include "net/base/test_data_directory.h"
(...skipping 2619 matching lines...) Expand 10 before | Expand all | Expand 10 after
2630 run_loop2.RunUntilIdle(); 2630 run_loop2.RunUntilIdle();
2631 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2631 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
2632 factory_.get())); 2632 factory_.get()));
2633 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2633 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2634 host_port_pair_.port())); 2634 host_port_pair_.port()));
2635 EXPECT_EQ( 2635 EXPECT_EQ(
2636 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, 2636 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE,
2637 factory_->QuicDisabledReason(host_port_pair_.port())); 2637 factory_->QuicDisabledReason(host_port_pair_.port()));
2638 2638
2639 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2639 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2640 EXPECT_TRUE(stream.get()); 2640 EXPECT_FALSE(stream.get()); // Session is already closed.
2641 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2641 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
2642 EXPECT_TRUE(stream2.get()); 2642 EXPECT_FALSE(stream2.get()); // Session is already closed.
2643 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2643 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2644 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2644 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2645 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2645 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2646 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2646 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2647 } 2647 }
2648 2648
2649 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { 2649 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) {
2650 disable_disk_cache_ = true; 2650 disable_disk_cache_ = true;
2651 threshold_timeouts_with_open_streams_ = 2; 2651 threshold_timeouts_with_open_streams_ = 2;
2652 Initialize(); 2652 Initialize();
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2833 run_loop3.RunUntilIdle(); 2833 run_loop3.RunUntilIdle();
2834 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2834 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
2835 factory_.get())); 2835 factory_.get()));
2836 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2836 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2837 host_port_pair_.port())); 2837 host_port_pair_.port()));
2838 EXPECT_EQ( 2838 EXPECT_EQ(
2839 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, 2839 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE,
2840 factory_->QuicDisabledReason(host_port_pair_.port())); 2840 factory_->QuicDisabledReason(host_port_pair_.port()));
2841 2841
2842 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2842 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2843 EXPECT_TRUE(stream.get()); 2843 EXPECT_FALSE(stream.get()); // Session is already closed.
2844 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2844 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
2845 EXPECT_TRUE(stream2.get()); 2845 EXPECT_FALSE(stream2.get()); // Session is already closed.
2846 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 2846 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
2847 EXPECT_TRUE(stream3.get()); 2847 EXPECT_FALSE(stream3.get()); // Session is already closed.
2848 2848
2849 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2849 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2850 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2850 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2851 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2851 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2852 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2852 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2853 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2853 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2854 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2854 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2855 } 2855 }
2856 2856
2857 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { 2857 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2963 base::RunLoop run_loop3; 2963 base::RunLoop run_loop3;
2964 run_loop3.RunUntilIdle(); 2964 run_loop3.RunUntilIdle();
2965 EXPECT_EQ( 2965 EXPECT_EQ(
2966 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 2966 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2967 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2967 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2968 host_port_pair_.port())); 2968 host_port_pair_.port()));
2969 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, 2969 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS,
2970 factory_->QuicDisabledReason(host_port_pair_.port())); 2970 factory_->QuicDisabledReason(host_port_pair_.port()));
2971 2971
2972 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2972 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
2973 EXPECT_TRUE(stream2.get()); 2973 EXPECT_FALSE(stream2.get()); // Session is already closed.
2974 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2974 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2975 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2975 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2976 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2976 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2977 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2977 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2978 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2978 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2979 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2979 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2980 } 2980 }
2981 2981
2982 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) { 2982 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) {
2983 disable_disk_cache_ = true; 2983 disable_disk_cache_ = true;
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
3157 // Need to spin the loop now to ensure that 3157 // Need to spin the loop now to ensure that
3158 // QuicStreamFactory::OnSessionClosed() runs. 3158 // QuicStreamFactory::OnSessionClosed() runs.
3159 base::RunLoop run_loop4; 3159 base::RunLoop run_loop4;
3160 run_loop4.RunUntilIdle(); 3160 run_loop4.RunUntilIdle();
3161 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 3161 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
3162 factory_.get())); 3162 factory_.get()));
3163 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3163 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3164 host_port_pair_.port())); 3164 host_port_pair_.port()));
3165 3165
3166 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3166 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3167 EXPECT_TRUE(stream.get()); 3167 EXPECT_FALSE(stream.get()); // Session is already closed.
3168 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 3168 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
3169 EXPECT_TRUE(stream2.get()); 3169 EXPECT_FALSE(stream2.get()); // Session is already closed.
3170 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 3170 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
3171 EXPECT_TRUE(stream3.get()); 3171 EXPECT_FALSE(stream3.get()); // Session is already closed.
3172 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream(); 3172 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream();
3173 EXPECT_TRUE(stream4.get()); 3173 EXPECT_FALSE(stream4.get()); // Session is already closed.
3174 3174
3175 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3175 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3176 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3176 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3177 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3177 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3178 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3178 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3179 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 3179 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
3180 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 3180 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
3181 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 3181 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
3182 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 3182 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
3183 } 3183 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
3313 // Need to spin the loop now to ensure that 3313 // Need to spin the loop now to ensure that
3314 // QuicStreamFactory::OnSessionClosed() runs. 3314 // QuicStreamFactory::OnSessionClosed() runs.
3315 base::RunLoop run_loop4; 3315 base::RunLoop run_loop4;
3316 run_loop4.RunUntilIdle(); 3316 run_loop4.RunUntilIdle();
3317 EXPECT_EQ( 3317 EXPECT_EQ(
3318 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3318 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3319 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3319 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3320 host_port_pair_.port())); 3320 host_port_pair_.port()));
3321 3321
3322 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 3322 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
3323 EXPECT_TRUE(stream2.get()); 3323 EXPECT_FALSE(stream2.get()); // Session is already closed.
3324 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 3324 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
3325 EXPECT_TRUE(stream3.get()); 3325 EXPECT_FALSE(stream3.get()); // Session is already closed.
3326 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3326 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3327 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3327 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3328 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3328 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3329 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3329 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3330 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 3330 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
3331 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 3331 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
3332 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 3332 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
3333 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 3333 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
3334 } 3334 }
3335 3335
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
3515 // called. 3515 // called.
3516 base::RunLoop run_loop; 3516 base::RunLoop run_loop;
3517 run_loop.RunUntilIdle(); 3517 run_loop.RunUntilIdle();
3518 3518
3519 // Verify task that the observer's executed_count is 1, which indicates 3519 // Verify task that the observer's executed_count is 1, which indicates
3520 // QuicChromiumPacketReader::StartReading() has posted only one task and 3520 // QuicChromiumPacketReader::StartReading() has posted only one task and
3521 // yielded the read. 3521 // yielded the read.
3522 EXPECT_EQ(1u, observer.executed_count()); 3522 EXPECT_EQ(1u, observer.executed_count());
3523 3523
3524 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3524 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3525 EXPECT_TRUE(stream.get()); 3525 EXPECT_FALSE(stream.get()); // Session is already closed.
3526 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3526 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3527 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3527 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3528 } 3528 }
3529 3529
3530 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { 3530 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) {
3531 Initialize(); 3531 Initialize();
3532 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3532 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3533 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3533 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3534 QuicStreamFactoryPeer::SetYieldAfterDuration( 3534 QuicStreamFactoryPeer::SetYieldAfterDuration(
3535 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); 3535 factory_.get(), QuicTime::Delta::FromMilliseconds(-1));
(...skipping 28 matching lines...) Expand all
3564 // called. 3564 // called.
3565 base::RunLoop run_loop; 3565 base::RunLoop run_loop;
3566 run_loop.RunUntilIdle(); 3566 run_loop.RunUntilIdle();
3567 3567
3568 // Verify task that the observer's executed_count is 1, which indicates 3568 // Verify task that the observer's executed_count is 1, which indicates
3569 // QuicChromiumPacketReader::StartReading() has posted only one task and 3569 // QuicChromiumPacketReader::StartReading() has posted only one task and
3570 // yielded the read. 3570 // yielded the read.
3571 EXPECT_EQ(1u, observer.executed_count()); 3571 EXPECT_EQ(1u, observer.executed_count());
3572 3572
3573 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3573 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3574 EXPECT_TRUE(stream.get()); 3574 EXPECT_FALSE(stream.get()); // Session is already closed.
3575 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3575 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3576 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3576 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3577 } 3577 }
3578 3578
3579 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { 3579 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) {
3580 Initialize(); 3580 Initialize();
3581 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3581 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3582 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3582 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3583 3583
3584 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 3584 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
3675 EXPECT_TRUE(stream2.get()); 3675 EXPECT_TRUE(stream2.get());
3676 3676
3677 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 3677 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
3678 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 3678 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
3679 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3679 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3680 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3680 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3681 } 3681 }
3682 3682
3683 } // namespace test 3683 } // namespace test
3684 } // namespace net 3684 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698