LoadStringW [1/2]

Dmitry Timoshkov dmitry at codeweavers.com
Mon Jan 21 02:29:07 CST 2008


"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.

-- 
Dmitry.



More information about the wine-devel mailing list