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

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

Issue 1768593003: When QUIC is disabled because of timeouts with open streams, re-enable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address 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
« no previous file with comments | « net/quic/quic_stream_factory.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 (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 2714 matching lines...) Expand 10 before | Expand all | Expand 10 after
2725 // QuicStreamFactory::OnSessionClosed() runs. 2725 // QuicStreamFactory::OnSessionClosed() runs.
2726 base::RunLoop run_loop2; 2726 base::RunLoop run_loop2;
2727 run_loop2.RunUntilIdle(); 2727 run_loop2.RunUntilIdle();
2728 EXPECT_EQ( 2728 EXPECT_EQ(
2729 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 2729 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2730 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2730 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2731 host_port_pair_.port())); 2731 host_port_pair_.port()));
2732 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, 2732 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS,
2733 factory_->QuicDisabledReason(host_port_pair_.port())); 2733 factory_->QuicDisabledReason(host_port_pair_.port()));
2734 2734
2735 // Verify that QUIC is un-disabled after a TCP job fails.
2736 factory_->OnTcpJobCompleted(/*succeeded=*/false);
2737 EXPECT_EQ(
2738 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2739 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2740 host_port_pair_.port()));
2741
2735 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2742 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2736 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2743 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2737 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2744 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2738 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2745 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2739 } 2746 }
2740 2747
2741 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { 2748 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) {
2742 disable_disk_cache_ = true; 2749 disable_disk_cache_ = true;
2743 threshold_public_resets_post_handshake_ = 2; 2750 threshold_public_resets_post_handshake_ = 2;
2744 Initialize(); 2751 Initialize();
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
2964 run_loop3.RunUntilIdle(); 2971 run_loop3.RunUntilIdle();
2965 EXPECT_EQ( 2972 EXPECT_EQ(
2966 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 2973 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2967 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2974 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2968 host_port_pair_.port())); 2975 host_port_pair_.port()));
2969 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, 2976 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS,
2970 factory_->QuicDisabledReason(host_port_pair_.port())); 2977 factory_->QuicDisabledReason(host_port_pair_.port()));
2971 2978
2972 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2979 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
2973 EXPECT_TRUE(stream2.get()); 2980 EXPECT_TRUE(stream2.get());
2981
2982 // Verify that QUIC is un-disabled after a network change.
2983 factory_->OnIPAddressChanged();
2984 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2985 host_port_pair_.port()));
2986 EXPECT_EQ(
2987 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2988
2974 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2989 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2975 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2990 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2976 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2991 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2977 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2992 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2978 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 2993 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
2979 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 2994 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
2980 } 2995 }
2981 2996
2982 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) { 2997 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) {
2983 disable_disk_cache_ = true; 2998 disable_disk_cache_ = true;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
3028 run_loop.RunUntilIdle(); 3043 run_loop.RunUntilIdle();
3029 3044
3030 EXPECT_EQ( 3045 EXPECT_EQ(
3031 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3046 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3032 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3047 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3033 host_port_pair_.port())); 3048 host_port_pair_.port()));
3034 3049
3035 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, 3050 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS,
3036 factory_->QuicDisabledReason(host_port_pair_.port())); 3051 factory_->QuicDisabledReason(host_port_pair_.port()));
3037 3052
3053 // Verify that QUIC is fully disabled after a TCP job succeeds.
3054 factory_->OnTcpJobCompleted(/*succeeded=*/true);
3055 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3056 host_port_pair_.port()));
3057
3058 // Verify that QUIC stays disabled after a TCP job succeeds.
3059 factory_->OnTcpJobCompleted(/*succeeded=*/false);
3060 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3061 host_port_pair_.port()));
3062
3038 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3063 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3039 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3064 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3040 } 3065 }
3041 3066
3042 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { 3067 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) {
3043 disable_disk_cache_ = true; 3068 disable_disk_cache_ = true;
3044 threshold_public_resets_post_handshake_ = 2; 3069 threshold_public_resets_post_handshake_ = 2;
3045 Initialize(); 3070 Initialize();
3046 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3071 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3047 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3072 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
3316 run_loop4.RunUntilIdle(); 3341 run_loop4.RunUntilIdle();
3317 EXPECT_EQ( 3342 EXPECT_EQ(
3318 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3343 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3319 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3344 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3320 host_port_pair_.port())); 3345 host_port_pair_.port()));
3321 3346
3322 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 3347 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
3323 EXPECT_TRUE(stream2.get()); 3348 EXPECT_TRUE(stream2.get());
3324 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 3349 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
3325 EXPECT_TRUE(stream3.get()); 3350 EXPECT_TRUE(stream3.get());
3351
3326 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 3352 EXPECT_TRUE(socket_data.AllReadDataConsumed());
3327 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 3353 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
3328 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3354 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3329 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3355 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3330 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); 3356 EXPECT_TRUE(socket_data3.AllReadDataConsumed());
3331 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); 3357 EXPECT_TRUE(socket_data3.AllWriteDataConsumed());
3332 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); 3358 EXPECT_TRUE(socket_data4.AllReadDataConsumed());
3333 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); 3359 EXPECT_TRUE(socket_data4.AllWriteDataConsumed());
3334 } 3360 }
3335 3361
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
3675 EXPECT_TRUE(stream2.get()); 3701 EXPECT_TRUE(stream2.get());
3676 3702
3677 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 3703 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
3678 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 3704 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
3679 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3705 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3680 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3706 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3681 } 3707 }
3682 3708
3683 } // namespace test 3709 } // namespace test
3684 } // namespace net 3710 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_stream_factory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698