[PATCH 1/2] gdi32/tests: Add some more GetCharacterPlacement tests.
Huw Davies
huw at codeweavers.com
Mon Feb 17 09:24:04 CST 2020
On Mon, Feb 17, 2020 at 10:01:04AM +0100, Sven Baars wrote:
> Signed-off-by: Sven Baars <sbaars at codeweavers.com>
> ---
> dlls/gdi32/tests/font.c | 36 +++++++++++++++++++++++++++++++++++-
> 1 file changed, 35 insertions(+), 1 deletion(-)
>
> diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
> index ea1bb960df..48f0710bf6 100644
> --- a/dlls/gdi32/tests/font.c
> +++ b/dlls/gdi32/tests/font.c
> @@ -4926,6 +4926,7 @@ static void test_GetCharacterPlacement(void)
> GCP_RESULTSA result;
> DWORD size, size2;
> WCHAR glyphs[20];
> + int pos[20];
> HDC hdc;
>
> hdc = CreateCompatibleDC(0);
> @@ -4933,23 +4934,56 @@ static void test_GetCharacterPlacement(void)
>
> memset(&result, 0, sizeof(result));
> result.lStructSize = sizeof(result);
> + result.lpCaretPos = pos;
> result.lpGlyphs = glyphs;
> result.nGlyphs = 20;
>
> + pos[0] = -1;
> + glyphs[0] = '!';
> size = GetCharacterPlacementA(hdc, "Wine Test", 9, 0, &result, 0);
> ok(size, "GetCharacterPlacementA failed!\n");
> -
> + ok(result.nGlyphs == 9, "Unexpected number of glyphs %u\n", result.nGlyphs);
> + ok(glyphs[0] == 'W', "Unexpected first glyph %s\n", wine_dbgstr_wn(glyphs, 1));
> + ok(pos[0] == 0, "Unexpected caret position %d\n", pos[0]);
> +
> + pos[0] = -1;
> + glyphs[0] = '!';
> + result.nGlyphs = 20;
> + size2 = GetCharacterPlacementA(hdc, "Wine Test", 0, 0, &result, 0);
> + ok(!size2, "Expected GetCharacterPlacementA to fail\n");
> + todo_wine ok(result.nGlyphs == 20, "Unexpected number of glyphs %u\n", result.nGlyphs);
> + ok(glyphs[0] == '!', "Unexpected first glyph %s\n", wine_dbgstr_wn(glyphs, 1));
> + todo_wine ok(pos[0] == -1, "Unexpected caret position %d\n", pos[0]);
> +
> + pos[0] = -1;
> + glyphs[0] = '!';
> + result.nGlyphs = 20;
> size2 = GetCharacterPlacementA(hdc, "Wine Test", 9, 0, NULL, 0);
> ok(size2, "GetCharacterPlacementA failed!\n");
> ok(size == size2, "GetCharacterPlacementA returned different result: %u vs %u\n", size2, size);
> + ok(result.nGlyphs == 20, "Unexpected number of glyphs %u\n", result.nGlyphs);
> + ok(glyphs[0] == '!', "Unexpected first glyph %s\n", wine_dbgstr_wn(glyphs, 1));
> + ok(pos[0] == -1, "Unexpected caret position %d\n", pos[0]);
There's little point in testing the values from the results structure if it's
not passed to the function. So leave these additional tests and initialisations
out.
>
> + pos[0] = -1;
> + glyphs[0] = '!';
> + result.nGlyphs = 20;
> size2 = GetCharacterPlacementA(hdc, "Wine Test", 9, 1024, NULL, GCP_REORDER);
> ok(size2, "GetCharacterPlacementA failed!\n");
> ok(size == size2, "GetCharacterPlacementA returned different result: %u vs %u\n", size2, size);
> + ok(result.nGlyphs == 20, "Unexpected number of glyphs %u\n", result.nGlyphs);
> + ok(glyphs[0] == '!', "Unexpected first glyph %s\n", wine_dbgstr_wn(glyphs, 1));
> + ok(pos[0] == -1, "Unexpected caret position %d\n", pos[0]);
And the same for these.
Huw.
More information about the wine-devel
mailing list