msi/tests: Move some more tests and remove a useless test.

Hans Leidekker hans at codeweavers.com
Tue Jun 11 08:21:50 CDT 2013


---
 dlls/msi/tests/install.c |  193 -----------------------------------------
 dlls/msi/tests/msi.c     |  213 ++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 197 insertions(+), 209 deletions(-)

diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index e97ce6b..97c2c10 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -1008,25 +1008,6 @@ static const CHAR fo_install_exec_seq_dat[] = "Action\tCondition\tSequence\n"
                                               "PublishProduct\t\t5200\n"
                                               "InstallFinalize\t\t6000\n";
 
-static const CHAR cl_custom_action_dat[] = "Action\tType\tSource\tTarget\tISComments\n"
-                                           "s72\ti2\tS64\tS0\tS255\n"
-                                           "CustomAction\tAction\n"
-                                           "TestCommandlineProp\t19\t\tTest1\t\n";
-
-static const CHAR cl_install_exec_seq_dat[] = "Action\tCondition\tSequence\n"
-                                              "s72\tS255\tI2\n"
-                                              "InstallExecuteSequence\tAction\n"
-                                              "LaunchConditions\t\t100\n"
-                                              "ValidateProductID\t\t700\n"
-                                              "CostInitialize\t\t800\n"
-                                              "FileCost\t\t900\n"
-                                              "CostFinalize\t\t1000\n"
-                                              "TestCommandlineProp\tP=\"one\"\t1100\n"
-                                              "InstallInitialize\t\t1500\n"
-                                              "ProcessComponents\t\t1600\n"
-                                              "InstallValidate\t\t1400\n"
-                                              "InstallFinalize\t\t5000\n";
-
 static const CHAR uc_file_dat[] = "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"
                                   "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"
                                   "File\tFile\n"
@@ -1782,19 +1763,6 @@ static const msi_table pv_tables[] =
     ADD_TABLE(property)
 };
 
-static const msi_table cl_tables[] =
-{
-    ADD_TABLE(component),
-    ADD_TABLE(directory),
-    ADD_TABLE(feature),
-    ADD_TABLE(feature_comp),
-    ADD_TABLE(file),
-    ADD_TABLE(cl_custom_action),
-    ADD_TABLE(cl_install_exec_seq),
-    ADD_TABLE(media),
-    ADD_TABLE(property)
-};
-
 static const msi_table uc_tables[] =
 {
     ADD_TABLE(directory),
@@ -5538,166 +5506,6 @@ error:
     RemoveDirectory("msitest");
 }
 
