Paul Vriens : kernel32: Fix/change tests for systems with no ServicePack.

Alexandre Julliard julliard at winehq.org
Tue Mar 11 10:51:47 CDT 2008


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

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Tue Mar 11 11:09:38 2008 +0100

kernel32: Fix/change tests for systems with no ServicePack.

---

 dlls/kernel32/tests/version.c |   44 +++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c
index 07d35da..5371795 100644
--- a/dlls/kernel32/tests/version.c
+++ b/dlls/kernel32/tests/version.c
@@ -101,6 +101,7 @@ static void test_VerifyVersionInfo(void)
 {
     OSVERSIONINFOEX info = { sizeof(info) };
     BOOL ret;
+    DWORD servicepack;
 
     if(!pVerifyVersionInfoA || !pVerSetConditionMask)
     {
@@ -108,6 +109,14 @@ static void test_VerifyVersionInfo(void)
         return;
     }
 
+    /* Before we start doing some tests we should check what the version of
+     * the ServicePack is. Tests on a box with no ServicePack will fail otherwise.
+     */
+    GetVersionEx((OSVERSIONINFO *)&info);
+    servicepack = info.wServicePackMajor;
+    memset(&info, 0, sizeof(info));
+    info.dwOSVersionInfoSize = sizeof(info);
+
     ret = pVerifyVersionInfoA(&info, VER_MAJORVERSION | VER_MINORVERSION,
         pVerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL));
     ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
@@ -152,7 +161,11 @@ static void test_VerifyVersionInfo(void)
     ret = pVerifyVersionInfoA(&info, VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
         pVerSetConditionMask(pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER_EQUAL),
             VER_MAJORVERSION, VER_GREATER_EQUAL));
-    ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
+    if (servicepack == 0)
+        ok(!ret && (GetLastError() == ERROR_OLD_WIN_VERSION),
+            "VerifyVersionInfoA should have failed with ERROR_OLD_WIN_VERSION instead of %d\n", GetLastError());
+    else
+        ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
 
     GetVersionEx((OSVERSIONINFO *)&info);
     info.wServicePackMinor++;
@@ -161,17 +174,24 @@ static void test_VerifyVersionInfo(void)
     ok(!ret && (GetLastError() == ERROR_OLD_WIN_VERSION),
         "VerifyVersionInfoA should have failed with ERROR_OLD_WIN_VERSION instead of %d\n", GetLastError());
 
-    GetVersionEx((OSVERSIONINFO *)&info);
-    info.wServicePackMajor--;
-    ret = pVerifyVersionInfoA(&info, VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
-        pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER));
-    ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
-
-    GetVersionEx((OSVERSIONINFO *)&info);
-    info.wServicePackMajor--;
-    ret = pVerifyVersionInfoA(&info, VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
-        pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER_EQUAL));
-    ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
+    if (servicepack == 0)
+    {
+        skip("There is no ServicePack on this system\n");
+    }
+    else
+    {
+        GetVersionEx((OSVERSIONINFO *)&info);
+        info.wServicePackMajor--;
+        ret = pVerifyVersionInfoA(&info, VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
+            pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER));
+        ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
+
+        GetVersionEx((OSVERSIONINFO *)&info);
+        info.wServicePackMajor--;
+        ret = pVerifyVersionInfoA(&info, VER_MINORVERSION | VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,
+            pVerSetConditionMask(0, VER_MINORVERSION, VER_GREATER_EQUAL));
+        ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError());
+    }
 
     GetVersionEx((OSVERSIONINFO *)&info);
     info.wServicePackMajor++;




More information about the wine-cvs mailing list