Zebediah Figura : ws2_32/tests: Test FD_CONNECT with UDP sockets.

Alexandre Julliard julliard at winehq.org
Tue Jul 19 15:55:01 CDT 2022


Module: wine
Branch: master
Commit: f792b0828596a802165fd913033e84fc5733179b
URL:    https://gitlab.winehq.org/wine/wine/-/commit/f792b0828596a802165fd913033e84fc5733179b

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Sun May 29 12:54:56 2022 -0500

ws2_32/tests: Test FD_CONNECT with UDP sockets.

---

 dlls/ws2_32/tests/sock.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index c00d156d354..685a2348666 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -5878,7 +5878,7 @@ static void test_connect_events(struct event_test_ctx *ctx)
 
     check_events(ctx, FD_WRITE, 0, 200);
 
-    select_events(ctx, client, FD_ACCEPT | FD_CLOSE | FD_CONNECT | FD_OOB | FD_READ | FD_WRITE);
+    select_events(ctx, client, FD_ACCEPT | FD_CONNECT | FD_OOB | FD_READ | FD_WRITE);
 
     if (ctx->is_message)
         check_events(ctx, FD_WRITE, 0, 200);
@@ -5888,6 +5888,33 @@ static void test_connect_events(struct event_test_ctx *ctx)
     closesocket(client);
     closesocket(server);
 
+    /* Test with UDP sockets. */
+
+    client = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+    server = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+
+    select_events(ctx, client, FD_ACCEPT | FD_CONNECT | FD_OOB | FD_READ | FD_WRITE);
+    if (ctx->is_message)
+        check_events(ctx, FD_WRITE, 0, 200);
+    check_events_todo_event(ctx, 0, 0, 0);
+
+    ret = bind(server, (const struct sockaddr *)&addr, sizeof(addr));
+    ok(!ret, "failed to bind, error %u\n", WSAGetLastError());
+    len = sizeof(destaddr);
+    ret = getsockname(server, (struct sockaddr *)&destaddr, &len);
+    ok(!ret, "failed to get address, error %u\n", WSAGetLastError());
+    ret = connect(client, (struct sockaddr *)&addr, sizeof(addr));
+    ok(!ret, "got error %lu\n", GetLastError());
+
+    if (ctx->is_message)
+        check_events_todo(ctx, FD_WRITE, 0, 200);
+    else
+        check_events_todo(ctx, FD_CONNECT, FD_WRITE, 200);
+    check_events(ctx, 0, 0, 0);
+
+    closesocket(client);
+    closesocket(server);
+
     closesocket(listener);
 }
 




More information about the wine-cvs mailing list