fusion/tests: Skip tests when file creation fails.

This commit is contained in:
André Hentschel 2011-08-03 20:35:22 +02:00 committed by Alexandre Julliard
parent 66395882f8
commit efaa801361
1 changed files with 21 additions and 7 deletions

View File

@ -147,13 +147,15 @@ static BOOL create_full_path(LPCSTR path)
return ret; return ret;
} }
static void create_file_data(LPCSTR name, LPCSTR data, DWORD size) static BOOL create_file_data(LPCSTR name, LPCSTR data, DWORD size)
{ {
HANDLE file; HANDLE file;
DWORD written; DWORD written;
file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
ok(file != INVALID_HANDLE_VALUE, "Failure to open file %s\n", name); if (file == INVALID_HANDLE_VALUE)
return FALSE;
WriteFile(file, data, strlen(data), &written, NULL); WriteFile(file, data, strlen(data), &written, NULL);
if (size) if (size)
@ -163,10 +165,9 @@ static void create_file_data(LPCSTR name, LPCSTR data, DWORD size)
} }
CloseHandle(file); CloseHandle(file);
return TRUE;
} }
#define create_file(name, size) create_file_data(name, name, size)
static void test_CreateAssemblyEnum(void) static void test_CreateAssemblyEnum(void)
{ {
HRESULT hr; HRESULT hr;
@ -409,19 +410,31 @@ static void test_enumerate_name(void)
CreateDirectoryA(path, NULL); CreateDirectoryA(path, NULL);
lstrcatA(path, "\\Wine.dll"); lstrcatA(path, "\\Wine.dll");
create_file(path, 100); if (!create_file_data(path, path, 100))
{
win_skip("Failed to open file %s, skipping name enumeration tests\n", path);
goto done;
}
sprintf(path, "%s\\Wine\\1.0.1.2__16a3fcd171e93a8d", gac); sprintf(path, "%s\\Wine\\1.0.1.2__16a3fcd171e93a8d", gac);
CreateDirectoryA(path, NULL); CreateDirectoryA(path, NULL);
lstrcatA(path, "\\Wine.dll"); lstrcatA(path, "\\Wine.dll");
create_file(path, 100); if (!create_file_data(path, path, 100))
{
win_skip("Failed to open file %s, skipping name enumeration tests\n", path);
goto done;
}
sprintf(path, "%s\\Wine\\1.0.1.2__123456789abcdef0", gac); sprintf(path, "%s\\Wine\\1.0.1.2__123456789abcdef0", gac);
CreateDirectoryA(path, NULL); CreateDirectoryA(path, NULL);
lstrcatA(path, "\\Wine.dll"); lstrcatA(path, "\\Wine.dll");
create_file(path, 100); if (!create_file_data(path, path, 100))
{
win_skip("Failed to open file %s, skipping name enumeration tests\n", path);
goto done;
}
/* test case sensitivity */ /* test case sensitivity */
to_widechar(namestr, "wine"); to_widechar(namestr, "wine");
@ -650,6 +663,7 @@ static void test_enumerate_name(void)
IAssemblyEnum_Release(asmenum); IAssemblyEnum_Release(asmenum);
IAssemblyName_Release(asmname); IAssemblyName_Release(asmname);
done:
sprintf(path, "%s\\Wine\\1.0.0.0__16a3fcd171e93a8d\\Wine.dll", gac); sprintf(path, "%s\\Wine\\1.0.0.0__16a3fcd171e93a8d\\Wine.dll", gac);
DeleteFileA(path); DeleteFileA(path);
sprintf(path, "%s\\Wine\\1.0.1.2__16a3fcd171e93a8d\\Wine.dll", gac); sprintf(path, "%s\\Wine\\1.0.1.2__16a3fcd171e93a8d\\Wine.dll", gac);