registry test incorrect for xp

James Hawkins truiken at gmail.com
Mon Nov 8 13:21:10 CST 2004


I am sorry, these errors are coming from the fact that some tests are
failing in shlwapi and leaving extraneous keys in Wine\Test. 
advapi32\registry is in fact correct, so I will be looking into the
errors of shlwapi to see what is happening.


On Mon, 8 Nov 2004 02:54:32 -0500, James Hawkins <truiken at gmail.com> wrote:
> I just completed building the wine conformance tests with Visual
> Studio .NET.  When I ran the advapi32/security tests, there were 28
> failures (compiled and tested on XP).  The first error I looked at is:
> 
> registry.c:93: Test failed: data_count set to 24 instead of 7
> 
> Looking at registry.c, this test calls RegEnumValue with an output
> data buffer that is too small,
> 
> LONG RegEnumValue(
>   HKEY hKey,
>   DWORD dwIndex,
>   LPTSTR lpValueName,
>   LPDWORD lpcValueName,
>   LPDWORD lpReserved,
>   LPDWORD lpType,
>   LPBYTE lpData,
>   LPDWORD lpcbData
> );
> 
> so the lpcbData should contain the required size of the buffer on
> return.  hKey is initialized to HKCU\Software\Wine\Test and dwIndex is
> 0, so we're reading this:
> 
> Name: Test1
> Type: REG_EXPAND_SZ
> Data: %LONGSYSTEMVAR%\subdir1
> 
> The current test expects RegEnumValue to expand the environment
> variable %LONGSYSTEMVAR%, leaving nothing since the variable doesn't
> exist.  If this were the case then lpcbData would return the length of
> 'subdir1' which is 7, which is what the test expects, but testing
> shows that even though the type is REG_EXPAND_SZ, RegEnumValue does
> not expand the environment variable, so lpcbData contains the length
> of %LONGSYSTEMVAR%\subdir1 which is 24, and which is what is returned
> when called with XP.  This is further clarified by msdn docs,
> 
> "Your application should call ExpandEnvironmentStrings before
> attempting to read the value of a REG_EXPAND_SZ registry data type."
> 
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apcompat/apcompat/call_expandenvironmentstrings_before_reading_reg_expand_sz.asp
> 
> While it never says that RegEnumValue doesn't expand REG_EXPAND_SZ,
> this evidence shows that this is the case.  If anyone has any thoughts
> on this, please let me know.  Otherwise I will be sending a patch that
> fixes this test and then checking the test in wine to see if our
> RegEnumValue needs to be fixed as well.
> 
> --
> James Hawkins
> 


-- 
James Hawkins



More information about the wine-devel mailing list