Francois Gouget : kernel32/tests: Despite the MSDN claims, GetComputerName( ) does not return the required buffer size... except on Vista. So update the tests accordingly.

Alexandre Julliard julliard at winehq.org
Fri Jan 11 07:20:22 CST 2008


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

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Fri Jan 11 09:52:31 2008 +0100

kernel32/tests: Despite the MSDN claims, GetComputerName() does not return the required buffer size... except on Vista. So update the tests accordingly.

---

 dlls/kernel32/tests/environ.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/dlls/kernel32/tests/environ.c b/dlls/kernel32/tests/environ.c
index a0e425c..06943de 100644
--- a/dlls/kernel32/tests/environ.c
+++ b/dlls/kernel32/tests/environ.c
@@ -298,12 +298,17 @@ static void test_GetComputerName(void)
     error = GetLastError();
     todo_wine
     ok(!ret && error == ERROR_BUFFER_OVERFLOW, "GetComputerNameA should have failed with ERROR_BUFFER_OVERFLOW instead of %d\n", error);
-    size++; /* nul terminating character */
-    name = HeapAlloc(GetProcessHeap(), 0, size * sizeof(name[0]));
-    ok(name != NULL, "HeapAlloc failed with error %d\n", GetLastError());
-    ret = GetComputerNameA(name, &size);
-    ok(ret, "GetComputerNameA failed with error %d\n", GetLastError());
-    HeapFree(GetProcessHeap(), 0, name);
+
+    /* Only Vista returns the computer name length as documented in the MSDN */
+    if (size != 0)
+    {
+        size++; /* nul terminating character */
+        name = HeapAlloc(GetProcessHeap(), 0, size * sizeof(name[0]));
+        ok(name != NULL, "HeapAlloc failed with error %d\n", GetLastError());
+        ret = GetComputerNameA(name, &size);
+        ok(ret, "GetComputerNameA failed with error %d\n", GetLastError());
+        HeapFree(GetProcessHeap(), 0, name);
+    }
 
     size = MAX_COMPUTERNAME_LENGTH + 1;
     name = HeapAlloc(GetProcessHeap(), 0, size * sizeof(name[0]));




More information about the wine-cvs mailing list