Paul Vriens : msi/tests: Run the 'in_use' tests again.
Alexandre Julliard
julliard at winehq.org
Wed Feb 10 10:44:53 CST 2010
Module: wine
Branch: master
Commit: 312e4f6b235a468f8bf764101a5b97cf34dd4143
URL: http://source.winehq.org/git/wine.git/?a=commit;h=312e4f6b235a468f8bf764101a5b97cf34dd4143
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Wed Feb 10 15:24:49 2010 +0100
msi/tests: Run the 'in_use' tests again.
---
dlls/msi/tests/install.c | 51 +++++++++++++++++++++++++++++++--------------
1 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index 3add46c..0f7dd45 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -7359,23 +7359,43 @@ static char rename_ops[] = "PendingFileRenameOperations";
static void process_pending_renames(HKEY hkey)
{
- char *buf, *src, *dst;
- DWORD size;
+ char *buf, *src, *dst, *buf2, *buf2ptr;
+ DWORD size, buf2len = 0;
LONG ret;
+ BOOL found = FALSE;
ret = RegQueryValueExA(hkey, rename_ops, NULL, NULL, NULL, &size);
buf = HeapAlloc(GetProcessHeap(), 0, size);
+ buf2ptr = buf2 = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
buf[0] = 0;
ret = RegQueryValueExA(hkey, rename_ops, NULL, NULL, (LPBYTE)buf, &size);
ok(!ret, "RegQueryValueExA failed %d (%u)\n", ret, GetLastError());
- ok(strstr(buf, "msitest\\maximus") != NULL, "Unexpected value \"%s\"\n", buf);
for (src = buf; *src; src = dst + strlen(dst) + 1)
{
DWORD flags = MOVEFILE_COPY_ALLOWED;
dst = src + strlen(src) + 1;
+
+ if (!strstr(src, "msitest"))
+ {
+ lstrcpyA(buf2ptr, src);
+ buf2len += strlen(src) + 1;
+ buf2ptr += strlen(src) + 1;
+ if (*dst)
+ {
+ lstrcpyA(buf2ptr, dst);
+ buf2ptr += strlen(dst) + 1;
+ buf2len += strlen(dst) + 1;
+ }
+ buf2ptr++;
+ buf2len++;
+ continue;
+ }
+
+ found = TRUE;
+
if (*dst == '!')
{
flags |= MOVEFILE_REPLACE_EXISTING;
@@ -7390,8 +7410,19 @@ static void process_pending_renames(HKEY hkey)
else
ok(DeleteFileA(src), "Failed to delete file %s (%u)\n", src, GetLastError());
}
+
+ ok(found, "Expected a 'msitest' entry\n");
+
+ if (*buf2)
+ {
+ buf2len++;
+ RegSetValueExA(hkey, rename_ops, 0, REG_MULTI_SZ, (LPBYTE)buf2, buf2len);
+ }
+ else
+ RegDeleteValueA(hkey, rename_ops);
+
HeapFree(GetProcessHeap(), 0, buf);
- RegDeleteValueA(hkey, rename_ops);
+ HeapFree(GetProcessHeap(), 0, buf2);
}
static BOOL file_matches_data(LPCSTR file, LPCSTR data)
@@ -7415,7 +7446,6 @@ static BOOL file_matches_data(LPCSTR file, LPCSTR data)
static void test_file_in_use(void)
{
UINT r;
- DWORD size;
HANDLE file;
HKEY hkey;
char path[MAX_PATH];
@@ -7427,11 +7457,6 @@ static void test_file_in_use(void)
}
RegOpenKeyExA(HKEY_LOCAL_MACHINE, session_manager, 0, KEY_ALL_ACCESS, &hkey);
- if (!RegQueryValueExA(hkey, rename_ops, NULL, NULL, NULL, &size))
- {
- skip("Pending file rename operations, skipping test\n");
- return;
- }
CreateDirectoryA("msitest", NULL);
create_file("msitest\\maximus", 500);
@@ -7468,7 +7493,6 @@ static void test_file_in_use(void)
static void test_file_in_use_cab(void)
{
UINT r;
- DWORD size;
HANDLE file;
HKEY hkey;
char path[MAX_PATH];
@@ -7480,11 +7504,6 @@ static void test_file_in_use_cab(void)
}
RegOpenKeyExA(HKEY_LOCAL_MACHINE, session_manager, 0, KEY_ALL_ACCESS, &hkey);
- if (!RegQueryValueExA(hkey, rename_ops, NULL, NULL, NULL, &size))
- {
- skip("Pending file rename operations, skipping test\n");
- return;
- }
CreateDirectoryA("msitest", NULL);
create_file("maximus", 500);
More information about the wine-cvs
mailing list