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());