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