advapi32: Correct tests under WOW64 (try 2)

Vitaliy Margolen wine-devel at kievinfo.com
Sat Mar 10 17:52:54 CST 2012


On 03/10/2012 09:44 AM, André Hentschel wrote:
> Am 10.03.2012 17:37, schrieb Vitaliy Margolen:
>> On 03/10/2012 12:36 AM, Alistair Leslie-Hughes wrote:
>>> Hi,
>>> Marked test as broken if it returns true.
>>>
>>> +    /* WoW64 return TRUE with the LastError set */
>>> +    ok((!ret&&  GetLastError() == ERROR_INSUFFICIENT_BUFFER) || broken(ret),
>>>           "%d with error %d\n", ret, GetLastError());
>>
>> This is incorrect. You can check or report result of GetLastError(). But not both at the same time. You have to store the result in additional variable. Then compare and report it.
>
> Really? That's quite common practice. The value won't change between the two GetLastError() calls.
It sure can change.

> The only thing which is bad is if you test a function inside the ok() macro and report the last error in the same ok().
Isn't that what I said? To clarify, it applies to any printf type function 
that has call to GetLastError() as a parameter.

Vitaliy.



More information about the wine-devel mailing list