Module: wine Branch: master Commit: 3fdf6024a2cb68f95450e24802ec55ed172e20ae URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fdf6024a2cb68f95450e24802...
Author: Juan Lang juan.lang@gmail.com Date: Thu Oct 30 10:10:09 2008 -0700
crypt32: Fix some test failures on Win9x/NT4.
---
dlls/crypt32/tests/encode.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/dlls/crypt32/tests/encode.c b/dlls/crypt32/tests/encode.c index e08a7ce..1dacc10 100644 --- a/dlls/crypt32/tests/encode.c +++ b/dlls/crypt32/tests/encode.c @@ -469,7 +469,8 @@ static void testTimeEncoding(DWORD dwEncoding, LPCSTR structType, } } else - ok((!ret && GetLastError() == CRYPT_E_BAD_ENCODE) || broken(ret), + ok((!ret && GetLastError() == CRYPT_E_BAD_ENCODE) || + broken(GetLastError() == ERROR_SUCCESS), "Expected CRYPT_E_BAD_ENCODE, got 0x%08x\n", GetLastError()); }
@@ -498,13 +499,20 @@ static void compareTime(const SYSTEMTIME *expected, const FILETIME *got) SYSTEMTIME st;
FileTimeToSystemTime(got, &st); - ok(expected->wYear == st.wYear && + ok((expected->wYear == st.wYear && expected->wMonth == st.wMonth && expected->wDay == st.wDay && expected->wHour == st.wHour && expected->wMinute == st.wMinute && expected->wSecond == st.wSecond && - abs(expected->wMilliseconds - st.wMilliseconds) <= 1, + abs(expected->wMilliseconds - st.wMilliseconds) <= 1) || + /* Some Windows systems only seem to be accurate in their time decoding to + * within about an hour. + */ + broken(expected->wYear == st.wYear && + expected->wMonth == st.wMonth && + expected->wDay == st.wDay && + abs(expected->wHour - st.wHour) <= 1), "Got unexpected value for time decoding:\nexpected %s, got %s\n", printSystemTime(expected), printFileTime(got)); } @@ -524,7 +532,8 @@ static void testTimeDecoding(DWORD dwEncoding, LPCSTR structType, if (structType == X509_CHOICE_OF_TIME || (time->sysTime.wYear >= 1950 && time->sysTime.wYear <= 2050)) { - ok(ret, "CryptDecodeObjectEx failed: %d (0x%08x)\n", GetLastError(), + ok(ret || broken(GetLastError() == OSS_DATA_ERROR), + "CryptDecodeObjectEx failed: %d (0x%08x)\n", GetLastError(), GetLastError()); if (ret) compareTime(&time->sysTime, &ft);