[PATCH] Fix/change tests for systems with no ServicePack
Paul Vriens
Paul.Vriens.Wine at gmail.com
Tue Mar 11 05:09:38 CDT 2008
---
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..f8772a1 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++;
--
1.5.4.1
--------------080307030607090208090805--
More information about the wine-patches
mailing list