diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 18:12:03 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 18:12:03 +0000 |
commit | 8b95ed6c2edab16e52d70796f21b886670a5d538 (patch) | |
tree | 6f853e6f2104ed1f252b25da97c403244898e995 /net | |
parent | c17a3ac5ea1f8d44ef6a7533c6216ab1ee6b741a (diff) | |
download | chromium_src-8b95ed6c2edab16e52d70796f21b886670a5d538.zip chromium_src-8b95ed6c2edab16e52d70796f21b886670a5d538.tar.gz chromium_src-8b95ed6c2edab16e52d70796f21b886670a5d538.tar.bz2 |
Fix flakiness in Alternate-Protocol tests.
They would hit the backup socket timer. This fixes that.
I've also removed the test exclusions added to work around the flakiness.
BUG=76592
TEST=net_unittests isn't flaky
Review URL: http://codereview.chromium.org/6714013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78720 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/http/http_network_transaction_unittest.cc | 76 |
1 files changed, 21 insertions, 55 deletions
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc index 78dbe55..dff3bdf 100644 --- a/net/http/http_network_transaction_unittest.cc +++ b/net/http/http_network_transaction_unittest.cc @@ -6454,7 +6454,7 @@ TEST_F(HttpNetworkTransactionTest, HonorAlternateProtocolHeader) { HttpStreamFactory::set_next_protos(""); } -TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocol) { +TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) { HttpStreamFactory::set_use_alternate_protocols(true); SessionDependencies session_deps; @@ -6511,61 +6511,10 @@ TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocol) { HttpStreamFactory::set_use_alternate_protocols(false); } -TEST_F(HttpNetworkTransactionTest, FailNpnSpdyAndFallback) { - HttpStreamFactory::set_use_alternate_protocols(true); - HttpStreamFactory::set_next_protos(kExpectedNPNString); - SessionDependencies session_deps; - - HttpRequestInfo request; - request.method = "GET"; - request.url = GURL("http://www.google.com/"); - request.load_flags = 0; - - StaticSocketDataProvider first_tcp_connect; - session_deps.socket_factory.AddSocketDataProvider(&first_tcp_connect); - - SSLSocketDataProvider ssl(true, OK); - session_deps.socket_factory.AddSSLSocketDataProvider(&ssl); - - MockRead data_reads[] = { - MockRead("HTTP/1.1 200 OK\r\n\r\n"), - MockRead("hello world"), - MockRead(true, OK), - }; - StaticSocketDataProvider fallback_data( - data_reads, arraysize(data_reads), NULL, 0); - session_deps.socket_factory.AddSocketDataProvider(&fallback_data); - - TestCompletionCallback callback; - - scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps)); - - HostPortPair http_host_port_pair("www.google.com", 80); - HttpAlternateProtocols* alternate_protocols = - session->mutable_alternate_protocols(); - alternate_protocols->SetAlternateProtocolFor( - http_host_port_pair, 1234 /* port is ignored */, - HttpAlternateProtocols::NPN_SPDY_2); - - scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); - - int rv = trans->Start(&request, &callback, BoundNetLog()); - EXPECT_EQ(ERR_IO_PENDING, rv); - EXPECT_EQ(OK, callback.WaitForResult()); - - const HttpResponseInfo* response = trans->GetResponseInfo(); - ASSERT_TRUE(response != NULL); - ASSERT_TRUE(response->headers != NULL); - EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); - - std::string response_data; - ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); - EXPECT_EQ("hello world", response_data); - HttpStreamFactory::set_next_protos(""); - HttpStreamFactory::set_use_alternate_protocols(false); -} - TEST_F(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) { + bool connect_backup_jobs_enabled = + internal::ClientSocketPoolBaseHelper::connect_backup_jobs_enabled(); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); HttpStreamFactory::set_use_alternate_protocols(true); HttpStreamFactory::set_next_protos(kExpectedNPNString); SessionDependencies session_deps; @@ -6654,9 +6603,14 @@ TEST_F(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) { HttpStreamFactory::set_next_protos(""); HttpStreamFactory::set_use_alternate_protocols(false); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( + connect_backup_jobs_enabled); } TEST_F(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) { + bool connect_backup_jobs_enabled = + internal::ClientSocketPoolBaseHelper::connect_backup_jobs_enabled(); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); HttpStreamFactory::set_use_alternate_protocols(true); HttpStreamFactory::set_next_protos(kExpectedNPNString); SessionDependencies session_deps; @@ -6772,9 +6726,14 @@ TEST_F(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) { HttpStreamFactory::set_next_protos(""); HttpStreamFactory::set_use_alternate_protocols(false); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( + connect_backup_jobs_enabled); } TEST_F(HttpNetworkTransactionTest, StallAlternateProtocolForNpnSpdy) { + bool connect_backup_jobs_enabled = + internal::ClientSocketPoolBaseHelper::connect_backup_jobs_enabled(); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); HttpStreamFactory::set_use_alternate_protocols(true); HttpStreamFactory::set_next_protos(kExpectedNPNString); SessionDependencies session_deps; @@ -6848,6 +6807,8 @@ TEST_F(HttpNetworkTransactionTest, StallAlternateProtocolForNpnSpdy) { HttpStreamFactory::set_next_protos(""); HttpStreamFactory::set_use_alternate_protocols(false); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( + connect_backup_jobs_enabled); } class CapturingProxyResolver : public ProxyResolver { @@ -6889,6 +6850,9 @@ class CapturingProxyResolver : public ProxyResolver { }; TEST_F(HttpNetworkTransactionTest, UseAlternateProtocolForTunneledNpnSpdy) { + bool connect_backup_jobs_enabled = + internal::ClientSocketPoolBaseHelper::connect_backup_jobs_enabled(); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); HttpStreamFactory::set_use_alternate_protocols(true); HttpStreamFactory::set_next_protos(kExpectedNPNString); @@ -7000,6 +6964,8 @@ TEST_F(HttpNetworkTransactionTest, UseAlternateProtocolForTunneledNpnSpdy) { HttpStreamFactory::set_next_protos(""); HttpStreamFactory::set_use_alternate_protocols(false); + internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( + connect_backup_jobs_enabled); } TEST_F(HttpNetworkTransactionTest, |