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

Unified Diff: native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc

Issue 23498015: [NaCl SDK] Support non blocking TCP/UDP (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 7 years, 3 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
Index: native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc
diff --git a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc
index fe22ae18e03452aabacf4dee31dd011ebb16d8b9..e9391d0595746ef760a64fd8b19849b18c0bc284 100644
--- a/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc
+++ b/native_client_sdk/src/tests/nacl_io_socket_test/socket_test.cc
@@ -174,8 +174,47 @@ TEST_F(SocketTestUDP, SendRcv) {
EXPECT_EQ(0, memcmp(outbuf, inbuf, sizeof(outbuf)));
}
-#if 0
-TEST_F(SocketTestTCP, Connect) {
+const size_t queue_size = 65536 * 8;
+TEST_F(SocketTestUDP, FullFifo) {
+ char outbuf[16 * 1024];
+
+ EXPECT_EQ(Bind(sock1, LOCAL_HOST, PORT1), ENONE);
+ EXPECT_EQ(Bind(sock2, LOCAL_HOST, PORT2), ENONE);
+
+ sockaddr_in addr;
+ socklen_t addrlen = sizeof(addr);
+ IP4ToSockAddr(LOCAL_HOST, PORT2, &addr);
+
+ size_t total = 0;
+ while (total < queue_size * 8) {
+ int len = sendto(sock1, outbuf, sizeof(outbuf), MSG_DONTWAIT,
+ (sockaddr *) &addr, addrlen);
+
+ if (len <= 0) {
+ EXPECT_EQ(-1, len);
+ EXPECT_EQ(errno, EWOULDBLOCK);
+ break;
+ }
+
+ if (len >= 0) {
+ EXPECT_EQ(sizeof(outbuf), len);
+ total += len;
+ }
+
+ }
+ EXPECT_GT(total, queue_size -1);
+ EXPECT_LT(total, queue_size * 8);
+}
+
+// TODO(noelallen) BUG=294412
+// Re-enable testing on bots when server sockets are available.
+TEST_F(SocketTestTCP, DISABLED_Connect) {
+ char outbuf[256];
+ char inbuf[512];
+
+ memset(outbuf, 1, sizeof(outbuf));
+ memset(inbuf, 0, sizeof(inbuf));
+
int sock = socket(AF_INET, SOCK_STREAM, 0);
EXPECT_NE(-1, sock);
@@ -184,8 +223,14 @@ TEST_F(SocketTestTCP, Connect) {
IP4ToSockAddr(LOCAL_HOST, PORT1, &addr);
int err = connect(sock, (sockaddr*) &addr, addrlen);
+
EXPECT_EQ(ENONE, err) << "Failed with errno: " << errno << "\n";
+
+ EXPECT_EQ(sizeof(outbuf), write(sock, outbuf, sizeof(outbuf)));
+ EXPECT_EQ(sizeof(outbuf), read(sock, inbuf, sizeof(inbuf)));
+
+ // Now they should be the same
+ EXPECT_EQ(0, memcmp(outbuf, inbuf, sizeof(outbuf)));
}
-#endif
-#endif // PROVIDES_SOCKETPAIR_API
+#endif // PROVIDES_SOCKET_API
« no previous file with comments | « native_client_sdk/src/tests/nacl_io_socket_test/event_test.cc ('k') | native_client_sdk/src/tests/nacl_io_test/event_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698