Index: net/quic/chromium/quic_chromium_client_session_test.cc |
diff --git a/net/quic/chromium/quic_chromium_client_session_test.cc b/net/quic/chromium/quic_chromium_client_session_test.cc |
index 7a70a16dd5259bf0b1423a1b8b8e8099fa399f10..fccc1693902430c564b67b9bc65c67cc15bd24c6 100644 |
--- a/net/quic/chromium/quic_chromium_client_session_test.cc |
+++ b/net/quic/chromium/quic_chromium_client_session_test.cc |
@@ -8,6 +8,7 @@ |
#include "base/files/file_path.h" |
#include "base/memory/ptr_util.h" |
#include "base/rand_util.h" |
+#include "base/run_loop.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "net/base/test_completion_callback.h" |
#include "net/cert/cert_verify_result.h" |
@@ -426,9 +427,10 @@ TEST_P(QuicChromiumClientSessionTest, MigrateToSocket) { |
CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); |
// Migrate session. |
- EXPECT_TRUE(session_->MigrateToSocket(std::move(new_socket), |
- std::move(new_reader), |
- std::move(new_writer), nullptr)); |
+ EXPECT_TRUE(session_->MigrateToSocket( |
+ std::move(new_socket), std::move(new_reader), std::move(new_writer))); |
+ // Spin message loop to complete migration. |
+ base::RunLoop().RunUntilIdle(); |
// Write data to session. |
QuicChromiumClientStream* stream = |
@@ -476,17 +478,16 @@ TEST_P(QuicChromiumClientSessionTest, MigrateToSocketMaxReaders) { |
// Migrate session. |
if (i < kMaxReadersPerQuicSession - 1) { |
- EXPECT_TRUE(session_->MigrateToSocket(std::move(new_socket), |
- std::move(new_reader), |
- std::move(new_writer), nullptr)); |
+ EXPECT_TRUE(session_->MigrateToSocket( |
+ std::move(new_socket), std::move(new_reader), std::move(new_writer))); |
+ // Spin message loop to complete migration. |
+ base::RunLoop().RunUntilIdle(); |
EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
} else { |
// Max readers exceeded. |
- EXPECT_FALSE(session_->MigrateToSocket(std::move(new_socket), |
- std::move(new_reader), |
- std::move(new_writer), nullptr)); |
- |
+ EXPECT_FALSE(session_->MigrateToSocket( |
+ std::move(new_socket), std::move(new_reader), std::move(new_writer))); |
EXPECT_FALSE(socket_data.AllReadDataConsumed()); |
EXPECT_FALSE(socket_data.AllWriteDataConsumed()); |
} |
@@ -537,9 +538,10 @@ TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) { |
CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); |
// Store old socket and migrate session. |
- EXPECT_TRUE(session_->MigrateToSocket(std::move(new_socket), |
- std::move(new_reader), |
- std::move(new_writer), nullptr)); |
+ EXPECT_TRUE(session_->MigrateToSocket( |
+ std::move(new_socket), std::move(new_reader), std::move(new_writer))); |
+ // Spin message loop to complete migration. |
+ base::RunLoop().RunUntilIdle(); |
// Read error on old socket does not impact session. |
EXPECT_TRUE(socket_data_->IsPaused()); |
@@ -560,50 +562,6 @@ TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) { |
EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); |
} |
-TEST_P(QuicChromiumClientSessionTest, MigrateToSocketWriteError) { |
- Initialize(); |
- CompleteCryptoHandshake(); |
- |
- std::unique_ptr<QuicEncryptedPacket> ping( |
- client_maker_.MakePingPacket(1, /*include_version=*/true)); |
- MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
- MockWrite writes[] = {MockWrite(SYNCHRONOUS, ping->data(), ping->length(), 1), |
- MockWrite(SYNCHRONOUS, ERR_FAILED, 2)}; |
- SequencedSocketData socket_data(reads, arraysize(reads), writes, |
- arraysize(writes)); |
- socket_factory_.AddSocketDataProvider(&socket_data); |
- |
- // Create connected socket. |
- std::unique_ptr<DatagramClientSocket> new_socket = |
- socket_factory_.CreateDatagramClientSocket(DatagramSocket::DEFAULT_BIND, |
- base::Bind(&base::RandInt), |
- &net_log_, NetLog::Source()); |
- EXPECT_THAT(new_socket->Connect(kIpEndPoint), IsOk()); |
- |
- // Create reader and writer. |
- std::unique_ptr<QuicChromiumPacketReader> new_reader( |
- new QuicChromiumPacketReader(new_socket.get(), &clock_, session_.get(), |
- kQuicYieldAfterPacketsRead, |
- QuicTime::Delta::FromMilliseconds( |
- kQuicYieldAfterDurationMilliseconds), |
- bound_net_log_.bound())); |
- std::unique_ptr<QuicChromiumPacketWriter> new_writer( |
- CreateQuicChromiumPacketWriter(new_socket.get(), session_.get())); |
- |
- // Migrate session. |
- EXPECT_TRUE(session_->MigrateToSocket(std::move(new_socket), |
- std::move(new_reader), |
- std::move(new_writer), nullptr)); |
- |
- // Write error on new socket causes session close. |
- EXPECT_TRUE(session_->connection()->connected()); |
- session_->connection()->SendPing(); |
- EXPECT_FALSE(session_->connection()->connected()); |
- |
- EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
- EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
-} |
- |
} // namespace |
} // namespace test |
} // namespace net |