| Index: net/socket/ssl_server_socket_unittest.cc
|
| ===================================================================
|
| --- net/socket/ssl_server_socket_unittest.cc (revision 97070)
|
| +++ net/socket/ssl_server_socket_unittest.cc (working copy)
|
| @@ -361,17 +361,17 @@
|
| int server_ret = server_socket_->Handshake(&handshake_callback);
|
| ASSERT_TRUE(server_ret == net::OK || server_ret == net::ERR_IO_PENDING);
|
|
|
| - if (client_ret == net::ERR_IO_PENDING) {
|
| - ASSERT_EQ(net::OK, connect_callback.WaitForResult());
|
| - }
|
| - if (server_ret == net::ERR_IO_PENDING) {
|
| - ASSERT_EQ(net::OK, handshake_callback.WaitForResult());
|
| - }
|
| + client_ret = connect_callback.GetResult(client_ret);
|
| + ASSERT_EQ(net::OK, client_ret);
|
| + server_ret = handshake_callback.GetResult(server_ret);
|
| + ASSERT_EQ(net::OK, server_ret);
|
|
|
| const int kReadBufSize = 1024;
|
| scoped_refptr<net::StringIOBuffer> write_buf =
|
| new net::StringIOBuffer("testing123");
|
| - scoped_refptr<net::IOBuffer> read_buf = new net::IOBuffer(kReadBufSize);
|
| + scoped_refptr<net::DrainableIOBuffer> read_buf =
|
| + new net::DrainableIOBuffer(new net::IOBuffer(kReadBufSize),
|
| + kReadBufSize);
|
|
|
| // Write then read.
|
| TestCompletionCallback write_callback;
|
| @@ -379,31 +379,53 @@
|
| server_ret = server_socket_->Write(write_buf, write_buf->size(),
|
| &write_callback);
|
| EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
|
| - client_ret = client_socket_->Read(read_buf, kReadBufSize, &read_callback);
|
| + client_ret = client_socket_->Read(read_buf, read_buf->BytesRemaining(),
|
| + &read_callback);
|
| EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
|
|
|
| - if (server_ret == net::ERR_IO_PENDING) {
|
| - EXPECT_GT(write_callback.WaitForResult(), 0);
|
| + server_ret = write_callback.GetResult(server_ret);
|
| + EXPECT_GT(server_ret, 0);
|
| + client_ret = read_callback.GetResult(client_ret);
|
| + ASSERT_GT(client_ret, 0);
|
| +
|
| + read_buf->DidConsume(client_ret);
|
| + while (read_buf->BytesConsumed() < write_buf->size()) {
|
| + client_ret = client_socket_->Read(read_buf, read_buf->BytesRemaining(),
|
| + &read_callback);
|
| + EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
|
| + client_ret = read_callback.GetResult(client_ret);
|
| + ASSERT_GT(client_ret, 0);
|
| + read_buf->DidConsume(client_ret);
|
| }
|
| - if (client_ret == net::ERR_IO_PENDING) {
|
| - EXPECT_GT(read_callback.WaitForResult(), 0);
|
| - }
|
| + EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed());
|
| + read_buf->SetOffset(0);
|
| EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size()));
|
|
|
| // Read then write.
|
| write_buf = new net::StringIOBuffer("hello123");
|
| - server_ret = server_socket_->Read(read_buf, kReadBufSize, &read_callback);
|
| + server_ret = server_socket_->Read(read_buf, read_buf->BytesRemaining(),
|
| + &read_callback);
|
| EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
|
| client_ret = client_socket_->Write(write_buf, write_buf->size(),
|
| &write_callback);
|
| EXPECT_TRUE(client_ret > 0 || client_ret == net::ERR_IO_PENDING);
|
|
|
| - if (server_ret == net::ERR_IO_PENDING) {
|
| - EXPECT_GT(read_callback.WaitForResult(), 0);
|
| + server_ret = read_callback.GetResult(server_ret);
|
| + ASSERT_GT(server_ret, 0);
|
| + client_ret = write_callback.GetResult(client_ret);
|
| + EXPECT_GT(client_ret, 0);
|
| +
|
| + read_buf->DidConsume(server_ret);
|
| + while (read_buf->BytesConsumed() < write_buf->size()) {
|
| + server_ret = server_socket_->Read(read_buf, read_buf->BytesRemaining(),
|
| + &read_callback);
|
| + EXPECT_TRUE(server_ret > 0 || server_ret == net::ERR_IO_PENDING);
|
| + server_ret = read_callback.GetResult(server_ret);
|
| + ASSERT_GT(server_ret, 0);
|
| + read_buf->DidConsume(server_ret);
|
| }
|
| - if (client_ret == net::ERR_IO_PENDING) {
|
| - EXPECT_GT(write_callback.WaitForResult(), 0);
|
| - }
|
| + EXPECT_EQ(write_buf->size(), read_buf->BytesConsumed());
|
| + read_buf->SetOffset(0);
|
| EXPECT_EQ(0, memcmp(write_buf->data(), read_buf->data(), write_buf->size()));
|
| }
|
|
|
|
|