[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: [PATCH 5/5] usp10/tests: Cleanup test_ScriptGetFontFunctions().
From:       Aric Stewart <aric () codeweavers ! com>
Date:       2018-02-28 16:40:15
Message-ID: d01a7488-9600-b639-4969-cc52f43e959a () codeweavers ! com
[Download RAW message or body]

Signed-off-by: Aric Stewart <aric@codeweavers.com>

On 2/28/18 12:26 AM, Henri Verbeet wrote:
> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
> ---
> dlls/usp10/tests/usp10.c | 205 ++++++++++++++++++++++++-----------------------
> 1 file changed, 103 insertions(+), 102 deletions(-)
> 
> diff --git a/dlls/usp10/tests/usp10.c b/dlls/usp10/tests/usp10.c
> index cd2c129..f548b57 100644
> --- a/dlls/usp10/tests/usp10.c
> +++ b/dlls/usp10/tests/usp10.c
> @@ -3701,116 +3701,117 @@ static void test_newlines(void)
> 
> static void test_ScriptGetFontFunctions(HDC hdc)
> {
> +    static const WCHAR test_phagspa[] = {0xa84f, 0xa861, 0xa843, 0x0020, 0xa863, \
> 0xa861, 0xa859, +            0x0020, 0xa850, 0xa85c, 0xa85e};
> +    SCRIPT_CONTROL control;
> +    SCRIPT_CACHE sc = NULL;
> +    SCRIPT_ITEM items[15];
> +    OPENTYPE_TAG tags[5];
> +    SCRIPT_STATE state;
> +    int count = 0;
> HRESULT hr;
> +
> if (!pScriptGetFontScriptTags || !pScriptGetFontLanguageTags || \
> !pScriptGetFontFeatureTags) {
> -        win_skip("ScriptGetFontScriptTags,ScriptGetFontLanguageTags or \
> ScriptGetFontFeatureTags not available on this platform\n"); +        \
> win_skip("ScriptGetFontScriptTags, ScriptGetFontLanguageTags or " +                \
> "ScriptGetFontFeatureTags not available on this platform.\n"); +        return;
> }
> +
> +    hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, NULL, NULL);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, NULL, &count);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontScriptTags(hdc, &sc, NULL, ARRAY_SIZE(tags), tags, NULL);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, tags, &count);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontScriptTags(NULL, &sc, NULL, ARRAY_SIZE(tags), tags, \
> &count); +    ok(hr == E_PENDING, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontScriptTags(hdc, &sc, NULL, ARRAY_SIZE(tags), tags, &count);
> +    ok(hr == S_OK || hr == E_OUTOFMEMORY, "Got unexpected hr %#x.\n", hr);
> +    if (hr == S_OK)
> +        ok(count <= 5, "Got unexpected count %d.\n", count);
> else
> -    {
> -        SCRIPT_CACHE sc = NULL;
> -        OPENTYPE_TAG tags[5];
> -        int count = 0;
> -        int outnItems=0;
> -        SCRIPT_ITEM outpItems[15];
> -        SCRIPT_CONTROL Control;
> -        SCRIPT_STATE State;
> -        static const WCHAR test_phagspa[] = {0xa84f, 0xa861, 0xa843, 0x0020, \
>                 0xa863, 0xa861, 0xa859, 0x0020, 0xa850, 0xa85c, 0xa85e};
> -
> -        hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, NULL, NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, NULL, &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 5, tags, NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 0, tags, &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontScriptTags(NULL, &sc, NULL, 5, tags, &count);
> -        ok(hr == E_PENDING,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontScriptTags(hdc, &sc, NULL, 5, tags, &count);
> -        ok((hr == S_OK || hr == E_OUTOFMEMORY),"Incorrect return code\n");
> -        if (hr == S_OK)
> -            ok(count <= 5, "Count should be less or equal to 5 with S_OK \
>                 return\n");
> -        else if (hr == E_OUTOFMEMORY)
> -            ok(count == 0, "Count should be 0 with E_OUTOFMEMORY return\n");
> -        ok(sc != NULL, "ScriptCache should be initialized\n");
> +        ok(!count, "Got unexpected count %d.\n", count);
> +    ok(!!sc, "Got unexpected script cache %p.\n", sc);
> 
> -        ScriptFreeCache(&sc);
> -        sc = NULL;
> -
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, NULL, NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, NULL, \
>                 &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 5, tags, NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, tags, \
>                 &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontLanguageTags(NULL, &sc, NULL, latn_tag, 5, tags, \
>                 &count);
> -        ok(hr == E_PENDING,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 5, tags, \
>                 &count);
> -        ok((hr == S_OK || hr == E_OUTOFMEMORY),"Incorrect return code\n");
> -        if (hr == S_OK)
> -            ok(count <= 5, "Count should be less or equal to 5 with S_OK \
>                 return\n");
> -        else if (hr == E_OUTOFMEMORY)
> -            ok(count == 0, "Count should be 0 with E_OUTOFMEMORY return\n");
> +    ScriptFreeCache(&sc);
> +    sc = NULL;
> 
> -        ScriptFreeCache(&sc);
> -        sc = NULL;
> -
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, NULL, \
>                 NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, NULL, \
>                 &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 5, tags, \
>                 NULL);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, tags, \
>                 &count);
> -        ok(hr == E_INVALIDARG,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontFeatureTags(NULL, &sc, NULL, latn_tag, 0x0, 5, tags, \
>                 &count);
> -        ok(hr == E_PENDING,"Incorrect return code\n");
> -        ok(sc == NULL, "ScriptCache should remain uninitialized\n");
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 5, tags, \
>                 &count);
> -        ok((hr == S_OK || hr == E_OUTOFMEMORY),"Incorrect return code\n");
> -        if (hr == S_OK)
> -            ok(count <= 5, "Count should be less or equal to 5 with S_OK \
>                 return\n");
> -        else if (hr == E_OUTOFMEMORY)
> -            ok(count == 0, "Count should be 0 with E_OUTOFMEMORY return\n");
> -
> -        memset(&Control, 0, sizeof(Control));
> -        memset(&State, 0, sizeof(State));
> -
> -        hr = ScriptItemize(test_phagspa, 10, 15, &Control, &State, outpItems, \
>                 &outnItems);
> -        ok(hr == S_OK, "ScriptItemize failed: 0x%08x\n", hr);
> -        memset(tags,0,sizeof(tags));
> -        hr = pScriptGetFontScriptTags(hdc, &sc, &outpItems[0].a, 5, tags, &count);
> -        ok( hr == USP_E_SCRIPT_NOT_IN_FONT || broken(hr == S_OK), "wrong return \
>                 code\n");
> -
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, dsrt_tag, 5, tags, \
>                 &count);
> -        ok( hr == S_OK, "wrong return code\n");
> -        hr = pScriptGetFontLanguageTags(hdc, &sc, &outpItems[0].a, dsrt_tag, 5, \
>                 tags, &count);
> -        ok( hr == E_INVALIDARG || broken(hr == S_OK), "wrong return code\n");
> -
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, dsrt_tag, 0x0, 5, tags, \
>                 &count);
> -        ok( hr == S_OK, "wrong return code\n");
> -        hr = pScriptGetFontFeatureTags(hdc, &sc, &outpItems[0].a, dsrt_tag, 0x0, \
>                 5, tags, &count);
> -        ok( hr == E_INVALIDARG || broken(hr == S_OK), "wrong return code\n");
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, NULL, NULL);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, NULL, &count);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, ARRAY_SIZE(tags), \
> tags, NULL); +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, 0, tags, &count);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontLanguageTags(NULL, &sc, NULL, latn_tag, ARRAY_SIZE(tags), \
> tags, &count); +    ok(hr == E_PENDING, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, latn_tag, ARRAY_SIZE(tags), \
> tags, &count); +    ok(hr == S_OK || hr == E_OUTOFMEMORY, "Got unexpected hr \
> %#x.\n", hr); +    if (hr == S_OK)
> +        ok(count <= 5, "Got unexpected count %d.\n", count);
> +    else
> +        ok(!count, "Got unexpected count %d.\n", count);
> 
> -        ScriptFreeCache(&sc);
> -    }
> +    ScriptFreeCache(&sc);
> +    sc = NULL;
> +
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, NULL, NULL);
> +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, NULL, \
> &count); +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, \
> ARRAY_SIZE(tags), tags, NULL); +    ok(hr == E_INVALIDARG, "Got unexpected hr \
> %#x.\n", hr); +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, 0, tags, \
> &count); +    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
> +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontFeatureTags(NULL, &sc, NULL, latn_tag, 0x0, \
> ARRAY_SIZE(tags), tags, &count); +    ok(hr == E_PENDING, "Got unexpected hr \
> %#x.\n", hr); +    ok(!sc, "Got unexpected script cache %p.\n", sc);
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, latn_tag, 0x0, \
> ARRAY_SIZE(tags), tags, &count); +    ok(hr == S_OK || hr == E_OUTOFMEMORY, "Got \
> unexpected hr %#x.\n", hr); +    if (hr == S_OK)
> +        ok(count <= 5, "Got unexpected count %d.\n", count);
> +    else
> +        ok(!count, "Got unexpected count %d.\n", count);
> +
> +    memset(&control, 0, sizeof(control));
> +    memset(&state, 0, sizeof(state));
> +
> +    hr = ScriptItemize(test_phagspa, ARRAY_SIZE(test_phagspa), ARRAY_SIZE(items),
> +            &control, &state, items, &count);
> +    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
> +    memset(tags, 0, sizeof(tags));
> +    hr = pScriptGetFontScriptTags(hdc, &sc, &items[0].a, ARRAY_SIZE(tags), tags, \
> &count); +    ok(hr == USP_E_SCRIPT_NOT_IN_FONT || broken(hr == S_OK), "Got \
> unexpected hr %#x.\n", hr); +
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, NULL, dsrt_tag, ARRAY_SIZE(tags), \
> tags, &count); +    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
> +    hr = pScriptGetFontLanguageTags(hdc, &sc, &items[0].a, dsrt_tag, \
> ARRAY_SIZE(tags), tags, &count); +    ok(hr == E_INVALIDARG || broken(hr == S_OK), \
> "Got unexpected hr %#x.\n", hr); +
> +    hr = pScriptGetFontFeatureTags(hdc, &sc, NULL, dsrt_tag, 0x0, \
> ARRAY_SIZE(tags), tags, &count); +    ok(hr == S_OK, "Got unexpected hr %#x.\n", \
> hr); +    hr = pScriptGetFontFeatureTags(hdc, &sc, &items[0].a, dsrt_tag, 0x0, \
> ARRAY_SIZE(tags), tags, &count); +    ok(hr == E_INVALIDARG || broken(hr == S_OK), \
> "Got unexpected hr %#x.\n", hr); +
> +    ScriptFreeCache(&sc);
> }
> 
> struct logical_width_test
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic