[PATCH] server/console: Allow waiting on console_input
Keno Fischer
keno at juliacomputing.com
Tue Aug 16 17:46:19 CDT 2016
> To keep the testcase similar to the original code thats probably fine, however I
> would like to point out that you do not really need an asynchronous wait here.
> You could basically test the same with WaitForSingleObject(input_handle, INFINITE).
I wanted to make sure to keep the ordering of events the same as in
the original, which is WaitForSingleEvent->WriteConsoleInput. It seems
like reversing the order here might go down a different code path,
though perhaps here's not the place to test that, since that's handled
in the generic waiting code.
>
>> + /* give worker thread a chance to start up */
>> + Sleep(100);
>> + record.EventType = KEY_EVENT;
>> + record.Event.KeyEvent.bKeyDown = 1;
>> + record.Event.KeyEvent.wRepeatCount = 1;
>> + record.Event.KeyEvent.wVirtualKeyCode = VK_RETURN;
>> + record.Event.KeyEvent.wVirtualScanCode = VK_RETURN;
>> + record.Event.KeyEvent.uChar.AsciiChar = '\r';
>
> If I don't miss anything this does not initialize the upper byte of the union.
Yes you're correct, since I'm calling WriteConsoleInputW, I should be
using the unicode variant.
>
>> + record.Event.KeyEvent.dwControlKeyState = 0;
>> + ret = WriteConsoleInputW(input_handle, &record, 1, &events_written);
>> + ok(ret == TRUE, "Expected WriteConsoleInputW to return TRUE, got %d\n", ret);
>> + wait_ret = WaitForSingleObject(complete_event, INFINITE);
>> + ok(wait_ret == WAIT_OBJECT_0, "Expected the handle to be signaled");
>
> There is a linebreak missing in the line above. For completeness, it also wouldn't
> hurt to add another test after calling FlushConsoleInputBuffer() to make sure it
> times out as expected.
Sounds good.
More information about the wine-devel
mailing list