Akihiro Sagawa : ws2_32/tests: Add ioctlsocket(FIONREAD) tests with listening socket.
Alexandre Julliard
julliard at winehq.org
Mon May 14 06:54:24 CDT 2018
Module: wine
Branch: stable
Commit: 7424748dc89f2c6afdd98eab30ca25e74dcef689
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7424748dc89f2c6afdd98eab30ca25e74dcef689
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>
(cherry picked from commit 13b66d3d1c34c6f366b1a255d993d4ac5d6b19b6)
Signed-off-by: Michael Stefaniuc <mstefani 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 96631ae..ae58401 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