From 867615419e7ff3aac203743a03fdb661e28089b7 Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Fri, 15 Feb 2013 11:34:00 +0100 Subject: [PATCH] ws2_32/tests: Fix the GetAcceptExSockaddrs() test. --- dlls/ws2_32/tests/sock.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index ebde182ac22..804c66bc9a7 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -4771,6 +4771,7 @@ static void test_AcceptEx(void) ok(!iret, "getsockopt failed %d\n", WSAGetLastError()); ok(connect_time == ~0u, "unexpected connect time %u\n", connect_time); + /* AcceptEx() still won't complete until we send data */ iret = connect(connector, (struct sockaddr*)&bindAddress, sizeof(bindAddress)); ok(iret == 0, "connecting to accepting socket failed, error %d\n", WSAGetLastError()); @@ -4786,6 +4787,13 @@ static void test_AcceptEx(void) iret = getsockname( connector, (struct sockaddr *)&peerAddress, &remoteSize); ok( !iret, "getsockname failed.\n"); + /* AcceptEx() could complete any time now */ + iret = send(connector, buffer, 1, 0); + ok(iret == 1, "could not send 1 byte: send %d errno %d\n", iret, WSAGetLastError()); + + dwret = WaitForSingleObject(overlapped.hEvent, 1000); + ok(dwret == WAIT_OBJECT_0, "Waiting for accept event failed with %d + errno %d\n", dwret, GetLastError()); + /* Check if the buffer from AcceptEx is decoded correctly */ pGetAcceptExSockaddrs(buffer, 2, sizeof(struct sockaddr_in) + 16, sizeof(struct sockaddr_in) + 16, (struct sockaddr **)&readBindAddress, &localSize, @@ -4805,12 +4813,6 @@ static void test_AcceptEx(void) "Remote socket port is different: %d != %d\n", readRemoteAddress->sin_port, peerAddress.sin_port); - iret = send(connector, buffer, 1, 0); - ok(iret == 1, "could not send 1 byte: send %d errno %d\n", iret, WSAGetLastError()); - - dwret = WaitForSingleObject(overlapped.hEvent, 1000); - ok(dwret == WAIT_OBJECT_0, "Waiting for accept event failed with %d + errno %d\n", dwret, GetLastError()); - bret = GetOverlappedResult((HANDLE)listener, &overlapped, &bytesReturned, FALSE); ok(bret, "GetOverlappedResult failed, error %d\n", GetLastError()); ok(bytesReturned == 1, "bytesReturned isn't supposed to be %d\n", bytesReturned); -- 2.11.4.GIT