Alexandre Julliard : advapi32/tests: Fix the ReadEventLog error checking.
Alexandre Julliard
julliard at winehq.org
Fri Feb 19 09:21:34 CST 2010
Module: wine
Branch: master
Commit: 71fa5a36b156c7637591724316e93696700a52a2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=71fa5a36b156c7637591724316e93696700a52a2
Author: Alexandre Julliard <julliard at 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
More information about the wine-cvs
mailing list