[PATCH 1/7] msi/tests: Test calling more functions from custom actions.

Zebediah Figura z.figura12 at gmail.com
Mon Mar 25 22:42:00 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/msi/tests/custom.c | 54 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 48 insertions(+), 6 deletions(-)

diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c
index c7ce4d20ae..6ae5bfc30a 100644
--- a/dlls/msi/tests/custom.c
+++ b/dlls/msi/tests/custom.c
@@ -1112,11 +1112,57 @@ static void test_costs(MSIHANDLE hinst)
     ok(hinst, sz == 2, "got size %u\n", sz);
 }
 
+static void test_invalid_functions(MSIHANDLE hinst)
+{
+    char path[MAX_PATH], package_name[20];
+    MSIHANDLE db, preview, package;
+    UINT r;
+
+    r = MsiGetDatabaseState(hinst);
+    todo_wine ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
+
+    db = MsiGetActiveDatabase(hinst);
+    ok(hinst, db, "MsiGetActiveDatabase failed\n");
+
+    r = MsiDatabaseGenerateTransformA(db, db, "bogus.mst", 0, 0);
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    r = MsiDatabaseApplyTransformA(db, "bogus.mst", 0);
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    r = MsiCreateTransformSummaryInfoA(db, db, "bogus.mst", 0, 0);
+    todo_wine ok(hinst, r == ERROR_INSTALL_PACKAGE_OPEN_FAILED, "got %u\n", r);
+
+    GetCurrentDirectoryA(sizeof(path), path);
+    r = MsiDatabaseExportA(db, "Test", path, "bogus.idt");
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    r = MsiDatabaseImportA(db, path, "bogus.idt");
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    r = MsiDatabaseCommit(db);
+    ok(hinst, r == ERROR_SUCCESS, "got %u\n", r);
+
+    r = MsiDatabaseMergeA(db, db, "MergeErrors");
+    ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    r = MsiGetDatabaseState(db);
+    todo_wine ok(hinst, r == MSIDBSTATE_ERROR, "got %u\n", r);
+
+    r = MsiEnableUIPreview(db, &preview);
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    sprintf(package_name, "#%u", db);
+    r = MsiOpenPackageA(package_name, &package);
+    todo_wine ok(hinst, r == ERROR_INVALID_HANDLE, "got %u\n", r);
+
+    MsiCloseHandle(db);
+}
+
 /* Main test. Anything that doesn't depend on a specific install configuration
  * or have undesired side effects should go here. */
 UINT WINAPI main_test(MSIHANDLE hinst)
 {
-    UINT res;
     IUnknown *unk = NULL;
     HRESULT hr;
 
@@ -1131,11 +1177,6 @@ UINT WINAPI main_test(MSIHANDLE hinst)
     ok(hinst, hr == S_OK, "got %#x\n", hr);
     CoUninitialize();
 
-    /* Test MsiGetDatabaseState() */
-    res = MsiGetDatabaseState(hinst);
-    todo_wine
-    ok(hinst, res == MSIDBSTATE_ERROR, "expected MSIDBSTATE_ERROR, got %u\n", res);
-
     test_props(hinst);
     test_db(hinst);
     test_doaction(hinst);
@@ -1144,6 +1185,7 @@ UINT WINAPI main_test(MSIHANDLE hinst)
     test_feature_states(hinst);
     test_format_record(hinst);
     test_costs(hinst);
+    test_invalid_functions(hinst);
 
     return ERROR_SUCCESS;
 }
-- 
2.17.1




More information about the wine-devel mailing list