Mike McCormack : msi: Add a test for MsiDatabaseIsTablePersistent.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Sep 8 10:24:34 CDT 2006
Module: wine
Branch: master
Commit: 14ab62306c0d0c5fe3d9d272fb807cd6c2b79c1b
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=14ab62306c0d0c5fe3d9d272fb807cd6c2b79c1b
Author: Mike McCormack <mike at codeweavers.com>
Date: Fri Sep 8 18:02:17 2006 +0900
msi: Add a test for MsiDatabaseIsTablePersistent.
---
dlls/msi/tests/db.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 9e43258..fbe9909 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -1914,6 +1914,84 @@ static void test_join(void)
DeleteFile(msifile);
}
+static void test_temporary_table(void)
+{
+ MSICONDITION cond;
+ MSIHANDLE hdb;
+ const char *query;
+ UINT r;
+
+ cond = MsiDatabaseIsTablePersistent(0, NULL);
+ todo_wine ok( cond == MSICONDITION_ERROR, "wrong return condition\n");
+
+ hdb = create_db();
+ ok( hdb, "failed to create db\n");
+
+ todo_wine {
+ cond = MsiDatabaseIsTablePersistent(hdb, NULL);
+ ok( cond == MSICONDITION_ERROR, "wrong return condition\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "_Tables");
+ ok( cond == MSICONDITION_NONE, "wrong return condition\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "_Columns");
+ ok( cond == MSICONDITION_NONE, "wrong return condition\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "_Streams");
+ ok( cond == MSICONDITION_NONE, "wrong return condition\n");
+ }
+
+ query = "CREATE TABLE `P` ( `B` SHORT NOT NULL, `C` CHAR(255) PRIMARY KEY `C`)";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add table\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "P");
+ todo_wine ok( cond == MSICONDITION_TRUE, "wrong return condition\n");
+
+ query = "CREATE TABLE `P2` ( `B` SHORT NOT NULL, `C` CHAR(255) PRIMARY KEY `C`) HOLD";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add table\n");
+
+ todo_wine {
+ cond = MsiDatabaseIsTablePersistent(hdb, "P");
+ ok( cond == MSICONDITION_TRUE, "wrong return condition\n");
+
+ query = "CREATE TABLE `T` ( `B` SHORT NOT NULL TEMPORARY, `C` CHAR(255) TEMPORARY PRIMARY KEY `C`) HOLD";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add table\n");
+ }
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "T");
+ ok( cond == MSICONDITION_FALSE, "wrong return condition\n");
+
+ todo_wine {
+ query = "CREATE TABLE `T2` ( `B` SHORT NOT NULL TEMPORARY, `C` CHAR(255) TEMPORARY PRIMARY KEY `C`)";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add table\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "T2");
+ ok( cond == MSICONDITION_NONE, "wrong return condition\n");
+
+ query = "CREATE TABLE `T3` ( `B` SHORT NOT NULL TEMPORARY, `C` CHAR(255) PRIMARY KEY `C`)";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_SUCCESS, "failed to add table\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "T3");
+ ok( cond == MSICONDITION_TRUE, "wrong return condition\n");
+
+ query = "CREATE TABLE `T4` ( `B` SHORT NOT NULL, `C` CHAR(255) TEMPORARY PRIMARY KEY `C`)";
+ r = run_query(hdb, 0, query);
+ ok(r == ERROR_FUNCTION_FAILED, "failed to add table\n");
+
+ cond = MsiDatabaseIsTablePersistent(hdb, "T4");
+ ok( cond == MSICONDITION_NONE, "wrong return condition\n");
+ }
+
+ MsiCloseHandle( hdb );
+
+ DeleteFile(msifile);
+}
+
START_TEST(db)
{
test_msidatabase();
@@ -1932,4 +2010,5 @@ START_TEST(db)
test_handle_limit();
test_generate_transform();
test_join();
+ test_temporary_table();
}
More information about the wine-cvs
mailing list