kernel32: Fix a test that fails on all NT platforms
Paul Vriens
paul.vriens.wine at gmail.com
Tue Apr 22 01:33:25 CDT 2008
James Hawkins wrote:
> Hi,
>
> Changelog:
> * Fix a test that fails on all NT platforms.
>
> dlls/kernel32/tests/toolhelp.c | 12 +++++++++---
> 1 files changed, 9 insertions(+), 3 deletions(-)
>
>
>
> ------------------------------------------------------------------------
>
>
Hi James,
I've been looking at some of the patches to fix the tests but I'm a bit unsure
if some of them are the correct way to go. Things like:
+ /* win9x does not return a thread, NT does */
te.dwSize = sizeof(te);
- ok(!pThread32First( hSnapshot, &te ), "shouldn't return a thread\n");
+ ret = pThread32First( hSnapshot, &te );
+ ok(ret || !ret, "You'll never see this\n");
renders the whole test useless. It turns out that win9x in this case leaves
te.dwSize and XP-and-up set te.dwSize to 0. Shouldn't we make use of that fact?
So something like (or another combination):
if (te.dwSize == 0)
{
XP-and-up, expect failure
}
else if (te.dwSize == sizeof(te))
{
win9x, expect success
}
else
{
something is wrong/unexpected
}
On a sidenote (and this has been the case for a long time):
I've seen patches where
ok(function(a,b),"Failed");
is turned into
c = function(a,b);
if (c)
{
.....
}
but done without a skip or such. So if Wine has a regression for 'function' we
won't notice.
We have loads of patches where we expect 3 or more different last errors. This
will make sure the tests always succeed of course but makes it difficult to tell
if we (Wine) are doing the correct/best thing.
--
Cheers,
Paul.
More information about the wine-devel
mailing list