Paul,

I don't like NT4 anymore. We're breaking up.

Does the attached patch fix the latest failures (not counting the
build warnings)?

Mike.

On Mon, Jul 20, 2009 at 7:05 AM, Paul Vriens<paul.vriens.w...@gmail.com> wrote:
> Mike Kaplinskiy wrote:
>>
>> Paul (and anyone who can test on x86_64):
>>
>> Can you confirm that the new patch gives no failures?
>>
>> Mike.
>>
>> On Fri, Jul 17, 2009 at 2:02 AM, Paul Vriens<paul.vriens.w...@gmail.com>
>> wrote:
>>>
>>> Mike Kaplinskiy wrote:
>>>>
>>>> Paul,
>>>>
>>>> Does the attached fix test failures on at least NT4? The 4000 test
>>>> failures is ok, it's just 3999 of the same failure. The failures are
>>>> the same because of a mistake on my part.
>>>>
>>>> I didn't get a chance to test this since my virtualbox is down until a
>>>> 2.6.31-compatible version of their kernel module is out.
>>>>
>>>> Mike.
>>>>
>>>> On Thu, Jul 16, 2009 at 3:40 AM, Paul Vriens<paul.vriens.w...@gmail.com>
>>>> wrote:
>>>>>
>>>>> Mike Kaplinskiy wrote:
>>>>>>
>>>>>> This tests the following AcceptEx scenario:
>>>>>>  WSAAccept->CF_DEFER->AcceptEx
>>>>>> Windows seems to return the deferred socket with AcceptEx (verified on
>>>>>> XP & 2K3).
>>>>>>
>>>>>> Mike.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>> Hi Mike,
>>>>>
>>>>> These new tests fail on all NT4 boxes (some 6 and 1 has 4000+ failures)
>>>>> and
>>>>> what looks like to be all Windows x64_64 systems. The strange thing (or
>>>>> maybe not) is that the errors are the same on all of these (one box has
>>>>> 4000+ failures but still has those same 6).
>>>>>
>>>>> See:
>>>>>
>>>>> http://test.winehq.org/data/tests/ws2_32:sock.html
>>>>>
>>>>> Could you have a look?
>>>>>
>>>>> I can do some tests if necessary on NT4, I don't have a Windows x86_64
>>>>> system however.
>>>>>
>>>>> --
>>>>> Cheers,
>>>>>
>>>>> Paul.
>>>>>
>>> This is what I now get on NT4:
>>>
>>> .....
>>> sock.c:2819: Test failed: Did not get both connections, got 1
>>> sock.c:2867: Test failed: bytesReturned isn't supposed to be 1
>>> sock: 441754 tests executed (0 marked as todo, 2 failures), 4 skipped.
>>>
>>>
>>> --
>>> Cheers,
>>>
>>> Paul.
>>>
> Hi Mike,
>
> No failures on NT4 here with this one.
>
> --
> Cheers,
>
> Paul.
>
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 21502c2..4ed19ae 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -2777,7 +2777,19 @@ static void test_AcceptEx(void)
     bret = pAcceptEx(listener, acceptor, buffer, 0,
         sizeof(struct sockaddr_in) + 16, sizeof(struct sockaddr_in) + 16,
         &bytesReturned, &overlapped);
-    ok(bret == FALSE && WSAGetLastError() == WSAEINVAL, "AcceptEx on already pending socket returned %d + errno %d\n", bret, WSAGetLastError());
+    ok((bret == FALSE && WSAGetLastError() == WSAEINVAL) || broken(bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING)
+       , "AcceptEx on already pending socket returned %d + errno %d\n", bret, WSAGetLastError());
+    if (bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING) {
+        /* We need to cancel this call, otherwise things fail */
+        bret = CancelIo(listener);
+        ok(!bret, "Failed to cancel failed test. Bailing...\n");
+        if (bret) return;
+        
+        bret = pAcceptEx(listener, acceptor, buffer, 0,
+        sizeof(struct sockaddr_in) + 16, sizeof(struct sockaddr_in) + 16,
+        &bytesReturned, &overlapped);
+        ok(bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING, "AcceptEx returned %d + errno %d\n", bret, WSAGetLastError());
+    }
 
     iret = connect(connector, (struct sockaddr*)&bindAddress, sizeof(bindAddress));
     ok(iret == 0, "connecting to accepting socket failed, error %d\n", WSAGetLastError());


Reply via email to