Alexandre Julliard : kernel32/tests: Try harder to empty the pipe for completion notification.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 24 10:33:23 CST 2015


Module: wine
Branch: master
Commit: 5a6cda458d07435ba7dbe3434df6bff0804b0982
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5a6cda458d07435ba7dbe3434df6bff0804b0982

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 24 21:55:09 2015 +0900

kernel32/tests: Try harder to empty the pipe for completion notification.

---

 dlls/kernel32/tests/pipe.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index 3570676..cf02e15 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -2079,20 +2079,17 @@ static void test_readfileex_pending(void)
     ok(completion_lpoverlapped == &overlapped, "completion called with wrong overlapped pointer\n");
 
     /* free up some space in the pipe */
-    ret = ReadFile(client, read_buf, sizeof(read_buf), &num_bytes, NULL);
-    ok(ret == TRUE, "ReadFile failed\n");
-
-    ok(completion_called == 0, "completion routine called during ReadFile\n");
-
-    wait = WaitForSingleObjectEx(event, 0, TRUE);
-    ok(wait == WAIT_IO_COMPLETION || wait == WAIT_OBJECT_0, "WaitForSingleObject returned %x\n", wait);
-    if (wait == WAIT_TIMEOUT)
+    for (i=0; i<256; i++)
     {
         ret = ReadFile(client, read_buf, sizeof(read_buf), &num_bytes, NULL);
         ok(ret == TRUE, "ReadFile failed\n");
+
         ok(completion_called == 0, "completion routine called during ReadFile\n");
+
         wait = WaitForSingleObjectEx(event, 0, TRUE);
-        ok(wait == WAIT_IO_COMPLETION || wait == WAIT_OBJECT_0, "WaitForSingleObject returned %x\n", wait);
+        ok(wait == WAIT_IO_COMPLETION || wait == WAIT_OBJECT_0 || wait == WAIT_TIMEOUT,
+           "WaitForSingleObject returned %x\n", wait);
+        if (wait != WAIT_TIMEOUT) break;
     }
 
     ok(completion_called == 1, "completion routine not called\n");




More information about the wine-cvs mailing list