Akihiro Sagawa : ws2_32/tests: Add ioctlsocket(FIONREAD) tests with listening socket.

Alexandre Julliard julliard at winehq.org
Tue Feb 27 17:29:34 CST 2018


Module: wine
Branch: master
Commit: 13b66d3d1c34c6f366b1a255d993d4ac5d6b19b6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=13b66d3d1c34c6f366b1a255d993d4ac5d6b19b6

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Sun Feb 25 15:01:03 2018 +0900

ws2_32/tests: Add ioctlsocket(FIONREAD) tests with listening socket.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ws2_32/tests/sock.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 7c55c21..06ba3f0 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -5120,6 +5120,7 @@ static void test_ioctlsocket(void)
 {
     SOCKET sock, src, dst;
     struct tcp_keepalive kalive;
+    struct sockaddr_in address;
     int ret, optval;
     static const LONG cmds[] = {FIONBIO, FIONREAD, SIOCATMARK};
     UINT i, bytes_rec;
@@ -5205,6 +5206,38 @@ static void test_ioctlsocket(void)
 
     closesocket(sock);
 
+    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+    ok(sock != INVALID_SOCKET, "Creating the socket failed: %d\n", WSAGetLastError());
+    if(sock == INVALID_SOCKET)
+    {
+        skip("Can't continue without a socket.\n");
+        return;
+    }
+
+    /* test FIONREAD with a fresh and non-connected socket */
+    arg = 0xdeadbeef;
+    ret = ioctlsocket(sock, FIONREAD, &arg);
+    ok(ret == 0, "ioctlsocket failed unexpectedly with error %d\n", WSAGetLastError());
+    ok(arg == 0, "expected 0, got %u\n", arg);
+
+    memset(&address, 0, sizeof(address));
+    address.sin_family = AF_INET;
+    address.sin_addr.s_addr = inet_addr( SERVERIP );
+    address.sin_port = htons( SERVERPORT );
+    ret = bind(sock, (struct sockaddr *)&address, sizeof(address));
+    ok(ret == 0, "bind failed unexpectedly with error %d\n", WSAGetLastError());
+
+    ret = listen(sock, SOMAXCONN);
+    ok(ret == 0, "listen failed unexpectedly with error %d\n", WSAGetLastError());
+
+    /* test FIONREAD with listening socket */
+    arg = 0xdeadbeef;
+    ret = ioctlsocket(sock, FIONREAD, &arg);
+    todo_wine ok(ret == 0, "ioctlsocket failed unexpectedly with error %d\n", WSAGetLastError());
+    todo_wine ok(arg == 0, "expected 0, got %u\n", arg);
+
+    closesocket(sock);
+
     if (tcp_socketpair(&src, &dst) != 0)
     {
         ok(0, "creating socket pair failed, skipping test\n");




More information about the wine-cvs mailing list