James Hawkins : msi: Add more join tests.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Sep 13 06:07:02 CDT 2006
Module: wine
Branch: master
Commit: bfc1b5c15f35237e4234fca29f98079d59c4d69c
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=bfc1b5c15f35237e4234fca29f98079d59c4d69c
Author: James Hawkins <truiken at gmail.com>
Date: Tue Sep 12 14:00:06 2006 -0700
msi: Add more join tests.
---
dlls/msi/tests/db.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 162 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index 86d2389..44a2532 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -1760,6 +1760,28 @@ static const struct join_res join_res_fo
{ "msvcp.dll.01234", "single.dll.31415" },
};
+static const struct join_res join_res_fifth[] =
+{
+ { "malar", "procerus" },
+};
+
+static const struct join_res join_res_sixth[] =
+{
+ { "malar", "procerus" },
+ { "malar", "procerus" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "mentalis" },
+};
+
+static const struct join_res join_res_seventh[] =
+{
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+};
+
static void test_join(void)
{
MSIHANDLE hdb, hview, hrec;
@@ -1989,6 +2011,146 @@ static void test_join(void)
MsiViewClose(hview);
MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component`.`Component` = 'zygomatic' "
+ "AND `FeatureComponents`.`Component_` = 'maxilla' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_fifth[i].one ),
+ "Expected '%s', got %s\n", join_res_fifth[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_fifth[i].two ),
+ "Expected '%s', got %s\n", join_res_fifth[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component` = 'zygomatic' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_sixth[i].one ),
+ "Expected '%s', got %s\n", join_res_sixth[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_sixth[i].two ),
+ "Expected '%s', got %s\n", join_res_sixth[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component` = 'zygomatic' "
+ "AND `Feature_` = 'nasalis' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_seventh[i].one ),
+ "Expected '%s', got %s\n", join_res_seventh[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_seventh[i].two ),
+ "Expected '%s', got %s\n", join_res_seventh[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
MsiCloseHandle(hdb);
DeleteFile(msifile);
}
More information about the wine-cvs
mailing list