Reported by Sven Baars.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47992 Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/msi/tests/action.c | 22 ++++++++++++++++++++-- dlls/msi/tests/install.c | 16 +++++++++++----- dlls/msi/tests/msi.c | 6 +++--- dlls/msi/tests/patch.c | 1 + 4 files changed, 35 insertions(+), 10 deletions(-)
diff --git a/dlls/msi/tests/action.c b/dlls/msi/tests/action.c index 6be56f76d7..89706249e4 100644 --- a/dlls/msi/tests/action.c +++ b/dlls/msi/tests/action.c @@ -204,6 +204,7 @@ static const char env_install_exec_seq_dat[] = "RegisterProduct\t\t900\n" "PublishFeatures\t\t1000\n" "PublishProduct\t\t1100\n" + "UnpublishFeatures\t\t1150\n" "InstallFinalize\t\t1200\n";
static const char env_custom_action_dat[] = @@ -305,6 +306,7 @@ static const char sss_install_exec_seq_dat[] = "RegisterProduct\t\t5500\n" "PublishFeatures\t\t5600\n" "PublishProduct\t\t5700\n" + "UnpublishFeatures\t\t5800\n" "InstallFinalize\t\t6000\n";
static const char sss_custom_action_dat[] = @@ -338,6 +340,7 @@ static const char sds_install_exec_seq_dat[] = "RegisterProduct\t\t5500\n" "PublishFeatures\t\t5600\n" "PublishProduct\t\t5700\n" + "UnpublishFeatures\t\t5800\n" "InstallFinalize\t\t6000\n";
static const char sds_custom_action_dat[] = @@ -366,6 +369,7 @@ static const char sis_install_exec_seq_dat[] = "RegisterProduct\t\t5500\n" "PublishFeatures\t\t5600\n" "PublishProduct\t\t5700\n" + "UnpublishFeatures\t\t5800\n" "InstallFinalize\t\t6000\n";
static const char sis_custom_action_dat[] = @@ -543,12 +547,12 @@ static const char rem_install_exec_seq_dat[] = "InstallValidate\t\t1400\n" "InstallInitialize\t\t1500\n" "ProcessComponents\t\t1600\n" - "UnpublishFeatures\t\t1800\n" "RemoveFiles\t\t3500\n" "InstallFiles\t\t4000\n" "RegisterProduct\t\t6100\n" "PublishFeatures\t\t6300\n" "PublishProduct\t\t6400\n" + "UnpublishFeatures\t\t6500\n" "InstallFinalize\t\t6600";
static const char rem_remove_files_dat[] = @@ -704,6 +708,7 @@ static const char wrv_install_exec_seq_dat[] = "RegisterProduct\t\t6100\n" "PublishFeatures\t\t6200\n" "PublishProduct\t\t6300\n" + "UnpublishFeatures\t\t6400\n" "InstallFinalize\t\t6600\n";
static const char wrv_custom_action_dat[] = @@ -858,6 +863,7 @@ static const char sr_install_exec_seq_dat[] = "RegisterProduct\t\t5100\n" "PublishFeatures\t\t5200\n" "PublishProduct\t\t5300\n" + "UnpublishFeatures\t\t5400\n" "InstallFinalize\t\t6600\n";
static const char sr_custom_action_dat[] = @@ -916,7 +922,6 @@ static const char font_install_exec_seq_dat[] = "InstallValidate\t\t1400\n" "InstallInitialize\t\t1500\n" "ProcessComponents\t\t1600\n" - "UnpublishFeatures\t\t1800\n" "RemoveFiles\t\t3500\n" "InstallFiles\t\t4000\n" "RegisterFonts\t\t4100\n" @@ -929,6 +934,7 @@ static const char font_install_exec_seq_dat[] = "RegisterProduct\t\t6100\n" "PublishFeatures\t\t6300\n" "PublishProduct\t\t6400\n" + "UnpublishFeatures\t\t6500\n" "InstallFinalize\t\t6600";
static const char font_custom_action_dat[] = @@ -1058,6 +1064,7 @@ static const char odbc_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char odbc_custom_action_dat[] = @@ -1127,6 +1134,7 @@ static const char tl_install_exec_seq_dat[] = "RegisterProduct\t\t5100\n" "PublishFeatures\t\t5200\n" "PublishProduct\t\t5300\n" + "UnpublishFeatures\t\t5400\n" "InstallFinalize\t\t6000\n";
static const char tl_custom_action_dat[] = @@ -1190,6 +1198,7 @@ static const char crs_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char crs_custom_action_dat[] = @@ -1253,6 +1262,7 @@ static const char pub_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char pub_custom_action_dat[] = @@ -1320,6 +1330,7 @@ static const char rd_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char rd_custom_action_dat[] = @@ -1385,6 +1396,7 @@ static const char frp_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char ini_file_dat[] = @@ -1445,6 +1457,7 @@ static const char ini_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char ini_custom_action_dat[] = @@ -1514,6 +1527,7 @@ static const char rci_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char rci_custom_action_dat[] = @@ -1589,6 +1603,7 @@ static const char rei_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char rei_custom_action_dat[] = @@ -1691,6 +1706,7 @@ static const char rpi_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char rpi_custom_action_dat[] = @@ -1768,6 +1784,7 @@ static const char rmi_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const char rmi_custom_action_dat[] = @@ -1959,6 +1976,7 @@ static const char rep_install_exec_seq_dat[] = "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const msi_table env_tables[] = diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index 8a9e98c543..365f1d3a75 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -1004,6 +1004,7 @@ static const CHAR fo_install_exec_seq_dat[] = "Action\tCondition\tSequence\n" "RegisterProduct\t\t5000\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
static const CHAR uc_file_dat[] = "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n" @@ -1051,6 +1052,7 @@ static const CHAR uc_install_exec_seq_dat[] = "Action\tCondition\tSequence\n" "RegisterProduct\t\t1000\n" "PublishFeatures\t\t1100\n" "PublishProduct\t\t1200\n" + "UnpublishFeatures\t\t1250\n" "InstallFinalize\t\t1300\n";
static const char mixed_feature_dat[] = @@ -1173,6 +1175,7 @@ static const char vp_install_exec_seq_dat[] = "RegisterProduct\t\t1600\n" "PublishFeatures\t\t1700\n" "PublishProduct\t\t1800\n" + "UnpublishFeatures\t\t1850\n" "InstallFinalize\t\t1900\n";
static const char shc_property_dat[] = @@ -1245,6 +1248,7 @@ static const char shc_install_exec_seq_dat[] = "RegisterProduct\t\t1700\n" "PublishFeatures\t\t1800\n" "PublishProduct\t\t1900\n" + "UnpublishFeatures\t\t1950\n" "InstallFinalize\t\t2000\n";
static const char shc2_install_exec_seq_dat[] = @@ -1265,6 +1269,7 @@ static const char shc2_install_exec_seq_dat[] = "RegisterProduct\t\t1700\n" "PublishFeatures\t\t1800\n" "PublishProduct\t\t1900\n" + "UnpublishFeatures\t\t1950\n" "InstallFinalize\t\t2000\n";
static const char ft_file_dat[] = @@ -1328,6 +1333,7 @@ static const char ft_install_exec_seq_dat[] = "RegisterProduct\t\t1200\n" "PublishFeatures\t\t1300\n" "PublishProduct\t\t1400\n" + "UnpublishFeatures\t\t1450\n" "InstallFinalize\t\t1500\n";
static const char da_custom_action_dat[] = @@ -2896,7 +2902,7 @@ static void test_MsiInstallProduct(void) res = RegOpenKeyA(HKEY_CURRENT_USER, "SOFTWARE\Wine\msitest", &hkey); ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
- r = MsiInstallProductA(msifile, "REMOVE=ALL"); + r = MsiInstallProductA(msifile, "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
error: @@ -5332,7 +5338,7 @@ static void test_file_in_use(void) ok(delete_pf("msitest\maximus", TRUE), "File not present\n"); ok(delete_pf("msitest", FALSE), "Directory not present or not empty\n");
- r = MsiInstallProductA(msifile, "REMOVE=ALL"); + r = MsiInstallProductA(msifile, "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
error: @@ -5394,7 +5400,7 @@ static void test_file_in_use_cab(void) ok(delete_pf("msitest\maximus", TRUE), "File not present\n"); ok(delete_pf("msitest", FALSE), "Directory not present or not empty\n");
- r = MsiInstallProductA(msifile, "REMOVE=ALL"); + r = MsiInstallProductA(msifile, "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
error: @@ -5548,7 +5554,7 @@ static void test_icon_table(void) lstrcatA(path, "\testicon"); ok(file_exists(path), "Per-user icon file isn't where it's expected (%s)\n", path);
- res = MsiInstallProductA(msifile, "REMOVE=ALL"); + res = MsiInstallProductA(msifile, "REMOVE=ALL FULL=1"); ok(res == ERROR_SUCCESS, "Failed to uninstall per-user\n"); ok(!file_exists(path), "Per-user icon file not removed (%s)\n", path);
@@ -5563,7 +5569,7 @@ static void test_icon_table(void) lstrcatA(path, "\testicon"); ok(file_exists(path), "System-wide icon file isn't where it's expected (%s)\n", path);
- res = MsiInstallProductA(msifile, "REMOVE=ALL"); + res = MsiInstallProductA(msifile, "REMOVE=ALL FULL=1"); ok(res == ERROR_SUCCESS, "Failed to uninstall system-wide\n"); ok(!file_exists(path), "System-wide icon file not removed (%s)\n", path);
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c index 9f847ce2f0..393ad08303 100644 --- a/dlls/msi/tests/msi.c +++ b/dlls/msi/tests/msi.c @@ -14102,7 +14102,7 @@ static void test_lastusedsource(void) ok(!lstrcmpA(value, path), "expected "%s", got "%s"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %d\n", lstrlenA(path), size);
- r = MsiInstallProductA("msifile0.msi", "REMOVE=ALL"); + r = MsiInstallProductA("msifile0.msi", "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r);
/* separate cabinet file */ @@ -14128,7 +14128,7 @@ static void test_lastusedsource(void) ok(!lstrcmpA(value, path), "expected "%s", got "%s"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %d\n", lstrlenA(path), size);
- r = MsiInstallProductA("msifile1.msi", "REMOVE=ALL"); + r = MsiInstallProductA("msifile1.msi", "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r);
size = MAX_PATH; @@ -14153,7 +14153,7 @@ static void test_lastusedsource(void) ok(!lstrcmpA(value, path), "expected "%s", got "%s"\n", path, value); ok(size == lstrlenA(path), "expected %d, got %d\n", lstrlenA(path), size);
- r = MsiInstallProductA("msifile2.msi", "REMOVE=ALL"); + r = MsiInstallProductA("msifile2.msi", "REMOVE=ALL FULL=1"); ok(r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r);
size = MAX_PATH; diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c index 63d38b8ff9..3834bd5fdd 100644 --- a/dlls/msi/tests/patch.c +++ b/dlls/msi/tests/patch.c @@ -118,6 +118,7 @@ static const char install_exec_seq_dat[] = "RegisterProduct\t\t3100\n" "PublishFeatures\t\t5100\n" "PublishProduct\t\t5200\n" + "UnpublishFeatures\t\t5300\n" "InstallFinalize\t\t6000\n";
struct msi_table