From 4135900235c58859fffe39290c9089151eeaf666 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Mon, 2 Sep 2013 18:27:01 +0900 Subject: [PATCH] kernel32/tests: Add a test to show that WaitCommEvent should fail if there is a pending wait. --- dlls/kernel32/tests/comm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/comm.c b/dlls/kernel32/tests/comm.c index 882b652bc85..e54be7af149 100644 --- a/dlls/kernel32/tests/comm.c +++ b/dlls/kernel32/tests/comm.c @@ -783,7 +783,7 @@ static void test_waittxempty(void) DWORD before, after, bytes, timediff, evtmask, errors, i; BOOL res; DWORD baud = SLOWBAUD; - OVERLAPPED ovl_write, ovl_wait; + OVERLAPPED ovl_write, ovl_wait, ovl_wait2; COMSTAT stat; hcom = test_OpenComm(TRUE); @@ -956,6 +956,16 @@ todo_wine { ok(!evtmask, "WaitCommEvent: expected 0, got %#x\n", evtmask); + S(U(ovl_wait2)).Offset = 0; + S(U(ovl_wait2)).OffsetHigh = 0; + ovl_wait2.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + SetLastError(0xdeadbeef); + res = WaitCommEvent(hcom, &evtmask, &ovl_wait2); + ok(!res, "WaitCommEvent should fail if there is a pending wait\n"); +todo_wine + ok(GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError()); + CloseHandle(ovl_wait2.hEvent); + /* unblock pending wait */ trace("recovering after WAIT_TIMEOUT...\n"); /* FIXME: Wine fails to unblock with new mask being equal to the old one */