diff options
author | mmenke <mmenke@chromium.org> | 2015-12-18 13:26:45 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-18 21:27:26 +0000 |
commit | 651bae7f9f979129ce3f662fe4dafe2327da0c88 (patch) | |
tree | 0c9047a9ca02c5b009b8fcade07ff5b1581fed88 | |
parent | 6196e1f23f37c8e7196bf1e2263ae985b3e89f0c (diff) | |
download | chromium_src-651bae7f9f979129ce3f662fe4dafe2327da0c88.zip chromium_src-651bae7f9f979129ce3f662fe4dafe2327da0c88.tar.gz chromium_src-651bae7f9f979129ce3f662fe4dafe2327da0c88.tar.bz2 |
Remove use of DeterministicSocketData from QUIC tests.
This switches them over to using SequencedSocketData, and removes
support for using DeterministicSocketData with UDP sockets.
BUG=492693
Review URL: https://codereview.chromium.org/1534993003
Cr-Commit-Position: refs/heads/master@{#366169}
-rw-r--r-- | net/quic/quic_network_transaction_unittest.cc | 25 | ||||
-rw-r--r-- | net/quic/quic_stream_factory_test.cc | 392 | ||||
-rw-r--r-- | net/socket/socket_test_util.cc | 110 | ||||
-rw-r--r-- | net/socket/socket_test_util.h | 61 |
4 files changed, 145 insertions, 443 deletions
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc index fb5d3b7..245021a 100644 --- a/net/quic/quic_network_transaction_unittest.cc +++ b/net/quic/quic_network_transaction_unittest.cc @@ -7,6 +7,7 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/memory/scoped_ptr.h" +#include "base/run_loop.h" #include "base/stl_util.h" #include "base/strings/stringprintf.h" #include "net/base/network_quality_estimator.h" @@ -1326,45 +1327,43 @@ TEST_P(QuicNetworkTransactionTest, HungAlternateProtocol) { MockRead(SYNCHRONOUS, 4, kQuicAlternateProtocolHeader), MockRead(SYNCHRONOUS, 5, "hello world"), MockRead(SYNCHRONOUS, OK, 6)}; - DeterministicMockClientSocketFactory socket_factory; + MockClientSocketFactory socket_factory; - DeterministicSocketData http_data(http_reads, arraysize(http_reads), - http_writes, arraysize(http_writes)); + SequencedSocketData http_data(http_reads, arraysize(http_reads), http_writes, + arraysize(http_writes)); socket_factory.AddSocketDataProvider(&http_data); socket_factory.AddSSLSocketDataProvider(&ssl_data_); // The QUIC transaction will not be allowed to complete. - MockWrite quic_writes[] = {MockWrite(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + MockWrite quic_writes[] = {MockWrite(SYNCHRONOUS, ERR_IO_PENDING, 1)}; MockRead quic_reads[] = { - MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1), + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0), }; - DeterministicSocketData quic_data(quic_reads, arraysize(quic_reads), - quic_writes, arraysize(quic_writes)); + SequencedSocketData quic_data(quic_reads, arraysize(quic_reads), quic_writes, + arraysize(quic_writes)); socket_factory.AddSocketDataProvider(&quic_data); // The HTTP transaction will complete. - DeterministicSocketData http_data2(http_reads, arraysize(http_reads), - http_writes, arraysize(http_writes)); + SequencedSocketData http_data2(http_reads, arraysize(http_reads), http_writes, + arraysize(http_writes)); socket_factory.AddSocketDataProvider(&http_data2); socket_factory.AddSSLSocketDataProvider(&ssl_data_); CreateSessionWithFactory(&socket_factory, true); // Run the first request. - http_data.StopAfter(arraysize(http_reads) + arraysize(http_writes)); SendRequestAndExpectHttpResponse("hello world"); ASSERT_TRUE(http_data.AllReadDataConsumed()); ASSERT_TRUE(http_data.AllWriteDataConsumed()); // Now run the second request in which the QUIC socket hangs, // and verify the the transaction continues over HTTP. - http_data2.StopAfter(arraysize(http_reads) + arraysize(http_writes)); SendRequestAndExpectHttpResponse("hello world"); + base::RunLoop().RunUntilIdle(); ASSERT_TRUE(http_data2.AllReadDataConsumed()); ASSERT_TRUE(http_data2.AllWriteDataConsumed()); - ASSERT_TRUE(!quic_data.AllReadDataConsumed()); - ASSERT_TRUE(!quic_data.AllWriteDataConsumed()); + ASSERT_TRUE(quic_data.AllReadDataConsumed()); } TEST_P(QuicNetworkTransactionTest, ZeroRTTWithHttpRace) { diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc index de84d4e..9ad8e2b 100644 --- a/net/quic/quic_stream_factory_test.cc +++ b/net/quic/quic_stream_factory_test.cc @@ -198,13 +198,10 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { bool goaway_received) { // Should only be called if there is no active session for this destination. EXPECT_FALSE(HasActiveSession(destination)); - size_t socket_count = socket_factory_.udp_client_sockets().size(); + size_t socket_count = socket_factory_.udp_client_socket_ports().size(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); - socket_data.StopAfter(1); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); QuicStreamRequest request(factory_.get()); @@ -221,15 +218,11 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { QuicChromiumClientSession* session = QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); - if (socket_count + 1 != socket_factory_.udp_client_sockets().size()) { - EXPECT_TRUE(false); + if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { + ADD_FAILURE(); return 0; } - IPEndPoint endpoint; - socket_factory_.udp_client_sockets()[socket_count]->GetLocalAddress( - &endpoint); - int port = endpoint.port(); if (goaway_received) { QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); session->connection()->OnGoAwayFrame(goaway); @@ -239,7 +232,7 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { EXPECT_FALSE(HasActiveSession(destination)); EXPECT_TRUE(socket_data.AllReadDataConsumed()); EXPECT_TRUE(socket_data.AllWriteDataConsumed()); - return port; + return socket_factory_.udp_client_socket_ports()[socket_count]; } scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( @@ -274,7 +267,7 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { } MockHostResolver host_resolver_; - DeterministicMockClientSocketFactory socket_factory_; + MockClientSocketFactory socket_factory_; MockCryptoClientStreamFactory crypto_client_stream_factory_; MockRandom random_generator_; MockClock* clock_; // Owned by factory_. @@ -319,12 +312,9 @@ INSTANTIATE_TEST_CASE_P(Version, TEST_P(QuicStreamFactoryTest, Create) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -357,12 +347,9 @@ TEST_P(QuicStreamFactoryTest, Create) { TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); @@ -384,12 +371,9 @@ TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); @@ -418,12 +402,9 @@ TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0), - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); @@ -452,12 +433,9 @@ TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { TEST_P(QuicStreamFactoryTest, GoAway) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -484,12 +462,9 @@ TEST_P(QuicStreamFactoryTest, GoAway) { TEST_P(QuicStreamFactoryTest, Pooling) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); HostPortPair server2("mail.google.com", kDefaultServerPort); host_resolver_.set_synchronous_mode(true); @@ -525,15 +500,11 @@ TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { disable_connection_pooling_ = true; Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data1.StopAfter(1); - socket_data2.StopAfter(1); HostPortPair server2("mail.google.com", kDefaultServerPort); host_resolver_.set_synchronous_mode(true); @@ -570,15 +541,11 @@ TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data1.StopAfter(1); - socket_data2.StopAfter(1); HostPortPair server2("mail.google.com", kDefaultServerPort); host_resolver_.set_synchronous_mode(true); @@ -627,12 +594,9 @@ TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { TEST_P(QuicStreamFactoryTest, HttpsPooling) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -670,15 +634,11 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { disable_connection_pooling_ = true; Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data1.StopAfter(1); - socket_data2.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -718,12 +678,9 @@ class QuicAlternativeServiceCertificateValidationPooling : public QuicStreamFactoryTest { public: void Run(bool valid) { - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); - socket_data1.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -790,12 +747,9 @@ TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -839,15 +793,11 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { disable_connection_pooling_ = true; Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data1.StopAfter(1); - socket_data2.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -891,15 +841,11 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data1); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data1.StopAfter(1); - socket_data2.StopAfter(1); HostPortPair server1("www.example.org", 443); HostPortPair server2("mail.example.org", 443); @@ -949,14 +895,10 @@ TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { TEST_P(QuicStreamFactoryTest, Goaway) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); - socket_data.StopAfter(1); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); - socket_data2.StopAfter(1); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); QuicStreamRequest request(factory_.get()); @@ -1019,12 +961,10 @@ TEST_P(QuicStreamFactoryTest, MaxOpenStream) { maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); MockRead reads[] = { MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), - MockRead(ASYNC, OK, 2) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), writes, - arraysize(writes)); + MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2)}; + SequencedSocketData socket_data(reads, arraysize(reads), writes, + arraysize(writes)); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(2); HttpRequestInfo request_info; std::vector<QuicHttpStream*> streams; @@ -1062,9 +1002,6 @@ TEST_P(QuicStreamFactoryTest, MaxOpenStream) { streams.front()->Close(false); // Trigger exchange of RSTs that in turn allow progress for the last // stream. - socket_data.RunFor(2); - - ASSERT_TRUE(callback_.have_result()); EXPECT_EQ(OK, callback_.WaitForResult()); EXPECT_TRUE(socket_data.AllReadDataConsumed()); @@ -1082,7 +1019,7 @@ TEST_P(QuicStreamFactoryTest, MaxOpenStream) { TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { Initialize(); - DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data(nullptr, 0, nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); @@ -1102,10 +1039,9 @@ TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { Initialize(); MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); - DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data(nullptr, 0, nullptr, 0); socket_data.set_connect_data(connect); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1121,10 +1057,8 @@ TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { TEST_P(QuicStreamFactoryTest, CancelCreate) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); { QuicStreamRequest request(factory_.get()); @@ -1134,9 +1068,7 @@ TEST_P(QuicStreamFactoryTest, CancelCreate) { "GET", net_log_, callback_.callback())); } - socket_data.StopAfter(1); - base::RunLoop run_loop; - run_loop.RunUntilIdle(); + base::RunLoop().RunUntilIdle(); scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); EXPECT_TRUE(stream.get()); @@ -1175,24 +1107,18 @@ TEST_P(QuicStreamFactoryTest, GoAwayDisablesConsistentEphemeralPort) { TEST_P(QuicStreamFactoryTest, CloseAllSessions) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, 0, 0) // EOF - }; + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); std::vector<MockWrite> writes; writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); - DeterministicSocketData socket_data(reads, arraysize(reads), - writes.empty() ? nullptr : &writes[0], - writes.size()); + SequencedSocketData socket_data(reads, arraysize(reads), + writes.empty() ? nullptr : &writes[0], + writes.size()); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1234,24 +1160,18 @@ TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { close_sessions_on_ip_change_ = true; Initialize(); - MockRead reads[] = { - MockRead(ASYNC, 0, 0) // EOF - }; + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); std::vector<MockWrite> writes; writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); - DeterministicSocketData socket_data(reads, arraysize(reads), - writes.empty() ? nullptr : &writes[0], - writes.size()); + SequencedSocketData socket_data(reads, arraysize(reads), + writes.empty() ? nullptr : &writes[0], + writes.size()); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1292,24 +1212,18 @@ TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, 0, 0) // EOF - }; + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); std::vector<MockWrite> writes; writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); - DeterministicSocketData socket_data(reads, arraysize(reads), - writes.empty() ? nullptr : &writes[0], - writes.size()); + SequencedSocketData socket_data(reads, arraysize(reads), + writes.empty() ? nullptr : &writes[0], + writes.size()); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1349,24 +1263,18 @@ TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { TEST_P(QuicStreamFactoryTest, OnCertAdded) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, 0, 0) // EOF - }; + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); std::vector<MockWrite> writes; writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); - DeterministicSocketData socket_data(reads, arraysize(reads), - writes.empty() ? nullptr : &writes[0], - writes.size()); + SequencedSocketData socket_data(reads, arraysize(reads), + writes.empty() ? nullptr : &writes[0], + writes.size()); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1407,24 +1315,18 @@ TEST_P(QuicStreamFactoryTest, OnCertAdded) { TEST_P(QuicStreamFactoryTest, OnCACertChanged) { Initialize(); - MockRead reads[] = { - MockRead(ASYNC, 0, 0) // EOF - }; + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); std::vector<MockWrite> writes; writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); - DeterministicSocketData socket_data(reads, arraysize(reads), - writes.empty() ? nullptr : &writes[0], - writes.size()); + SequencedSocketData socket_data(reads, arraysize(reads), + writes.empty() ? nullptr : &writes[0], + writes.size()); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); QuicStreamRequest request(factory_.get()); EXPECT_EQ(ERR_IO_PENDING, @@ -1543,19 +1445,13 @@ TEST_P(QuicStreamFactoryTest, RacingConnections) { QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - MockRead reads2[] = { - MockRead(ASYNC, 0, 0) // EOF - }; - DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); + MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), host_port_pair_.port()); @@ -1597,12 +1493,9 @@ TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { Initialize(); QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); @@ -1636,24 +1529,18 @@ TEST_P(QuicStreamFactoryTest, BadPacketLoss) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); - DeterministicSocketData socket_data3(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data3); - socket_data3.StopAfter(1); - DeterministicSocketData socket_data4(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data4); - socket_data4.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); HostPortPair server3("docs.example.org", kDefaultServerPort); @@ -1809,16 +1696,12 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); @@ -1893,16 +1776,12 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); @@ -1983,20 +1862,15 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); - DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data3); - socket_data3.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); HostPortPair server3("docs.example.org", kDefaultServerPort); @@ -2098,21 +1972,16 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); - DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data3); - socket_data3.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); HostPortPair server3("docs.example.org", kDefaultServerPort); @@ -2221,24 +2090,18 @@ TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); - DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data3); - socket_data3.StopAfter(1); - DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data4); - socket_data4.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); HostPortPair server3("docs.example.org", kDefaultServerPort); @@ -2361,25 +2224,19 @@ TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( factory_.get(), host_port_pair_.port())); - MockRead reads[] = { - MockRead(ASYNC, OK, 0) // EOF - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); - // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); - DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); + // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); + SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data2); - socket_data2.StopAfter(1); - DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data3); - socket_data3.StopAfter(1); - DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); + SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data4); - socket_data4.StopAfter(1); HostPortPair server2("mail.example.org", kDefaultServerPort); HostPortPair server3("docs.example.org", kDefaultServerPort); @@ -2502,12 +2359,9 @@ TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { Initialize(); bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); - MockRead reads[] = { - MockRead(ASYNC, OK, 0), - }; - DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); + MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; + SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); ServerNetworkStats stats1; stats1.srtt = base::TimeDelta::FromMicroseconds(10); @@ -2651,9 +2505,8 @@ TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { reads.push_back( MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); reads.push_back(MockRead(ASYNC, OK, 1)); - DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); + SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); @@ -2697,9 +2550,8 @@ TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { reads.push_back( MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); reads.push_back(MockRead(ASYNC, OK, 1)); - DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); + SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); socket_factory_.AddSocketDataProvider(&socket_data); - socket_data.StopAfter(1); crypto_client_stream_factory_.set_handshake_mode( MockCryptoClientStream::ZERO_RTT); diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 9d8bee3..0d44135 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc @@ -913,6 +913,7 @@ MockClientSocketFactory::CreateDatagramClientSocket( new MockUDPClientSocket(data_provider, net_log)); if (bind_type == DatagramSocket::RANDOM_BIND) socket->set_source_port(static_cast<uint16>(rand_int_cb.Run(1025, 65535))); + udp_client_socket_ports_.push_back(socket->source_port()); return socket.Pass(); } @@ -1420,105 +1421,6 @@ int DeterministicSocketHelper::Read( return CompleteRead(); } -DeterministicMockUDPClientSocket::DeterministicMockUDPClientSocket( - net::NetLog* net_log, - DeterministicSocketData* data) - : connected_(false), - helper_(net_log, data), - source_port_(123) { -} - -DeterministicMockUDPClientSocket::~DeterministicMockUDPClientSocket() {} - -bool DeterministicMockUDPClientSocket::WritePending() const { - return helper_.write_pending(); -} - -bool DeterministicMockUDPClientSocket::ReadPending() const { - return helper_.read_pending(); -} - -void DeterministicMockUDPClientSocket::CompleteWrite() { - helper_.CompleteWrite(); -} - -int DeterministicMockUDPClientSocket::CompleteRead() { - return helper_.CompleteRead(); -} - -int DeterministicMockUDPClientSocket::BindToNetwork( - NetworkChangeNotifier::NetworkHandle network) { - return ERR_NOT_IMPLEMENTED; -} - -int DeterministicMockUDPClientSocket::BindToDefaultNetwork() { - return ERR_NOT_IMPLEMENTED; -} - -NetworkChangeNotifier::NetworkHandle -DeterministicMockUDPClientSocket::GetBoundNetwork() { - return NetworkChangeNotifier::kInvalidNetworkHandle; -} - -int DeterministicMockUDPClientSocket::Connect(const IPEndPoint& address) { - if (connected_) - return OK; - connected_ = true; - peer_address_ = address; - return helper_.data()->connect_data().result; -}; - -int DeterministicMockUDPClientSocket::Write( - IOBuffer* buf, - int buf_len, - const CompletionCallback& callback) { - if (!connected_) - return ERR_UNEXPECTED; - - return helper_.Write(buf, buf_len, callback); -} - -int DeterministicMockUDPClientSocket::Read( - IOBuffer* buf, - int buf_len, - const CompletionCallback& callback) { - if (!connected_) - return ERR_UNEXPECTED; - - return helper_.Read(buf, buf_len, callback); -} - -int DeterministicMockUDPClientSocket::SetReceiveBufferSize(int32 size) { - return OK; -} - -int DeterministicMockUDPClientSocket::SetSendBufferSize(int32 size) { - return OK; -} - -void DeterministicMockUDPClientSocket::Close() { - connected_ = false; -} - -int DeterministicMockUDPClientSocket::GetPeerAddress( - IPEndPoint* address) const { - *address = peer_address_; - return OK; -} - -int DeterministicMockUDPClientSocket::GetLocalAddress( - IPEndPoint* address) const { - IPAddressNumber ip; - bool rv = ParseIPLiteralToNumber("192.0.2.33", &ip); - CHECK(rv); - *address = IPEndPoint(ip, source_port_); - return OK; -} - -const BoundNetLog& DeterministicMockUDPClientSocket::NetLog() const { - return helper_.net_log(); -} - DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( net::NetLog* net_log, DeterministicSocketData* data) @@ -2149,14 +2051,8 @@ DeterministicMockClientSocketFactory::CreateDatagramClientSocket( const RandIntCallback& rand_int_cb, NetLog* net_log, const NetLog::Source& source) { - DeterministicSocketData* data_provider = mock_data().GetNext(); - scoped_ptr<DeterministicMockUDPClientSocket> socket( - new DeterministicMockUDPClientSocket(net_log, data_provider)); - data_provider->set_delegate(socket->AsWeakPtr()); - udp_client_sockets().push_back(socket.get()); - if (bind_type == DatagramSocket::RANDOM_BIND) - socket->set_source_port(static_cast<uint16>(rand_int_cb.Run(1025, 65535))); - return socket.Pass(); + NOTREACHED(); + return nullptr; } scoped_ptr<StreamSocket> diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h index 6a77195..73e73a0 100644 --- a/net/socket/socket_test_util.h +++ b/net/socket/socket_test_util.h @@ -665,9 +665,16 @@ class MockClientSocketFactory : public ClientSocketFactory { const SSLClientSocketContext& context) override; void ClearSSLSessionCache() override; + const std::vector<uint16>& udp_client_socket_ports() const { + return udp_client_socket_ports_; + } + private: SocketDataProviderArray<SocketDataProvider> mock_data_; SocketDataProviderArray<SSLSocketDataProvider> mock_ssl_data_; + std::vector<uint16> udp_client_socket_ports_; + + DISALLOW_COPY_AND_ASSIGN(MockClientSocketFactory); }; class MockClientSocket : public SSLClientSocket { @@ -845,55 +852,6 @@ class DeterministicSocketHelper { BoundNetLog net_log_; }; -// Mock UDP socket to be used in conjunction with DeterministicSocketData. -class DeterministicMockUDPClientSocket - : public DatagramClientSocket, - public DeterministicSocketData::Delegate, - public base::SupportsWeakPtr<DeterministicMockUDPClientSocket> { - public: - DeterministicMockUDPClientSocket(net::NetLog* net_log, - DeterministicSocketData* data); - ~DeterministicMockUDPClientSocket() override; - - // DeterministicSocketData::Delegate: - bool WritePending() const override; - bool ReadPending() const override; - void CompleteWrite() override; - int CompleteRead() override; - - // Socket implementation. - int Read(IOBuffer* buf, - int buf_len, - const CompletionCallback& callback) override; - int Write(IOBuffer* buf, - int buf_len, - const CompletionCallback& callback) override; - int SetReceiveBufferSize(int32 size) override; - int SetSendBufferSize(int32 size) override; - - // DatagramSocket implementation. - void Close() override; - int GetPeerAddress(IPEndPoint* address) const override; - int GetLocalAddress(IPEndPoint* address) const override; - const BoundNetLog& NetLog() const override; - - // DatagramClientSocket implementation. - int BindToNetwork(NetworkChangeNotifier::NetworkHandle network) override; - int BindToDefaultNetwork() override; - NetworkChangeNotifier::NetworkHandle GetBoundNetwork() override; - int Connect(const IPEndPoint& address) override; - - void set_source_port(uint16 port) { source_port_ = port; } - - private: - bool connected_; - IPEndPoint peer_address_; - DeterministicSocketHelper helper_; - uint16 source_port_; // Ephemeral source port. - - DISALLOW_COPY_AND_ASSIGN(DeterministicMockUDPClientSocket); -}; - // Mock TCP socket to be used in conjunction with DeterministicSocketData. class DeterministicMockTCPClientSocket : public MockClientSocket, @@ -1020,6 +978,7 @@ class MockUDPClientSocket : public DatagramClientSocket, public AsyncSocket { void OnDataProviderDestroyed() override; void set_source_port(uint16 port) { source_port_ = port;} + uint16 source_port() const { return source_port_; } private: int CompleteRead(); @@ -1224,9 +1183,6 @@ class DeterministicMockClientSocketFactory : public ClientSocketFactory { std::vector<DeterministicMockTCPClientSocket*>& tcp_client_sockets() { return tcp_client_sockets_; } - std::vector<DeterministicMockUDPClientSocket*>& udp_client_sockets() { - return udp_client_sockets_; - } // ClientSocketFactory scoped_ptr<DatagramClientSocket> CreateDatagramClientSocket( @@ -1251,7 +1207,6 @@ class DeterministicMockClientSocketFactory : public ClientSocketFactory { // Store pointers to handed out sockets in case the test wants to get them. std::vector<DeterministicMockTCPClientSocket*> tcp_client_sockets_; - std::vector<DeterministicMockUDPClientSocket*> udp_client_sockets_; std::vector<MockSSLClientSocket*> ssl_client_sockets_; DISALLOW_COPY_AND_ASSIGN(DeterministicMockClientSocketFactory); |