Module: wine Branch: master Commit: 71fa5a36b156c7637591724316e93696700a52a2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=71fa5a36b156c7637591724316...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Feb 19 11:36:12 2010 +0100
advapi32/tests: Fix the ReadEventLog error checking.
---
dlls/advapi32/tests/eventlog.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c index 3907873..ff3f658 100644 --- a/dlls/advapi32/tests/eventlog.c +++ b/dlls/advapi32/tests/eventlog.c @@ -767,22 +767,28 @@ static void test_readwrite(void) { win_skip("Win7 fails when using incorrect event types\n"); ret = ReportEvent(handle, 0, 0, 0, NULL, 0, 0, NULL, NULL); + ok(ret, "Expected success : %d\n", GetLastError()); } else { void *buf; - DWORD read, needed; + DWORD read, needed = 0; EVENTLOGRECORD *record;
+ ok(ret, "Expected success : %d\n", GetLastError()); + /* Needed to catch earlier Vista (with no ServicePack for example) */ buf = HeapAlloc(GetProcessHeap(), 0, sizeof(EVENTLOGRECORD)); - if (ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ, - 0, buf, sizeof(EVENTLOGRECORD), &read, &needed)) + if (!(ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ, + 0, buf, sizeof(EVENTLOGRECORD), &read, &needed)) && + GetLastError() == ERROR_INSUFFICIENT_BUFFER) { buf = HeapReAlloc(GetProcessHeap(), 0, buf, needed); - ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ, - 0, buf, needed, &read, &needed); - + ret = ReadEventLogA(handle, EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ, + 0, buf, needed, &read, &needed); + } + if (ret) + { record = (EVENTLOGRECORD *)buf;
/* Vista and W2K8 return EVENTLOG_SUCCESS, Windows versions before return @@ -793,7 +799,6 @@ static void test_readwrite(void) } HeapFree(GetProcessHeap(), 0, buf); } - ok(ret, "Expected success : %d\n", GetLastError());
/* This will clear the eventlog. The record numbering for new * events however differs on Vista SP1+. Before Vista the first