From 05929dfb35fb03c904c5d76742faa55d34a6abb0 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Thu, 2 Sep 2010 12:47:16 +0200 Subject: kernel32: Add tests for SetHandleCount + make tests pass for winversions >WINNTwq --- dlls/kernel32/file.c | 5 ++++- dlls/kernel32/tests/file.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletions(-) diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c index dadaea6..f81e7b0 100644 --- a/dlls/kernel32/file.c +++ b/dlls/kernel32/file.c @@ -1192,7 +1192,10 @@ BOOL WINAPI UnlockFileEx( HANDLE hFile, DWORD reserved, DWORD count_low, DWORD c */ UINT WINAPI SetHandleCount( UINT count ) { - return min( 256, count ); + if (GetVersion() & 0x80000000) + return min( 0x100, count ); + else + return min( 0xffffffff, count ); } diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c index 033e53e..0a11a85 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c @@ -3115,6 +3115,24 @@ static void test_ReplaceFileW(void) } } +static void test_SetHandleCount(void) +{ + static UINT number = 1; + UINT ret; + int i; + + for ( i=1; i <= 32; i++) + { + number *= 2; + ret = SetHandleCount(number-1); + + if (GetVersion() & 0x80000000) /* win95 win98 */ + ok(ret == min(0x100,number-1), "SetHandleCount returned %x instead of %x\n", ret, min(0x100,number-1)); + else /* NT, 2k, XP etc. */ + ok(ret == min(0xffffffff,number-1), "SetHandleCount returned %x instead of %x\n", ret, min(0xffffffff,number-1)); + } +} + START_TEST(file) { InitFunctionPointers(); @@ -3153,4 +3171,5 @@ START_TEST(file) test_RemoveDirectory(); test_ReplaceFileA(); test_ReplaceFileW(); + test_SetHandleCount(); } -- 1.7.0.4