[PATCH 2/4] msi: Resolve source when executing InstallFiles.

Zebediah Figura z.figura12 at gmail.com
Wed Jun 6 00:59:21 CDT 2018


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
This test already succeeds on Wine, but won't once InstallFiles is deferred.

This fixes the failure originally reported in automation.c here:
https://www.winehq.org/pipermail/wine-devel/2017-October/119159.html
In truth that test is broken and should call ResolveSource, but this way
we at least help prevent the possibility of regressions.

 dlls/msi/files.c         | 2 ++
 dlls/msi/tests/install.c | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index adffcaf..f6cf3e7 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -357,6 +357,8 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
     UINT rc = ERROR_SUCCESS;
     MSIFILE *file;
 
+    msi_set_sourcedir_props(package, FALSE);
+
     schedule_install_files(package);
     mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) );
 
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index af37d93..3eb6c80 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -1328,6 +1328,7 @@ static const CHAR sr_install_exec_seq_dat[] =
     "sourcedir_unset\tSourceDir\t700\n"
     "ResolveSource\tRESOLVE_SOURCE\t800\n"
     "ProcessComponents\tPROCESS_COMPONENTS\t800\n"
+    "InstallFiles\tINSTALL_FILES\t800\n"
     "sourcedir_set\tNOT SourceDir\t900\n"
     "InstallFinalize\t\t1000\n";
 
@@ -6166,6 +6167,10 @@ static void test_source_resolution(void)
     r = MsiInstallProductA(msifile, "PROCESS_COMPONENTS=1");
     ok(r == ERROR_SUCCESS, "got %u\n", r);
 
+    r = MsiInstallProductA(msifile, "INSTALL_FILES=1");
+    ok(r == ERROR_SUCCESS, "got %u\n", r);
+
+    delete_pf_files();
     delete_test_files();
     DeleteFileA(msifile);
 }
-- 
2.7.4




More information about the wine-devel mailing list