Jacek Caban : kernel32/tests: Add more FlushConsoleInputBuffer tests.

Alexandre Julliard julliard at winehq.org
Thu Oct 15 15:41:10 CDT 2020


Module: wine
Branch: master
Commit: 591cb80dea8c094539b4bc4ab640b00538c6e06a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=591cb80dea8c094539b4bc4ab640b00538c6e06a

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Oct 15 18:19:30 2020 +0200

kernel32/tests: Add more FlushConsoleInputBuffer tests.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/console.c | 58 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index ddd5bfcb4c4..495fa1b9e57 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -1970,6 +1970,63 @@ static void test_WriteConsoleInputW(HANDLE input_handle)
     ok(ret == TRUE, "Expected SetConsoleMode to return TRUE, got %d\n", ret);
 }
 
+static void test_FlushConsoleInputBuffer(HANDLE input, HANDLE output)
+{
+    INPUT_RECORD record;
+    DWORD count;
+    BOOL ret;
+
+    ret = FlushConsoleInputBuffer(input);
+    ok(ret, "FlushConsoleInputBuffer failed: %u\n", GetLastError());
+
+    ret = GetNumberOfConsoleInputEvents(input, &count);
+    ok(ret, "GetNumberOfConsoleInputEvents failed: %u\n", GetLastError());
+    ok(count == 0, "Expected count to be 0, got %u\n", count);
+
+    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.UnicodeChar = '\r';
+    record.Event.KeyEvent.dwControlKeyState = 0;
+    ret = WriteConsoleInputW(input, &record, 1, &count);
+    ok(ret, "WriteConsoleInputW failed: %u\n", GetLastError());
+
+    ret = GetNumberOfConsoleInputEvents(input, &count);
+    ok(ret, "GetNumberOfConsoleInputEvents failed: %u\n", GetLastError());
+    ok(count == 1, "Expected count to be 0, got %u\n", count);
+
+    ret = FlushConsoleInputBuffer(input);
+    ok(ret, "FlushConsoleInputBuffer failed: %u\n", GetLastError());
+
+    ret = GetNumberOfConsoleInputEvents(input, &count);
+    ok(ret, "GetNumberOfConsoleInputEvents failed: %u\n", GetLastError());
+    ok(count == 0, "Expected count to be 0, got %u\n", count);
+
+    ret = WriteConsoleInputW(input, &record, 1, &count);
+    ok(ret, "WriteConsoleInputW failed: %u\n", GetLastError());
+
+    ret = GetNumberOfConsoleInputEvents(input, &count);
+    ok(ret, "GetNumberOfConsoleInputEvents failed: %u\n", GetLastError());
+    ok(count == 1, "Expected count to be 0, got %u\n", count);
+
+    ret = FlushFileBuffers(input);
+    ok(ret, "FlushFileBuffers failed: %u\n", GetLastError());
+
+    ret = GetNumberOfConsoleInputEvents(input, &count);
+    ok(ret, "GetNumberOfConsoleInputEvents failed: %u\n", GetLastError());
+    ok(count == 0, "Expected count to be 0, got %u\n", count);
+
+    ret = FlushConsoleInputBuffer(output);
+    ok(!ret && GetLastError() == ERROR_INVALID_HANDLE, "FlushConsoleInputBuffer returned: %x(%u)\n",
+       ret, GetLastError());
+
+    ret = FlushFileBuffers(output);
+    ok(!ret && GetLastError() == ERROR_INVALID_HANDLE, "FlushFileBuffers returned: %x(%u)\n",
+       ret, GetLastError());
+}
+
 static void test_WriteConsoleOutputCharacterA(HANDLE output_handle)
 {
     static const char output[] = {'a', 0};
@@ -4269,6 +4326,7 @@ START_TEST(console)
     test_GetNumberOfConsoleInputEvents(hConIn);
     test_WriteConsoleInputA(hConIn);
     test_WriteConsoleInputW(hConIn);
+    test_FlushConsoleInputBuffer(hConIn, hConOut);
     test_WriteConsoleOutputCharacterA(hConOut);
     test_WriteConsoleOutputCharacterW(hConOut);
     test_WriteConsoleOutputAttribute(hConOut);




More information about the wine-cvs mailing list