summaryrefslogtreecommitdiffstats
path: root/net/base/tcp_client_socket_unittest.cc
diff options
context:
space:
mode:
authorwtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-30 17:32:12 +0000
committerwtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-30 17:32:12 +0000
commit085ae9601431b16db2d143ac0acea8dc6d4801e7 (patch)
tree10551672cfc61afa6b80b8a0959e85d57320a768 /net/base/tcp_client_socket_unittest.cc
parentab9279f87987825e5c40c12fef7fc22c4ceb0301 (diff)
downloadchromium_src-085ae9601431b16db2d143ac0acea8dc6d4801e7.zip
chromium_src-085ae9601431b16db2d143ac0acea8dc6d4801e7.tar.gz
chromium_src-085ae9601431b16db2d143ac0acea8dc6d4801e7.tar.bz2
Document that the callback parameter of
HostResolver::Resolve can be null. In tcp_client_socket_unittest.cc, allow sock.Connect to succeed synchronously. Break out of the infinite loop if sock.Read fails. R=darin git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/tcp_client_socket_unittest.cc')
-rw-r--r--net/base/tcp_client_socket_unittest.cc54
1 files changed, 32 insertions, 22 deletions
diff --git a/net/base/tcp_client_socket_unittest.cc b/net/base/tcp_client_socket_unittest.cc
index b0de697..f780783 100644
--- a/net/base/tcp_client_socket_unittest.cc
+++ b/net/base/tcp_client_socket_unittest.cc
@@ -28,8 +28,8 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "net/base/address_list.h"
-#include "net/base/net_errors.h"
#include "net/base/host_resolver.h"
+#include "net/base/net_errors.h"
#include "net/base/tcp_client_socket.h"
#include "net/base/test_completion_callback.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -58,10 +58,12 @@ TEST_F(TCPClientSocketTest, Connect) {
EXPECT_FALSE(sock.IsConnected());
rv = sock.Connect(&callback);
- ASSERT_EQ(rv, net::ERR_IO_PENDING);
+ if (rv != net::OK) {
+ ASSERT_EQ(rv, net::ERR_IO_PENDING);
- rv = callback.WaitForResult();
- EXPECT_EQ(rv, net::OK);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(rv, net::OK);
+ }
EXPECT_TRUE(sock.IsConnected());
@@ -83,18 +85,20 @@ TEST_F(TCPClientSocketTest, Read) {
net::TCPClientSocket sock(addr);
rv = sock.Connect(&callback);
- ASSERT_EQ(rv, net::ERR_IO_PENDING);
+ if (rv != net::OK) {
+ ASSERT_EQ(rv, net::ERR_IO_PENDING);
- rv = callback.WaitForResult();
- EXPECT_EQ(rv, net::OK);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(rv, net::OK);
+ }
const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
- rv = sock.Write(request_text, arraysize(request_text)-1, &callback);
+ rv = sock.Write(request_text, arraysize(request_text) - 1, &callback);
EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
if (rv == net::ERR_IO_PENDING) {
rv = callback.WaitForResult();
- EXPECT_EQ(rv, arraysize(request_text)-1);
+ EXPECT_EQ(rv, arraysize(request_text) - 1);
}
char buf[4096];
@@ -105,7 +109,8 @@ TEST_F(TCPClientSocketTest, Read) {
if (rv == net::ERR_IO_PENDING)
rv = callback.WaitForResult();
- if (rv == 0)
+ EXPECT_GE(rv, 0);
+ if (rv <= 0)
break;
}
}
@@ -121,18 +126,20 @@ TEST_F(TCPClientSocketTest, Read_SmallChunks) {
net::TCPClientSocket sock(addr);
rv = sock.Connect(&callback);
- ASSERT_EQ(rv, net::ERR_IO_PENDING);
+ if (rv != net::OK) {
+ ASSERT_EQ(rv, net::ERR_IO_PENDING);
- rv = callback.WaitForResult();
- EXPECT_EQ(rv, net::OK);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(rv, net::OK);
+ }
const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
- rv = sock.Write(request_text, arraysize(request_text)-1, &callback);
+ rv = sock.Write(request_text, arraysize(request_text) - 1, &callback);
EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
if (rv == net::ERR_IO_PENDING) {
rv = callback.WaitForResult();
- EXPECT_EQ(rv, arraysize(request_text)-1);
+ EXPECT_EQ(rv, arraysize(request_text) - 1);
}
char buf[1];
@@ -143,7 +150,8 @@ TEST_F(TCPClientSocketTest, Read_SmallChunks) {
if (rv == net::ERR_IO_PENDING)
rv = callback.WaitForResult();
- if (rv == 0)
+ EXPECT_GE(rv, 0);
+ if (rv <= 0)
break;
}
}
@@ -159,18 +167,20 @@ TEST_F(TCPClientSocketTest, Read_Interrupted) {
net::TCPClientSocket sock(addr);
rv = sock.Connect(&callback);
- ASSERT_EQ(rv, net::ERR_IO_PENDING);
+ if (rv != net::OK) {
+ ASSERT_EQ(rv, net::ERR_IO_PENDING);
- rv = callback.WaitForResult();
- EXPECT_EQ(rv, net::OK);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(rv, net::OK);
+ }
const char request_text[] = "GET / HTTP/1.0\r\n\r\n";
- rv = sock.Write(request_text, arraysize(request_text)-1, &callback);
+ rv = sock.Write(request_text, arraysize(request_text) - 1, &callback);
EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
if (rv == net::ERR_IO_PENDING) {
rv = callback.WaitForResult();
- EXPECT_EQ(rv, arraysize(request_text)-1);
+ EXPECT_EQ(rv, arraysize(request_text) - 1);
}
// Do a partial read and then exit. This test should not crash!
@@ -181,5 +191,5 @@ TEST_F(TCPClientSocketTest, Read_Interrupted) {
if (rv == net::ERR_IO_PENDING)
rv = callback.WaitForResult();
- EXPECT_TRUE(rv != 0);
+ EXPECT_NE(rv, 0);
}