Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1474)

Unified Diff: net/socket/tcp_socket_unittest.cc

Issue 236203018: win: Implement Bluetooth server. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/base/net_util.cc ('k') | net/socket/tcp_socket_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/tcp_socket_unittest.cc
diff --git a/net/socket/tcp_socket_unittest.cc b/net/socket/tcp_socket_unittest.cc
index a45fcba016bcd05172ca022c93b4a5b843de5a79..f540e8e099bf5520b2b87f6ac66a124a74bccbdc 100644
--- a/net/socket/tcp_socket_unittest.cc
+++ b/net/socket/tcp_socket_unittest.cc
@@ -64,6 +64,28 @@ class TCPSocketTest : public PlatformTest {
*address = IPEndPoint(ip_number, port);
}
+ void TestAcceptAsync() {
+ TestCompletionCallback accept_callback;
+ scoped_ptr<TCPSocket> accepted_socket;
+ IPEndPoint accepted_address;
+ ASSERT_EQ(ERR_IO_PENDING,
+ socket_.Accept(&accepted_socket, &accepted_address,
+ accept_callback.callback()));
+
+ TestCompletionCallback connect_callback;
+ TCPClientSocket connecting_socket(local_address_list(),
+ NULL, NetLog::Source());
+ connecting_socket.Connect(connect_callback.callback());
+
+ EXPECT_EQ(OK, connect_callback.WaitForResult());
+ EXPECT_EQ(OK, accept_callback.WaitForResult());
+
+ EXPECT_TRUE(accepted_socket.get());
+
+ // Both sockets should be on the loopback network interface.
+ EXPECT_EQ(accepted_address.address(), local_address_.address());
+ }
+
AddressList local_address_list() const {
return AddressList(local_address_);
}
@@ -103,27 +125,28 @@ TEST_F(TCPSocketTest, Accept) {
// Test Accept() callback.
TEST_F(TCPSocketTest, AcceptAsync) {
ASSERT_NO_FATAL_FAILURE(SetUpListenIPv4());
+ TestAcceptAsync();
+}
- TestCompletionCallback accept_callback;
- scoped_ptr<TCPSocket> accepted_socket;
- IPEndPoint accepted_address;
- ASSERT_EQ(ERR_IO_PENDING,
- socket_.Accept(&accepted_socket, &accepted_address,
- accept_callback.callback()));
+#if defined(OS_WIN)
+// Test Accept() for AdoptListenSocket.
+TEST_F(TCPSocketTest, AcceptForAdoptedListenSocket) {
+ // Create a socket to be used with AdoptListenSocket.
+ SOCKET existing_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ ASSERT_EQ(OK, socket_.AdoptListenSocket(existing_socket));
- TestCompletionCallback connect_callback;
- TCPClientSocket connecting_socket(local_address_list(),
- NULL, NetLog::Source());
- connecting_socket.Connect(connect_callback.callback());
+ IPEndPoint address;
+ ParseAddress("127.0.0.1", 0, &address);
+ SockaddrStorage storage;
+ ASSERT_TRUE(address.ToSockAddr(storage.addr, &storage.addr_len));
+ ASSERT_EQ(0, bind(existing_socket, storage.addr, storage.addr_len));
- EXPECT_EQ(OK, connect_callback.WaitForResult());
- EXPECT_EQ(OK, accept_callback.WaitForResult());
+ ASSERT_EQ(OK, socket_.Listen(kListenBacklog));
+ ASSERT_EQ(OK, socket_.GetLocalAddress(&local_address_));
- EXPECT_TRUE(accepted_socket.get());
-
- // Both sockets should be on the loopback network interface.
- EXPECT_EQ(accepted_address.address(), local_address_.address());
+ TestAcceptAsync();
}
+#endif
// Accept two connections simultaneously.
TEST_F(TCPSocketTest, Accept2Connections) {
« no previous file with comments | « net/base/net_util.cc ('k') | net/socket/tcp_socket_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698