Zebediah Figura : ws2_32/tests: Fix some connection timeout tests.
Alexandre Julliard
julliard at winehq.org
Tue Jul 6 18:09:34 CDT 2021
Module: wine
Branch: master
Commit: 65dee2d28c0198cedafae9a79aa07e07f94945ca
URL: https://source.winehq.org/git/wine.git/?a=commit;h=65dee2d28c0198cedafae9a79aa07e07f94945ca
Author: Zebediah Figura <zfigura at codeweavers.com>
Date: Mon Jul 5 19:14:15 2021 -0500
ws2_32/tests: Fix some connection timeout tests.
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ws2_32/tests/afd.c | 6 ++++--
dlls/ws2_32/tests/sock.c | 30 ++++++++++++++++++++++--------
2 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/dlls/ws2_32/tests/afd.c b/dlls/ws2_32/tests/afd.c
index 8f7f4acf4f2..2637630ce8d 100644
--- a/dlls/ws2_32/tests/afd.c
+++ b/dlls/ws2_32/tests/afd.c
@@ -448,7 +448,8 @@ static void test_poll(void)
addr.sin_port = 255;
ret = connect(client, (struct sockaddr *)&addr, sizeof(addr));
- ok(!ret || WSAGetLastError() == WSAEWOULDBLOCK, "got error %u\n", WSAGetLastError());
+ ok(ret == -1, "got %d\n", ret);
+ ok(WSAGetLastError() == WSAEWOULDBLOCK, "got error %u\n", WSAGetLastError());
ret = WaitForSingleObject(event, 10000);
ok(!ret, "got %#x\n", ret);
@@ -474,6 +475,7 @@ static void test_poll(void)
server = accept(listener, NULL, NULL);
ok(server != -1, "got error %u\n", WSAGetLastError());
+ in_params->timeout = -1000 * 10000;
in_params->count = 2;
in_params->sockets[0].socket = client;
in_params->sockets[0].flags = AFD_POLL_READ;
@@ -1310,7 +1312,7 @@ static void test_get_events(void)
ok(ret == -1, "expected failure\n");
ok(WSAGetLastError() == WSAEWOULDBLOCK, "got error %u\n", WSAGetLastError());
- ret = WaitForSingleObject(event, 2000);
+ ret = WaitForSingleObject(event, 10000);
ok(!ret, "got %#x\n", ret);
memset(¶ms, 0xcc, sizeof(params));
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 8617a6fb7e3..1fd75dc40d8 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -3252,17 +3252,20 @@ static void test_select(void)
FD_SET(fdWrite, &exceptfds);
select_timeout.tv_sec = 10;
ret = select(0, &readfds, &writefds, &exceptfds, &select_timeout);
- ok(ret == 1, "expected 1, got %d\n", ret);
+ todo_wine ok(ret == 1, "expected 1, got %d\n", ret);
len = sizeof(id);
id = 0xdeadbeef;
ret = getsockopt(fdWrite, SOL_SOCKET, SO_ERROR, (char*)&id, &len);
ok(!ret, "getsockopt failed with %d\n", WSAGetLastError());
- ok(id == WSAECONNREFUSED, "expected 10061, got %d\n", id);
- ok(FD_ISSET(fdWrite, &exceptfds), "fdWrite socket is not in the set\n");
+ todo_wine ok(id == WSAECONNREFUSED, "got error %u\n", id);
+ todo_wine ok(FD_ISSET(fdWrite, &exceptfds), "fdWrite socket is not in the set\n");
ok(select_timeout.tv_usec == 250000, "select timeout should not have changed\n");
closesocket(fdWrite);
}
+ select_timeout.tv_sec = 1;
+ select_timeout.tv_usec = 250000;
+
/* Try select() on a closed socket after connection */
tcp_socketpair(&fdRead, &fdWrite);
closesocket(fdRead);
@@ -6372,22 +6375,33 @@ static void test_WSAPoll(void)
* so make the test interactive-only. */
if (winetest_interactive)
{
- const struct sockaddr_in invalid_addr = {.sin_family = AF_INET, .sin_addr.s_addr = inet_addr("192.0.2.0")};
+ const struct sockaddr_in invalid_addr =
+ {
+ .sin_family = AF_INET,
+ .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
+ .sin_port = 255,
+ };
+ SOCKET client;
- client = setup_connector_socket(&invalid_addr, sizeof(invalid_addr), TRUE);
+ client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ set_blocking(client, FALSE);
+
+ ret = connect(client, (const struct sockaddr *)&invalid_addr, sizeof(invalid_addr));
+ ok(ret == -1, "got %d\n", ret);
+ ok(WSAGetLastError() == WSAEWOULDBLOCK, "got error %u\n", WSAGetLastError());
fds[0].fd = client;
fds[0].events = POLLRDNORM | POLLRDBAND | POLLWRNORM;
fds[0].revents = 0xdead;
ret = pWSAPoll(fds, 1, 10000);
- ok(ret == 1, "got %d\n", ret);
- ok(fds[0].revents == POLLERR, "got events %#x\n", fds[0].revents);
+ todo_wine ok(ret == 1, "got %d\n", ret);
+ todo_wine ok(fds[0].revents == (POLLWRNORM | POLLHUP | POLLERR), "got events %#x\n", fds[0].revents);
len = sizeof(err);
err = 0xdeadbeef;
ret = getsockopt(client, SOL_SOCKET, SO_ERROR, (char *)&err, &len);
ok(!ret, "getsockopt failed with %d\n", WSAGetLastError());
- ok(err == WSAECONNREFUSED, "expected 10061, got %d\n", err);
+ todo_wine ok(err == WSAECONNREFUSED, "got error %u\n", err);
closesocket(client);
}
More information about the wine-cvs
mailing list