msi: Add tests for components with multiple parent features.
This commit is contained in:
parent
32c0a764ee
commit
a4c6ca2b65
|
@ -2331,6 +2331,399 @@ static void test_appsearch(void)
|
||||||
DeleteFileA(msifile);
|
DeleteFileA(msifile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_featureparents(void)
|
||||||
|
{
|
||||||
|
MSIHANDLE hpkg;
|
||||||
|
UINT r;
|
||||||
|
MSIHANDLE hdb;
|
||||||
|
INSTALLSTATE state, action;
|
||||||
|
|
||||||
|
hdb = create_package_db();
|
||||||
|
ok ( hdb, "failed to create package database\n" );
|
||||||
|
|
||||||
|
r = add_directory_entry( hdb, "'TARGETDIR', '', 'SourceDir'");
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add directory: %d\n", r );
|
||||||
|
|
||||||
|
r = create_feature_table( hdb );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot create Feature table: %d\n", r );
|
||||||
|
|
||||||
|
r = create_component_table( hdb );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot create Component table: %d\n", r );
|
||||||
|
|
||||||
|
r = create_feature_components_table( hdb );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot create FeatureComponents table: %d\n", r );
|
||||||
|
|
||||||
|
r = create_file_table( hdb );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot create File table: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal */
|
||||||
|
r = add_feature_entry( hdb, "'zodiac', '', '', '', 2, 1, '', 0" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorSource */
|
||||||
|
r = add_feature_entry( hdb, "'perseus', '', '', '', 2, 1, '', 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal */
|
||||||
|
r = add_feature_entry( hdb, "'orion', '', '', '', 2, 1, '', 0" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesLocalOnly */
|
||||||
|
r = add_component_entry( hdb, "'leo', '', 'TARGETDIR', 0, '', 'leo_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesSourceOnly */
|
||||||
|
r = add_component_entry( hdb, "'virgo', '', 'TARGETDIR', 1, '', 'virgo_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesOptional */
|
||||||
|
r = add_component_entry( hdb, "'libra', '', 'TARGETDIR', 2, '', 'libra_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorSource:msidbComponentAttributesLocalOnly */
|
||||||
|
r = add_component_entry( hdb, "'cassiopeia', '', 'TARGETDIR', 0, '', 'cassiopeia_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorSource:msidbComponentAttributesSourceOnly */
|
||||||
|
r = add_component_entry( hdb, "'cepheus', '', 'TARGETDIR', 1, '', 'cepheus_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorSource:msidbComponentAttributesOptional */
|
||||||
|
r = add_component_entry( hdb, "'andromeda', '', 'TARGETDIR', 2, '', 'andromeda_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesLocalOnly */
|
||||||
|
r = add_component_entry( hdb, "'canis', '', 'TARGETDIR', 0, '', 'canis_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesSourceOnly */
|
||||||
|
r = add_component_entry( hdb, "'monoceros', '', 'TARGETDIR', 1, '', 'monoceros_file'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add component: %d\n", r );
|
||||||
|
|
||||||
|
/* msidbFeatureAttributesFavorLocal:msidbComponentAttributesOptional */
|
||||||
|
r = add_component_entry( hdb, "'lepus', '', 'TARGETDIR', 2, '', 'lepus_file'" );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'zodiac', 'leo'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'zodiac', 'virgo'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'zodiac', 'libra'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'perseus', 'cassiopeia'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'perseus', 'cepheus'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'perseus', 'andromeda'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'leo'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'virgo'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'libra'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'cassiopeia'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'cepheus'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'andromeda'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'canis'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'monoceros'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_feature_components_entry( hdb, "'orion', 'lepus'" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add feature components: %d\n", r );
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'leo_file', 'leo', 'leo.txt', 100, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'virgo_file', 'virgo', 'virgo.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'libra_file', 'libra', 'libra.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'cassiopeia_file', 'cassiopeia', 'cassiopeia.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'cepheus_file', 'cepheus', 'cepheus.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'andromeda_file', 'andromeda', 'andromeda.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'canis_file', 'canis', 'canis.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'monoceros_file', 'monoceros', 'monoceros.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
r = add_file_entry( hdb, "'lepus_file', 'lepus', 'lepus.txt', 0, '', '1033', 8192, 1" );
|
||||||
|
ok( r == ERROR_SUCCESS, "cannot add file: %d\n", r);
|
||||||
|
|
||||||
|
hpkg = package_from_db( hdb );
|
||||||
|
ok( hpkg, "failed to create package\n");
|
||||||
|
|
||||||
|
r = MsiDoAction( hpkg, "CostInitialize");
|
||||||
|
ok( r == ERROR_SUCCESS, "cost init failed\n");
|
||||||
|
|
||||||
|
r = MsiDoAction( hpkg, "FileCost");
|
||||||
|
ok( r == ERROR_SUCCESS, "file cost failed\n");
|
||||||
|
|
||||||
|
r = MsiDoAction( hpkg, "CostFinalize");
|
||||||
|
ok( r == ERROR_SUCCESS, "cost finalize failed\n");
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "zodiac", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
ok( state == INSTALLSTATE_ABSENT, "Expected INSTALLSTATE_ABSENT, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "perseus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
ok( state == INSTALLSTATE_ABSENT, "Expected INSTALLSTATE_ABSENT, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "orion", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
ok( state == INSTALLSTATE_ABSENT, "Expected INSTALLSTATE_ABSENT, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "leo", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "virgo", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "libra", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "cassiopeia", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "cepheus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "andromeda", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "canis", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "monoceros", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "lepus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
r = MsiSetFeatureState(hpkg, "orion", INSTALLSTATE_ABSENT);
|
||||||
|
ok( r == ERROR_SUCCESS, "failed to set feature state: %d\n", r);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "zodiac", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "perseus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetFeatureState(hpkg, "orion", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
}
|
||||||
|
ok( action == INSTALLSTATE_ABSENT, "Expected INSTALLSTATE_ABSENT, got %d\n", action);
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "leo", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "virgo", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "libra", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "cassiopeia", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_LOCAL, "Expected INSTALLSTATE_LOCAL, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "cepheus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "andromeda", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_SOURCE, "Expected INSTALLSTATE_SOURCE, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "canis", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "monoceros", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = 0xdeadbee;
|
||||||
|
action = 0xdeadbee;
|
||||||
|
r = MsiGetComponentState(hpkg, "lepus", &state, &action);
|
||||||
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
|
todo_wine
|
||||||
|
{
|
||||||
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
|
}
|
||||||
|
|
||||||
|
MsiCloseHandle(hpkg);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(package)
|
START_TEST(package)
|
||||||
{
|
{
|
||||||
test_createpackage();
|
test_createpackage();
|
||||||
|
@ -2347,4 +2740,5 @@ START_TEST(package)
|
||||||
test_getproperty();
|
test_getproperty();
|
||||||
test_removefiles();
|
test_removefiles();
|
||||||
test_appsearch();
|
test_appsearch();
|
||||||
|
test_featureparents();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue