kernel32/tests: Fix thread function tests

André Hentschel nerv at dawncrow.de
Wed Dec 22 14:11:27 CST 2010


This is on real Hardware:
http://test.winehq.org/data/1cc46828f14a5d9fa0c63a99f2eba24270160f25/win7_ah-ult-adm-mingw64/kernel32:thread.html
Laptop with 6 core i7 and hyperthreading
maybe it's the hyperthreading?
---
 dlls/kernel32/tests/thread.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index fe1cc7d..1aeedeb 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -825,7 +825,7 @@ static VOID test_thread_processor(void)
        retMask = SetThreadAffinityMask(curthread,~(ULONG_PTR)0 >> 3);
        ok(retMask == processMask, "SetThreadAffinityMask failed\n");
        retMask = SetThreadAffinityMask(curthread,~(ULONG_PTR)1);
-       ok(retMask == 0, "SetThreadAffinityMask succeeded\n");
+       ok(retMask == 0 || retMask == processMask, "SetThreadAffinityMask returned an incorrect value\n");
    }
 /* NOTE: This only works on WinNT/2000/XP) */
    if (pSetThreadIdealProcessor) {
@@ -861,7 +861,10 @@ static VOID test_thread_processor(void)
      }
 
      error=pSetThreadIdealProcessor(curthread,MAXIMUM_PROCESSORS);
-     ok(error==0, "SetThreadIdealProcessor returned an incorrect value\n");
+     if (retMask == processMask && sizeof(ULONG_PTR) > sizeof(ULONG))
+         ok(error!=0, "SetThreadIdealProcessor returned 0\n");
+     else
+         ok(error==0, "SetThreadIdealProcessor returned an incorrect value\n");
    }
 }
 
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list