Paul Vriens : advapi32/tests: Fix some test failures when the computername is fully qualified.
Alexandre Julliard
julliard at winehq.org
Mon Dec 7 10:26:15 CST 2009
Module: wine
Branch: master
Commit: 19f4c42f99b119dbf8fa2419445a9257d8d09b7e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=19f4c42f99b119dbf8fa2419445a9257d8d09b7e
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Sun Dec 6 18:32:06 2009 +0100
advapi32/tests: Fix some test failures when the computername is fully qualified.
---
dlls/advapi32/tests/eventlog.c | 39 +++++++++++++++++++++++++++++----------
1 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c
index 207fec5..a781c06 100644
--- a/dlls/advapi32/tests/eventlog.c
+++ b/dlls/advapi32/tests/eventlog.c
@@ -31,6 +31,8 @@
static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*);
static BOOL (WINAPI *pGetEventLogInformation)(HANDLE,DWORD,LPVOID,DWORD,LPDWORD);
+
+static BOOL (WINAPI *pGetComputerNameExA)(COMPUTER_NAME_FORMAT,LPSTR,LPDWORD);
static BOOL (WINAPI *pWow64DisableWow64FsRedirection)(PVOID *);
static BOOL (WINAPI *pWow64RevertWow64FsRedirection)(PVOID);
@@ -42,6 +44,7 @@ static void init_function_pointers(void)
pCreateWellKnownSid = (void*)GetProcAddress(hadvapi32, "CreateWellKnownSid");
pGetEventLogInformation = (void*)GetProcAddress(hadvapi32, "GetEventLogInformation");
+ pGetComputerNameExA = (void*)GetProcAddress(hkernel32, "GetComputerNameExA");
pWow64DisableWow64FsRedirection = (void*)GetProcAddress(hkernel32, "Wow64DisableWow64FsRedirection");
pWow64RevertWow64FsRedirection = (void*)GetProcAddress(hkernel32, "Wow64RevertWow64FsRedirection");
}
@@ -709,8 +712,8 @@ static void test_readwrite(void)
BOOL ret, sidavailable;
BOOL on_vista = FALSE; /* Used to indicate Vista, W2K8 or Win7 */
int i;
- char localcomputer[MAX_COMPUTERNAME_LENGTH + 1];
- DWORD len = sizeof(localcomputer);
+ char *localcomputer;
+ DWORD size;
if (pCreateWellKnownSid)
{
@@ -727,7 +730,23 @@ static void test_readwrite(void)
user = NULL;
}
- GetComputerNameA(localcomputer, &len);
+ if (pGetComputerNameExA)
+ {
+ size = 0;
+ SetLastError(0xdeadbeef);
+ pGetComputerNameExA(ComputerNameDnsFullyQualified, NULL, &size);
+ /* Cope with W2K (needed size is not set) */
+ if (size == 0 && GetLastError() == ERROR_MORE_DATA)
+ size = 1024;
+ localcomputer = HeapAlloc(GetProcessHeap(), 0, size);
+ pGetComputerNameExA(ComputerNameDnsFullyQualified, localcomputer, &size);
+ }
+ else
+ {
+ size = MAX_COMPUTERNAME_LENGTH + 1;
+ localcomputer = HeapAlloc(GetProcessHeap(), 0, size);
+ GetComputerNameA(localcomputer, &size);
+ }
/* Write an event with an incorrect event type. This will fail on Windows 7
* but succeed on all others, hence it's not part of the struct.
@@ -737,8 +756,7 @@ static void test_readwrite(void)
{
/* Intermittently seen on NT4 when tests are run immediately after boot */
win_skip("Could not get a handle to the eventlog\n");
- HeapFree(GetProcessHeap(), 0, user);
- return;
+ goto cleanup;
}
count = 0xdeadbeef;
@@ -756,9 +774,8 @@ static void test_readwrite(void)
if (count != 0)
{
win_skip("We didn't open our new eventlog\n");
- HeapFree(GetProcessHeap(), 0, user);
CloseEventLog(handle);
- return;
+ goto cleanup;
}
}
@@ -854,7 +871,7 @@ static void test_readwrite(void)
if (count == 0)
{
skip("No events were written to the eventlog\n");
- return;
+ goto cleanup;
}
/* Report only once */
@@ -962,8 +979,6 @@ static void test_readwrite(void)
}
CloseEventLog(handle);
- HeapFree(GetProcessHeap(), 0, user);
-
/* Test clearing a real eventlog */
handle = OpenEventLogA(NULL, eventlogname);
@@ -977,6 +992,10 @@ static void test_readwrite(void)
ok(count == 0, "Expected an empty eventlog, got %d records\n", count);
CloseEventLog(handle);
+
+cleanup:
+ HeapFree(GetProcessHeap(), 0, localcomputer);
+ HeapFree(GetProcessHeap(), 0, user);
}
/* Before Vista:
More information about the wine-cvs
mailing list