msi [4/5]: Allow more customization of install test files
James Hawkins
truiken at gmail.com
Mon Oct 23 20:11:24 CDT 2006
Hi,
This will be used in 5/5.
Changelog:
* Allow more customization of install test files.
dlls/msi/tests/install.c | 54 ++++++++++++++++++++++++++++------------------
1 files changed, 33 insertions(+), 21 deletions(-)
--
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index bd22916..2d845c4 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -336,25 +336,28 @@ static INT_PTR get_open_info(char *pszNa
return (INT_PTR)handle;
}
-static void add_file(HFCI hfci, char *file)
+static void add_file(HFCI hfci, const char *file, TCOMP compress)
{
char path[MAX_PATH];
+ char filename[MAX_PATH];
BOOL res;
lstrcpyA(path, CURR_DIR);
lstrcatA(path, "\\");
lstrcatA(path, file);
- res = FCIAddFile(hfci, path, file, FALSE, get_next_cabinet, progress,
- get_open_info, tcompTYPE_MSZIP);
+ lstrcpyA(filename, file);
+
+ res = FCIAddFile(hfci, path, filename, FALSE, get_next_cabinet, progress,
+ get_open_info, compress);
ok(res, "Expected FCIAddFile to succeed\n");
}
-static void set_cab_parameters(PCCAB pCabParams, const CHAR *name)
+static void set_cab_parameters(PCCAB pCabParams, const CHAR *name, DWORD max_size)
{
ZeroMemory(pCabParams, sizeof(CCAB));
- pCabParams->cb = MEDIA_SIZE;
+ pCabParams->cb = max_size;
pCabParams->cbFolderThresh = FOLDER_THRESHOLD;
pCabParams->setID = 0xbeef;
lstrcpyA(pCabParams->szCabPath, CURR_DIR);
@@ -362,16 +365,15 @@ static void set_cab_parameters(PCCAB pCa
lstrcpyA(pCabParams->szCab, name);
}
-static void create_cab_file(const CHAR *name)
+static void create_cab_file(const CHAR *name, DWORD max_size, const CHAR *files)
{
CCAB cabParams;
+ LPCSTR ptr;
HFCI hfci;
ERF erf;
- static CHAR four_txt[] = "four.txt",
- five_txt[] = "five.txt";
BOOL res;
- set_cab_parameters(&cabParams, name);
+ set_cab_parameters(&cabParams, name, max_size);
hfci = FCICreate(&erf, file_placed, mem_alloc, mem_free, fci_open,
fci_read, fci_write, fci_close, fci_seek, fci_delete,
@@ -379,8 +381,12 @@ static void create_cab_file(const CHAR *
ok(hfci != NULL, "Failed to create an FCI context\n");
- add_file(hfci, four_txt);
- add_file(hfci, five_txt);
+ ptr = files;
+ while (*ptr)
+ {
+ add_file(hfci, ptr, tcompTYPE_MSZIP);
+ ptr += lstrlen(ptr) + 1;
+ }
res = FCIFlushCabinet(hfci, FALSE, get_next_cabinet, progress);
ok(res, "Failed to flush the cabinet\n");
@@ -406,15 +412,21 @@ static BOOL get_program_files_dir(LPSTR
return TRUE;
}
-static void create_file(const CHAR *name)
+static void create_file(const CHAR *name, DWORD size)
{
HANDLE file;
- DWORD written;
+ DWORD written, left;
file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
ok(file != INVALID_HANDLE_VALUE, "Failure to open file %s\n", name);
WriteFile(file, name, strlen(name), &written, NULL);
WriteFile(file, "\n", strlen("\n"), &written, NULL);
+
+ left = size - lstrlen(name) - 1;
+
+ SetFilePointer(file, left, NULL, FILE_CURRENT);
+ SetEndOfFile(file);
+
CloseHandle(file);
}
@@ -423,18 +435,18 @@ static void create_test_files(void)
get_program_files_dir(PROG_FILES_DIR);
CreateDirectoryA("msitest", NULL);
- create_file("msitest\\one.txt");
+ create_file("msitest\\one.txt", 100);
CreateDirectoryA("msitest\\first", NULL);
- create_file("msitest\\first\\two.txt");
+ create_file("msitest\\first\\two.txt", 100);
CreateDirectoryA("msitest\\second", NULL);
- create_file("msitest\\second\\three.txt");
+ create_file("msitest\\second\\three.txt", 100);
- create_file("four.txt");
- create_file("five.txt");
- create_cab_file("msitest.cab");
+ create_file("four.txt", 100);
+ create_file("five.txt", 100);
+ create_cab_file("msitest.cab", MEDIA_SIZE, "four.txt\0five.txt\0");
- create_file("msitest\\filename");
- create_file("msitest\\service.exe");
+ create_file("msitest\\filename", 100);
+ create_file("msitest\\service.exe", 100);
DeleteFileA("four.txt");
DeleteFileA("five.txt");
--
1.4.2.1
More information about the wine-patches
mailing list