-static void test_command_line_parsing(void)
-{
-    UINT r;
-    const char *cmd;
-
-    if (is_process_limited())
-    {
-        skip("process is limited\n");
-        return;
-    }
-
-    create_test_files();
-    create_database(msifile, cl_tables, sizeof(cl_tables)/sizeof(msi_table));
-
-    MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
-
-    cmd = " ";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "=";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "==";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "one";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "=one";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "  P=";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=  ";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=\"\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"\"\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=\"\"\"\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\" ";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P= \"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P= \"\" ";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"  \"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=one";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P= one";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P=\"one";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=one\"";
-    r = MsiInstallProductA(msifile, cmd);
-    todo_wine ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"one\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P= \"one\" ";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P=\"one\"\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=\"\"one\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=\"\"one\"\"";
-    r = MsiInstallProductA(msifile, cmd);
-    todo_wine ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
-
-    cmd = "P=\"one two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"\"\"one\"\" two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"\"\"one\"\" two\" Q=three";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"\" Q=\"two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"one\" Q=\"two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P=\"one=two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "Q=\"\" P=\"one\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-
-    cmd = "P=\"\"\"one\"\"\" Q=\"two\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"one \"\"two\"\"\" Q=\"three\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    cmd = "P=\"\"\"one\"\" two\" Q=\"three\"";
-    r = MsiInstallProductA(msifile, cmd);
-    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
-
-    DeleteFile(msifile);
-    delete_test_files();
-}
-
 static void test_upgrade_code(void)
 {
     UINT r;
@@ -5916,7 +5724,6 @@ START_TEST(install)
     test_feature_override();
     test_icon_table();
     test_package_validation();
-    test_command_line_parsing();
     test_upgrade_code();
     test_mixed_package();
     test_volume_props();
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 6faa376..1bffbf9 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -834,6 +834,27 @@ static const char ci2_file_dat[] =
     "File\tFile\n"
     "augustus\taugustus\taugustus\t500\t\t\t8192\t1";
 
+static const char cl_custom_action_dat[] =
+    "Action\tType\tSource\tTarget\tISComments\n"
+    "s72\ti2\tS64\tS0\tS255\n"
+    "CustomAction\tAction\n"
+    "TestCommandlineProp\t19\t\tTest1\t\n";
+
+static const char cl_install_exec_seq_dat[] =
+    "Action\tCondition\tSequence\n"
+    "s72\tS255\tI2\n"
+    "InstallExecuteSequence\tAction\n"
+    "LaunchConditions\t\t100\n"
+    "ValidateProductID\t\t700\n"
+    "CostInitialize\t\t800\n"
+    "FileCost\t\t900\n"
+    "CostFinalize\t\t1000\n"
+    "TestCommandlineProp\tP=\"one\"\t1100\n"
+    "InstallInitialize\t\t1500\n"
+    "ProcessComponents\t\t1600\n"
+    "InstallValidate\t\t1400\n"
+    "InstallFinalize\t\t5000\n";
+
 typedef struct _msi_table
 {
     const CHAR *filename;
@@ -956,6 +977,19 @@ static const msi_table ci2_tables[] =
     ADD_TABLE(property),
 };
 
+static const msi_table cl_tables[] =
+{
+    ADD_TABLE(component),
+    ADD_TABLE(directory),
+    ADD_TABLE(feature),
+    ADD_TABLE(feature_comp),
+    ADD_TABLE(file),
+    ADD_TABLE(cl_custom_action),
+    ADD_TABLE(cl_install_exec_seq),
+    ADD_TABLE(media),
+    ADD_TABLE(property)
+};
+
 static void write_file(const CHAR *filename, const char *data, int data_size)
 {
     DWORD size;
@@ -8721,6 +8755,8 @@ static void test_MsiOpenProduct(void)
     UINT r;
     REGSAM access = KEY_ALL_ACCESS;
 
+    MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
+
     GetCurrentDirectoryA(MAX_PATH, path);
     lstrcatA(path, "\\");
 
@@ -8998,21 +9034,6 @@ static void test_MsiOpenProduct(void)
                          (const BYTE *)"winetest.msi", 13);
     ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
 
-    /* LocalPackage has just the package name */
-    hprod = 0xdeadbeef;
-    r = MsiOpenProductA(prodcode, &hprod);
-    if (r == ERROR_INSTALL_PACKAGE_REJECTED)
-    {
-        skip("Not enough rights to perform tests\n");
-        goto error;
-    }
-    ok(r == ERROR_INSTALL_PACKAGE_OPEN_FAILED || r == ERROR_SUCCESS,
-       "Expected ERROR_INSTALL_PACKAGE_OPEN_FAILED or ERROR_SUCCESS, got %d\n", r);
-    if (r == ERROR_SUCCESS)
-        MsiCloseHandle(hprod);
-    else
-        ok(hprod == 0xdeadbeef, "Expected hprod to be unchanged\n");
-
     lstrcpyA(val, path);
     lstrcatA(val, "\\winetest.msi");
     res = RegSetValueExA(props, "LocalPackage", 0, REG_SZ,
@@ -9028,7 +9049,6 @@ static void test_MsiOpenProduct(void)
        "Expected ERROR_UNKNOWN_PRODUCT, got %d\n", r);
     ok(hprod == 0xdeadbeef, "Expected hprod to be unchanged\n");
 
-error:
     RegDeleteValueA(props, "LocalPackage");
     delete_key(props, "", access & KEY_WOW64_64KEY);
     RegCloseKey(props);
@@ -14001,6 +14021,166 @@ error:
     RemoveDirectory("msitest");
 }
 
+static void test_command_line_parsing(void)
+{
+    UINT r;
+    const char *cmd;
+
+    if (is_process_limited())
+    {
+        skip("process is limited\n");
+        return;
+    }
+
+    create_test_files();
+    create_database(msifile, cl_tables, sizeof(cl_tables)/sizeof(msi_table));
+
+    MsiSetInternalUI(INSTALLUILEVEL_NONE, NULL);
+
+    cmd = " ";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "=";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "==";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "one";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "=one";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "  P=";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=  ";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=\"\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"\"\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=\"\"\"\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\" ";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P= \"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P= \"\" ";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"  \"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=one";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P= one";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P=\"one";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=one\"";
+    r = MsiInstallProductA(msifile, cmd);
+    todo_wine ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"one\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P= \"one\" ";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P=\"one\"\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=\"\"one\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=\"\"one\"\"";
+    r = MsiInstallProductA(msifile, cmd);
+    todo_wine ok(r == ERROR_INVALID_COMMAND_LINE, "Expected ERROR_INVALID_COMMAND_LINE, got %u\n", r);
+
+    cmd = "P=\"one two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"\"\"one\"\" two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"\"\"one\"\" two\" Q=three";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"\" Q=\"two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"one\" Q=\"two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P=\"one=two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "Q=\"\" P=\"one\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+
+    cmd = "P=\"\"\"one\"\"\" Q=\"two\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"one \"\"two\"\"\" Q=\"three\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    cmd = "P=\"\"\"one\"\" two\" Q=\"three\"";
+    r = MsiInstallProductA(msifile, cmd);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    DeleteFile(msifile);
+    delete_test_files();
+}
+
 START_TEST(msi)
 {
     DWORD len;
@@ -14062,6 +14242,7 @@ START_TEST(msi)
     test_setpropertyfolder();
     test_sourcedir_props();
     test_concurrentinstall();
+    test_command_line_parsing();
 
     SetCurrentDirectoryA(prev_path);
 }
-- 
1.7.10.4






More information about the wine-patches mailing list