[2/6] msi: Add more patch registration tests.

Paul Vriens paul.vriens.wine at gmail.com
Tue May 11 08:08:07 CDT 2010


On 05/11/2010 02:02 PM, Hans Leidekker wrote:
> ---
>   dlls/msi/tests/patch.c |   23 +++++++++++++++++++++--
>   1 files changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/msi/tests/patch.c b/dlls/msi/tests/patch.c
> index ad581d1..a835e1d 100644
> --- a/dlls/msi/tests/patch.c
> +++ b/dlls/msi/tests/patch.c
> @@ -33,6 +33,8 @@
>   static UINT (WINAPI *pMsiApplyPatchA)( LPCSTR, LPCSTR, INSTALLTYPE, LPCSTR );
>   static UINT (WINAPI *pMsiGetPatchInfoExA)( LPCSTR, LPCSTR, LPCSTR, MSIINSTALLCONTEXT,
>                                              LPCSTR, LPSTR, DWORD * );
> +static UINT (WINAPI *pMsiEnumPatchesExA)( LPCSTR, LPCSTR, DWORD, DWORD, DWORD, LPSTR,
> +                                          LPSTR, MSIINSTALLCONTEXT *, LPSTR, LPDWORD );
>
>   static const char *msifile = "winetest-patch.msi";
>   static const char *mspfile = "winetest-patch.msp";
> @@ -143,6 +145,7 @@ static void init_function_pointers( void )
>
>       GET_PROC( hmsi, MsiApplyPatchA );
>       GET_PROC( hmsi, MsiGetPatchInfoExA );
> +    GET_PROC( hmsi, MsiEnumPatchesExA );
>   #undef GET_PROC
>   }
>
> @@ -988,9 +991,9 @@ static void test_system_tables( void )
>   static void test_patch_registration( void )
>   {
>       UINT r, size;
> -    char buffer[MAX_PATH];
> +    char buffer[MAX_PATH], patch_code[39];
>
> -    if (!pMsiApplyPatchA || !pMsiGetPatchInfoExA)
> +    if (!pMsiApplyPatchA || !pMsiGetPatchInfoExA || !pMsiEnumPatchesExA)
>       {
>           win_skip("required functions not available\n");
>           return;
> @@ -1043,6 +1046,22 @@ static void test_patch_registration( void )
>       ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
>       ok( !buffer[0], "got %s\n", buffer );
>
> +    r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}",
> +                           NULL, MSIINSTALLCONTEXT_USERUNMANAGED, MSIPATCHSTATE_APPLIED,
> +                           0, patch_code, NULL, NULL, NULL, NULL );
> +    ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
> +    ok( !strcmp( patch_code, "{0F96CDC0-4CDF-4304-B283-7B9264889EF7}" ), "wrong patch code\n" );
> +
> +    r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}",
> +                           NULL, MSIINSTALLCONTEXT_MACHINE, MSIPATCHSTATE_APPLIED,
> +                           0, patch_code, NULL, NULL, NULL, NULL );
> +    ok( r == ERROR_NO_MORE_ITEMS, "expected ERROR_NO_MORE_ITEMS, got %u\n", r );
> +
> +    r = MsiEnumPatchesExA( "{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}",
> +                           NULL, MSIINSTALLCONTEXT_USERMANAGED, MSIPATCHSTATE_APPLIED,
> +                           0, patch_code, NULL, NULL, NULL, NULL );
> +    ok( r == ERROR_NO_MORE_ITEMS, "expected ERROR_NO_MORE_ITEMS, got %u\n", r );
> +
>       r = MsiInstallProductA( msifile, "REMOVE=ALL" );
>       ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
>

You forgot to actually use pMsiEnumPatchesExA in some of these calls 
(hence the WTB failures).

-- 
Cheers,

Paul.



More information about the wine-devel mailing list