msi: Fix handle leaks in the test cases.

This commit is contained in:
Mike McCormack 2006-10-10 15:21:24 +09:00 committed by Alexandre Julliard
parent 73c7bcb6e5
commit e9c5e93fda
4 changed files with 26 additions and 14 deletions

View file

@ -1313,6 +1313,7 @@ static void test_where(void)
ok( 2 == r, "field wrong\n");
r = MsiRecordGetInteger(rec, 2);
ok( 1 == r, "field wrong\n");
MsiCloseHandle( rec );
query = "SELECT `DiskId` FROM `Media` WHERE `LastSequence` >= 1 AND DiskId >= 0";
r = MsiDatabaseOpenView(hdb, query, &view);
@ -1332,6 +1333,7 @@ static void test_where(void)
ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
ok( !lstrcmp( buf, "2" ),
"For (row %d, column 1) expected '%d', got %s\n", 0, 2, buf );
MsiCloseHandle( rec );
r = MsiViewFetch(view, &rec);
ok( r == ERROR_SUCCESS, "failed to fetch view: %d\n", r );
@ -1341,6 +1343,7 @@ static void test_where(void)
ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
ok( !lstrcmp( buf, "3" ),
"For (row %d, column 1) expected '%d', got %s\n", 1, 3, buf );
MsiCloseHandle( rec );
r = MsiViewFetch(view, &rec);
ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
@ -1414,6 +1417,7 @@ static void test_msiimport(void)
ok(check_record(rec, 7, "String"), "Expected String\n");
ok(check_record(rec, 8, "LocalizableString"), "Expected LocalizableString\n");
ok(check_record(rec, 9, "LocalizableStringNullable"), "Expected LocalizableStringNullable\n");
MsiCloseHandle(rec);
r = MsiViewGetColumnInfo(view, MSICOLINFO_TYPES, &rec);
count = MsiRecordGetFieldCount(rec);
@ -1430,6 +1434,7 @@ static void test_msiimport(void)
ok(check_record(rec, 3, "i2"), "Expected i2\n");
ok(check_record(rec, 5, "i4"), "Expected i4\n");
}
MsiCloseHandle(rec);
query = "SELECT * FROM `TestTable`";
r = do_query(hdb, query, &rec);
@ -1508,18 +1513,18 @@ static void test_markers(void)
query = "CREATE TABLE `Mable` ( `?` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`)";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try column names as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(2);
MsiRecordSetString(rec, 1, "One");
MsiRecordSetString(rec, 2, "Two");
query = "CREATE TABLE `Mable` ( `?` SHORT NOT NULL, `?` CHAR(255) PRIMARY KEY `One`)";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try names with backticks */
MsiCloseHandle(rec);
rec = MsiCreateRecord(3);
MsiRecordSetString(rec, 1, "One");
MsiRecordSetString(rec, 2, "Two");
@ -1537,17 +1542,17 @@ static void test_markers(void)
query = "CREATE TABLE `Mable` ( ? SHORT NOT NULL, ? CHAR(255) PRIMARY KEY ?)";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try one long marker */
MsiCloseHandle(rec);
rec = MsiCreateRecord(1);
MsiRecordSetString(rec, 1, "`One` SHORT NOT NULL, `Two` CHAR(255) PRIMARY KEY `One`");
query = "CREATE TABLE `Mable` ( ? )";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try all names as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(4);
MsiRecordSetString(rec, 1, "Mable");
MsiRecordSetString(rec, 2, "One");
@ -1556,6 +1561,7 @@ static void test_markers(void)
query = "CREATE TABLE `?` ( `?` SHORT NOT NULL, `?` CHAR(255) PRIMARY KEY `?`)";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try a legit insert */
query = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( 5, 'hello' )";
@ -1566,16 +1572,15 @@ static void test_markers(void)
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
/* try values as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(2);
MsiRecordSetInteger(rec, 1, 4);
MsiRecordSetString(rec, 2, "hi");
query = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( ?, '?' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
MsiCloseHandle(rec);
/* try column names and values as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(4);
MsiRecordSetString(rec, 1, "One");
MsiRecordSetString(rec, 2, "Two");
@ -1584,26 +1589,26 @@ static void test_markers(void)
query = "INSERT INTO `Table` ( `?`, `?` ) VALUES ( ?, '?' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try column names as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(2);
MsiRecordSetString(rec, 1, "One");
MsiRecordSetString(rec, 2, "Two");
query = "INSERT INTO `Table` ( `?`, `?` ) VALUES ( 3, 'yellow' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* try table name as a marker */
MsiCloseHandle(rec);
rec = MsiCreateRecord(1);
MsiRecordSetString(rec, 1, "Table");
query = "INSERT INTO `?` ( `One`, `Two` ) VALUES ( 2, 'green' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
MsiCloseHandle(rec);
/* try table name and values as markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(3);
MsiRecordSetString(rec, 1, "Table");
MsiRecordSetInteger(rec, 2, 10);
@ -1611,9 +1616,9 @@ static void test_markers(void)
query = "INSERT INTO `?` ( `One`, `Two` ) VALUES ( ?, '?' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_FUNCTION_FAILED, "Expected ERROR_FUNCTION_FAILED, got %d\n", r);
MsiCloseHandle(rec);
/* try all markers */
MsiCloseHandle(rec);
rec = MsiCreateRecord(5);
MsiRecordSetString(rec, 1, "Table");
MsiRecordSetString(rec, 1, "One");
@ -1623,18 +1628,18 @@ static void test_markers(void)
query = "INSERT INTO `?` ( `?`, `?` ) VALUES ( ?, '?' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_BAD_QUERY_SYNTAX, "Expected ERROR_BAD_QUERY_SYNTAX, got %d\n", r);
MsiCloseHandle(rec);
/* insert an integer as a string */
MsiCloseHandle(rec);
rec = MsiCreateRecord(2);
MsiRecordSetString(rec, 1, "11");
MsiRecordSetString(rec, 2, "hi");
query = "INSERT INTO `Table` ( `One`, `Two` ) VALUES ( ?, '?' )";
r = run_query(hdb, rec, query);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
MsiCloseHandle(rec);
/* leave off the '' for the string */
MsiCloseHandle(rec);
rec = MsiCreateRecord(2);
MsiRecordSetInteger(rec, 1, 12);
MsiRecordSetString(rec, 2, "hi");
@ -2460,9 +2465,11 @@ static void test_temporary_table(void)
rec = 0;
r = do_query(hdb, "select * from `_Columns` where `Table` = 'T' AND `Name` = 'B'", &rec);
ok( r == ERROR_NO_MORE_ITEMS, "temporary table exists in _Columns\n");
if (rec) MsiCloseHandle( rec );
r = do_query(hdb, "select * from `_Columns` where `Table` = 'T' AND `Name` = 'C'", &rec);
ok( r == ERROR_NO_MORE_ITEMS, "temporary table exists in _Columns\n");
if (rec) MsiCloseHandle( rec );
}
MsiCloseHandle( hdb );

View file

@ -2240,6 +2240,7 @@ static void test_formatrecord_tables(void)
DeleteFile( "C:\\I am a really long directory\\temporal.txt" );
RemoveDirectory( "C:\\I am a really long directory" );
MsiCloseHandle( hrec );
MsiCloseHandle( hpkg );
DeleteFile( msifile );
}

View file

@ -705,6 +705,7 @@ static void test_packagecoltypes(void)
ok(check_record(rec, 4, "Cabinet"), "wrong column label\n");
ok(check_record(rec, 5, "VolumeLabel"), "wrong column label\n");
ok(check_record(rec, 6, "Source"), "wrong column label\n");
MsiCloseHandle(rec);
r = MsiViewGetColumnInfo( view, MSICOLINFO_TYPES, &rec );
count = MsiRecordGetFieldCount( rec );
@ -720,6 +721,8 @@ static void test_packagecoltypes(void)
ok(check_record(rec, 3, "L64"), "wrong column label\n");
}
MsiCloseHandle(rec);
MsiCloseHandle(view);
MsiCloseHandle(hdb);
DeleteFile(msifile);
}
@ -731,10 +734,10 @@ START_TEST(install)
create_test_files();
create_database(msifile, tables, sizeof(tables) / sizeof(msi_table));
test_MsiInstallProduct();
test_MsiSetComponentState();
test_packagecoltypes();
delete_test_files();
}

View file

@ -2715,6 +2715,7 @@ static void test_installprops(void)
r = MsiGetProperty(hpkg, "DATABASE", buf, &size);
ok( r == ERROR_SUCCESS, "failed to get property: %d\n", r);
ok( !lstrcmp(buf, path), "Expected %s, got %s\n", path, buf);
MsiCloseHandle(hpkg);
}
START_TEST(package)