[PATCH] kernel32/tests/fiber: Add tests for fiber-local storage.

André Hentschel nerv at dawncrow.de
Sun Jul 10 12:31:59 CDT 2016


Hi,

comments inline

Am 08.07.2016 um 00:16 schrieb John Sheu:
> +static void test_FiberLocalStorageCallback(PFLS_CALLBACK_FUNCTION cbfunc) {
> +    DWORD fls;
> +    BOOL ret;
> +    PVOID val, val2;
> +
> +    if (!pFlsAlloc || !pFlsSetValue || !pFlsGetValue || !pFlsFree)
> +    {
> +        win_skip( "Fiber Local Storage not supported\n" );
> +        return;
> +    }
> +
> +    /* Test that the callback is executed */
> +    SetLastError( 0xdeadbeef );
> +    cbCount = 0;
> +    fls = pFlsAlloc( cbfunc );
> +    ok( fls != FLS_OUT_OF_INDEXES, "FlsAlloc failed with error %u\n", GetLastError() );
> +
> +    SetLastError( 0xdeadbeef );
> +    val = (PVOID) 0x1587;
> +    fls_value_to_set = val;
> +    ret = pFlsSetValue( fls, val );
> +    ok(ret, "FlsSetValue failed with error %u\n", GetLastError() );
> +
> +    val2 = pFlsGetValue( fls );
> +    ok(val == val2, "FlsGetValue returned %p, expected %p\n", val2, val);
> +
> +    SetLastError( 0xdeadbeef );
> +    ret = pFlsFree( fls );
> +    ok(ret, "FlsFree failed with error %u\n", GetLastError() );
> +    todo_wine
> +    {
> +        ok( cbCount == 1, "Wrong callback count: %d\n", cbCount );
> +    }


Please make those one-liners, like
todo_wine ok(...);
and the patch should be fine then


> +
> +    /* Test that callback is not executed if value is NULL */
> +    SetLastError( 0xdeadbeef );
> +    cbCount = 0;
> +    fls = pFlsAlloc( cbfunc );
> +    ok( fls != FLS_OUT_OF_INDEXES, "FlsAlloc failed with error %u\n", GetLastError() );
> +
> +    SetLastError( 0xdeadbeef );
> +    ret = pFlsSetValue( fls, NULL );
> +    ok( ret, "FlsSetValue failed with error %u\n", GetLastError() );
> +
> +    SetLastError( 0xdeadbeef );
> +    pFlsFree( fls );
> +    ok( ret, "FlsFree failed with error %u\n", GetLastError() );
> +    ok( cbCount == 0, "Wrong callback count: %d\n", cbCount );
> +}




More information about the wine-devel mailing list