[3/11] kernel32/tests: Add tests for Change/DeleteTimerQueueTimer.

Rob Shearman robertshearman at gmail.com
Sat Jul 19 12:29:38 CDT 2008


2008/7/19 Dan Hipschman <dsh at linux.ucla.edu>:
> +static void CALLBACK timer_queue_cb2(PVOID p, BOOLEAN timedOut)
> +{
> +    struct timer_queue_data1 *d = (struct timer_queue_data1 *) p;
> +    ok(timedOut, "Timer callbacks should always time out\n");
> +    /* Wait until our own timer handle is set to avoid a pretty much
> +       impossible race condition (better safe than sorry).  */
> +    if (d->t)
> +        if (++d->num_calls == d->max_calls)

You could change the above two lines to just "if (d->t &&
++d->num_calls == d->max_calls)" and remove a level of indentation.

> +        {
> +            BOOL ret;
> +            SetLastError(0xdeadbeef);
> +            /* Note, XP SP2 does *not* do any deadlock checking, so passing
> +               INVALID_HANDLE_VALUE here will just hang.  */
> +            ret = pDeleteTimerQueueTimer(d->q, d->t, NULL);
> +            ok(!ret, "DeleteTimerQueueTimer\n");
> +            todo_wine
> +            ok(GetLastError() == ERROR_IO_PENDING, "DeleteTimerQueueTimer\n");
> +        }
> +}
> +
> +static void CALLBACK timer_queue_cb3(PVOID p, BOOLEAN timedOut)
> +{
> +    struct timer_queue_data1 *d = (struct timer_queue_data1 *) p;
> +    ok(timedOut, "Timer callbacks should always time out\n");
> +    /* Wait until our own timer handle is set to avoid a pretty much
> +       impossible race condition (better safe than sorry).  */
> +    if (d->t)
> +        if (++d->num_calls == d->max_calls)

Ditto.

> +        {
> +            /* Basically kill the timer since it won't have time to run
> +               again.  */
> +            BOOL ret = pChangeTimerQueueTimer(d->q, d->t, 10000, 0);
> +            ok(ret, "ChangeTimerQueueTimer\n");
> +        }
> +}
> +

-- 
Rob Shearman



More information about the wine-devel mailing list