Module: wine Branch: master Commit: 13b66d3d1c34c6f366b1a255d993d4ac5d6b19b6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=13b66d3d1c34c6f366b1a255d...
Author: Akihiro Sagawa sagawa.aki@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@gmail.com Signed-off-by: Alexandre Julliard julliard@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");