kernel32/tests: Fix some test failures on Win9x and WinME.

This commit is contained in:
Paul Vriens 2009-03-30 10:43:50 +02:00 committed by Alexandre Julliard
parent 317edfd7da
commit a61e117781
1 changed files with 19 additions and 4 deletions

View File

@ -802,6 +802,8 @@ static void test_GetPrivateProfileString(const char *content, const char *descri
DeleteFileA(filename); DeleteFileA(filename);
} }
static DWORD timeout = 0;
static BOOL check_file_data(LPCSTR path, LPCSTR data) static BOOL check_file_data(LPCSTR path, LPCSTR data)
{ {
HANDLE file; HANDLE file;
@ -809,6 +811,10 @@ static BOOL check_file_data(LPCSTR path, LPCSTR data)
DWORD size; DWORD size;
BOOL ret; BOOL ret;
/* Sleep() is needed on Win9x and WinME */
if (timeout)
Sleep(timeout);
file = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); file = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
if (file == INVALID_HANDLE_VALUE) if (file == INVALID_HANDLE_VALUE)
return FALSE; return FALSE;
@ -847,6 +853,8 @@ static void test_WritePrivateProfileString(void)
broken(GetLastError() == ERROR_INVALID_PARAMETER) || /* NT4 */ broken(GetLastError() == ERROR_INVALID_PARAMETER) || /* NT4 */
broken(GetLastError() == 0xdeadbeef), /* Win9x and WinME */ broken(GetLastError() == 0xdeadbeef), /* Win9x and WinME */
"Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError()); "Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError());
if (GetLastError() == 0xdeadbeef)
timeout = 1000;
ok(GetFileAttributesA(path) == INVALID_FILE_ATTRIBUTES, ok(GetFileAttributesA(path) == INVALID_FILE_ATTRIBUTES,
"Expected path to not exist\n"); "Expected path to not exist\n");
@ -905,7 +913,9 @@ static void test_WritePrivateProfileString(void)
ok(ret == TRUE, "Expected TRUE, got %d\n", ret); ok(ret == TRUE, "Expected TRUE, got %d\n", ret);
todo_wine todo_wine
{ {
ok(check_file_data(path, data), "File doesn't match\n"); ok(check_file_data(path, data) ||
(broken(GetFileAttributesA(path) == INVALID_FILE_ATTRIBUTES)), /* Win9x and WinME */
"File doesn't match\n");
} }
DeleteFileA(path); DeleteFileA(path);
@ -913,15 +923,20 @@ static void test_WritePrivateProfileString(void)
data = "[App]\r\n" data = "[App]\r\n"
"key=\r\n"; "key=\r\n";
ret = WritePrivateProfileStringA("App", "key", "", path); ret = WritePrivateProfileStringA("App", "key", "", path);
ok(ret == TRUE, "Expected TRUE, got %d\n", ret); ok(ret == TRUE ||
ok(check_file_data(path, data), "File doesn't match\n"); broken(!ret), /* Win9x and WinME */
"Expected TRUE, got %d\n", ret);
ok(check_file_data(path, data) ||
(broken(GetFileAttributesA(path) == INVALID_FILE_ATTRIBUTES)), /* Win9x and WinME */
"File doesn't match\n");
DeleteFileA(path); DeleteFileA(path);
/* empty lpFileName */ /* empty lpFileName */
SetLastError(0xdeadbeef); SetLastError(0xdeadbeef);
ret = WritePrivateProfileStringA("App", "key", "string", ""); ret = WritePrivateProfileStringA("App", "key", "string", "");
ok(ret == FALSE, "Expected FALSE, got %d\n", ret); ok(ret == FALSE, "Expected FALSE, got %d\n", ret);
ok(GetLastError() == ERROR_ACCESS_DENIED, ok(GetLastError() == ERROR_ACCESS_DENIED ||
broken(GetLastError() == ERROR_PATH_NOT_FOUND), /* Win9x and WinME */
"Expected ERROR_ACCESS_DENIED, got %d\n", GetLastError()); "Expected ERROR_ACCESS_DENIED, got %d\n", GetLastError());
/* The resulting file will be X:\\%WINDIR%\\win1.tmp */ /* The resulting file will be X:\\%WINDIR%\\win1.tmp */