Matijn Woudt : msi/tests: Testcases for CREATE TABLE.
Alexandre Julliard
julliard at winehq.org
Mon Jun 7 10:02:29 CDT 2010
Module: wine
Branch: master
Commit: 1a159dfddc90fb5a734f58014ef5600dc1f3d78d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1a159dfddc90fb5a734f58014ef5600dc1f3d78d
Author: Matijn Woudt <tijnema at gmail.com>
Date: Thu Jun 3 15:21:31 2010 +0200
msi/tests: Testcases for CREATE TABLE.
---
dlls/msi/tests/db.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 5571a71..56fa0f0 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -8845,6 +8845,112 @@ static void test_columnorder(void)
DeleteFileA(msifile);
}
+static void test_createtable(void)
+{
+ MSIHANDLE hdb, htab = 0, hrec = 0;
+ LPCSTR query;
+ UINT res;
+ DWORD size;
+ char buffer[0x20];
+
+ hdb = create_db();
+ ok(hdb, "failed to create db\n");
+
+ query = "CREATE TABLE `blah` (`foo` CHAR(72) NOT NULL PRIMARY KEY `foo`)";
+ res = MsiDatabaseOpenView( hdb, query, &htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ if(res == ERROR_SUCCESS )
+ {
+ res = MsiViewExecute( htab, hrec );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewGetColumnInfo( htab, MSICOLINFO_NAMES, &hrec );
+ todo_wine ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ size = sizeof(buffer);
+ res = MsiRecordGetString(hrec, 1, buffer, &size );
+ todo_wine ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewClose( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ }
+
+ query = "CREATE TABLE `a` (`b` INT PRIMARY KEY `b`)";
+ res = MsiDatabaseOpenView( hdb, query, &htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ if(res == ERROR_SUCCESS )
+ {
+ res = MsiViewExecute( htab, 0 );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewClose( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ query = "SELECT * FROM `a`";
+ res = MsiDatabaseOpenView( hdb, query, &htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewGetColumnInfo( htab, MSICOLINFO_NAMES, &hrec );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ size = sizeof(buffer);
+ res = MsiRecordGetString(hrec, 1, buffer, &size );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ ok(!strcmp(buffer,"b"), "b != %s\n", buffer);
+
+ res = MsiViewClose( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiDatabaseCommit(hdb);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle(hdb);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiOpenDatabase(msifile, MSIDBOPEN_TRANSACT, &hdb );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ query = "SELECT * FROM `a`";
+ res = MsiDatabaseOpenView( hdb, query, &htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewGetColumnInfo( htab, MSICOLINFO_NAMES, &hrec );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ size = sizeof(buffer);
+ res = MsiRecordGetString(hrec, 1, buffer, &size );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ todo_wine ok(!strcmp(buffer,"b"), "b != %s\n", buffer);
+
+ res = MsiCloseHandle( hrec );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiViewClose( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle( htab );
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+ }
+
+ res = MsiDatabaseCommit(hdb);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ res = MsiCloseHandle(hdb);
+ ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+ DeleteFileA(msifile);
+}
+
+
START_TEST(db)
{
test_msidatabase();
@@ -8896,4 +9002,5 @@ START_TEST(db)
test_insertorder();
test_columnorder();
test_suminfo_import();
+ test_createtable();
}
More information about the wine-cvs
mailing list