From 0d1f2bf5268248eeac684f24587899d800a98159 Mon Sep 17 00:00:00 2001 From: Misha Koshelev Date: Sun, 15 Jul 2007 16:29:46 -0500 Subject: [PATCH] wininet/tests: Properly handle ERROR_IO_PENDING from InternetQueryDataAvailable. --- dlls/wininet/tests/http.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c index 92ef62920a4..7953b8de933 100644 --- a/dlls/wininet/tests/http.c +++ b/dlls/wininet/tests/http.c @@ -271,11 +271,18 @@ static void InternetReadFile_test(int flags) length = 100; trace("Entering Query loop\n"); - while (length) + while (TRUE) { rc = InternetQueryDataAvailable(hor,&length,0x0,0x0); ok(!(rc == 0 && length != 0),"InternetQueryDataAvailable failed\n"); - + if (flags & INTERNET_FLAG_ASYNC) + { + if (rc == 0 && GetLastError() == ERROR_IO_PENDING) + { + WaitForSingleObject(hCompleteEvent, INFINITE); + continue; + } + } if (length) { char *buffer; @@ -289,6 +296,8 @@ static void InternetReadFile_test(int flags) HeapFree(GetProcessHeap(),0,buffer); } + if (length == 0) + break; } abort: if (hor != 0x0) {