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.