Index: net/socket/ssl_server_socket_unittest.cc |
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc |
index 9da10f6bbd07656f90ac2bdf8484e53ead09a35f..5b82fcf4931d8512f32b3a1f58f5d75de26580a9 100644 |
--- a/net/socket/ssl_server_socket_unittest.cc |
+++ b/net/socket/ssl_server_socket_unittest.cc |
@@ -62,6 +62,8 @@ class FakeDataChannel { |
} |
int Read(IOBuffer* buf, int buf_len, const CompletionCallback& callback) { |
+ DCHECK(read_callback_.is_null()); |
+ DCHECK(!read_buf_); |
if (closed_) |
return 0; |
if (data_.empty()) { |
@@ -74,6 +76,7 @@ class FakeDataChannel { |
} |
int Write(IOBuffer* buf, int buf_len, const CompletionCallback& callback) { |
+ DCHECK(write_callback_.is_null()); |
if (closed_) { |
if (write_called_after_close_) |
return net::ERR_CONNECTION_RESET; |
@@ -84,7 +87,10 @@ class FakeDataChannel { |
weak_factory_.GetWeakPtr())); |
return net::ERR_IO_PENDING; |
} |
- data_.push(new net::DrainableIOBuffer(buf, buf_len)); |
+ // This function returns synchronously, so make a copy of the buffer. |
+ data_.push(new net::DrainableIOBuffer( |
+ new net::StringIOBuffer(std::string(buf->data(), buf_len)), |
+ buf_len)); |
base::MessageLoop::current()->PostTask( |
FROM_HERE, base::Bind(&FakeDataChannel::DoReadCallback, |
weak_factory_.GetWeakPtr())); |
@@ -477,17 +483,11 @@ TEST_F(SSLServerSocketTest, DataTransfer) { |
EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size())); |
} |
-// Flaky on Android: http://crbug.com/381147 |
-#if defined(OS_ANDROID) |
-#define MAYBE_ClientWriteAfterServerClose DISABLED_ClientWriteAfterServerClose |
-#else |
-#define MAYBE_ClientWriteAfterServerClose ClientWriteAfterServerClose |
-#endif |
// A regression test for bug 127822 (http://crbug.com/127822). |
// If the server closes the connection after the handshake is finished, |
// the client's Write() call should not cause an infinite loop. |
// NOTE: this is a test for SSLClientSocket rather than SSLServerSocket. |
-TEST_F(SSLServerSocketTest, MAYBE_ClientWriteAfterServerClose) { |
+TEST_F(SSLServerSocketTest, ClientWriteAfterServerClose) { |
Initialize(); |
TestCompletionCallback connect_callback; |