Mike McCormack : msi: Check that transforms preserve tables.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Oct 5 05:03:19 CDT 2006
Module: wine
Branch: master
Commit: 2e19d49538e2829f48f78a29403166479abe4016
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2e19d49538e2829f48f78a29403166479abe4016
Author: Mike McCormack <mike at codeweavers.com>
Date: Thu Oct 5 13:40:52 2006 +0900
msi: Check that transforms preserve tables.
---
dlls/msi/tests/db.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 318d167..a065477 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -1720,6 +1720,14 @@ static void test_generate_transform(void
r = run_query(hdb1, 0, query);
ok(r == ERROR_SUCCESS, "failed to add table\n");
+ query = "INSERT INTO `AAR` ( `BAR`, `CAR` ) VALUES ( 1, 'vw' )";
+ r = run_query(hdb1, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add row 1\n");
+
+ query = "INSERT INTO `AAR` ( `BAR`, `CAR` ) VALUES ( 2, 'bmw' )";
+ r = run_query(hdb1, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add row 2\n");
+
todo_wine {
r = MsiDatabaseGenerateTransform(hdb1, hdb2, NULL, 0, 0);
ok( r == ERROR_SUCCESS, "return code %d, should be ERROR_SUCCESS\n", r );
@@ -1727,11 +1735,19 @@ static void test_generate_transform(void
r = MsiDatabaseGenerateTransform(hdb1, hdb2, mstfile, 0, 0);
ok( r == ERROR_SUCCESS, "return code %d, should be ERROR_SUCCESS\n", r );
+ /* database needs to be committed */
+ MsiDatabaseCommit(hdb1);
+
+ r = MsiDatabaseGenerateTransform(hdb1, hdb2, mstfile, 0, 0);
+ ok( r == ERROR_SUCCESS, "return code %d, should be ERROR_SUCCESS\n", r );
+
MsiCloseHandle( hdb1 );
r = MsiDatabaseApplyTransform( hdb2, mstfile, 0 );
ok( r == ERROR_SUCCESS, "return code %d, should be ERROR_SUCCESS\n", r );
+ MsiDatabaseCommit(hdb2);
+
/* apply the same transform again? */
r = MsiDatabaseApplyTransform( hdb2, mstfile, 0 );
ok( r == ERROR_INSTALL_TRANSFORM_FAILURE,
@@ -1741,6 +1757,18 @@ static void test_generate_transform(void
MsiCloseHandle( hdb2 );
DeleteFile(msifile);
+
+ r = MsiOpenDatabase(msifile2, MSIDBOPEN_READONLY, &hdb1 );
+ ok( r == ERROR_SUCCESS , "Failed to create database\n" );
+
+ todo_wine {
+ query = "select `BAR`,`CAR` from `AAR`";
+ r = run_query(hdb1, 0, query);
+ ok(r == ERROR_SUCCESS, "select query failed\n");
+ }
+
+ MsiCloseHandle( hdb1 );
+
DeleteFile(msifile2);
DeleteFile(mstfile);
}
More information about the wine-cvs
mailing list