LoadStringW [1/2]

Christopher raccoonone at procyongames.com
Mon Jan 21 12:22:14 CST 2008


Dmitry Timoshkov wrote:
> "Christopher" <raccoonone at procyongames.com> wrote:
>
>> +static void test_LoadStringW(void)
>> +{
>> +    HINSTANCE hInst = GetModuleHandle(NULL);
>> +    WCHAR copiedstring[128], returnedstring[128], *resourcepointer = 
>> NULL;
>> +    int strlen, strlen2;
>> +
>> +    /* Check that the string which is returned by LoadStringW 
>> matches +       the string at the pointer returned by Load StringW 
>> when called with buflen = 0 */
>> +    strlen = LoadStringW(hInst, 2, (WCHAR *) &resourcepointer, 0); 
>> /* get pointer to resource. */
>> +    ok(strlen > 0, "LoadStringW failed to get pointer to resource 2, 
>> ret %d, err %d \n", strlen, GetLastError());
>> +    +    strlen2 = LoadStringW(hInst, 2, returnedstring, 
>> sizeof(returnedstring) /sizeof(WCHAR));
>> +    ok(strlen == strlen2, "LoadStringW returned different values 
>> dependent on buflen. ret1 %d, ret2 %d \n", +        strlen, strlen2);
>> +    ok(strlen2 > 0, "LoadStringW failed to load resource 2, ret %d, 
>> err %d \n", strlen2, GetLastError());
>> +    +    if(resourcepointer != NULL)
>> +    {
>> +        memcpy(copiedstring, resourcepointer, strlen * sizeof(WCHAR));
>> +        copiedstring[strlen] = '\0';
>> +    }
>> +    /* check that strings match */
>> +    ok(!memcmp(copiedstring, returnedstring, (strlen + 
>> 1)*sizeof(WCHAR)),
>> +        "LoadStringW returned a string that does not match the 
>> string pointed to by the pointer it returned. \
>> +         returnedstring = %ls, copiedstring = %ls", returnedstring, 
>> copiedstring);
>> +}
>
> It's not clear what this test is supposed to show. If the 1st call
> to LoadStringW is supposed to set resourcepointer to not NULL, why
> don't you test it? Then 'if(resourcepointer != NULL)' check and copying
> to copiedstring are not needed.
>
> Also, if the test depends on a later patch to not fail, the test 
> should be
> included in the patch.
>
Even if I check for resourcepointer != NULL in an ok() [which I will 
add], I still need the if block. String resources are not '\0' 
terminated, and I wish to compare it to the string that was returned by 
LoadStringW



More information about the wine-devel mailing list