Juan Lang : crypt32: Fix test failures across Windows versions.
Alexandre Julliard
julliard at winehq.org
Wed Nov 11 08:33:23 CST 2009
Module: wine
Branch: master
Commit: 0695b0dc73e004a78744541d72e817a6d94d88dd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0695b0dc73e004a78744541d72e817a6d94d88dd
Author: Juan Lang <juan.lang at gmail.com>
Date: Tue Nov 10 11:47:59 2009 -0800
crypt32: Fix test failures across Windows versions.
---
dlls/crypt32/tests/encode.c | 32 ++++++++++++++++++++++++++++----
1 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/dlls/crypt32/tests/encode.c b/dlls/crypt32/tests/encode.c
index 934aceb..9c2d739 100644
--- a/dlls/crypt32/tests/encode.c
+++ b/dlls/crypt32/tests/encode.c
@@ -1391,11 +1391,35 @@ static void test_decodeNameValue(DWORD dwEncoding)
embeddedNullNameValue.value.dwValueType, GetLastError());
if (ret)
{
- CERT_NAME_VALUE value = { CERT_RDN_ENCODED_BLOB,
+ CERT_NAME_VALUE rdnEncodedValue = { CERT_RDN_ENCODED_BLOB,
{ sizeof(ia5EmbeddedNull), ia5EmbeddedNull } };
-
- todo_wine
- compareNameValues(&value, (const CERT_NAME_VALUE *)buf);
+ CERT_NAME_VALUE embeddedNullValue = { CERT_RDN_IA5_STRING,
+ { sizeof(embedded_null) - 1, (BYTE *)embedded_null } };
+ const CERT_NAME_VALUE *got = (const CERT_NAME_VALUE *)buf,
+ *expected = NULL;
+
+ /* Some Windows versions decode name values with embedded NULLs,
+ * others leave them encoded, even with the same version of crypt32.
+ * Accept either.
+ */
+ ok(got->dwValueType == CERT_RDN_ENCODED_BLOB ||
+ got->dwValueType == CERT_RDN_IA5_STRING,
+ "Expected CERT_RDN_ENCODED_BLOB or CERT_RDN_IA5_STRING, got %d\n",
+ got->dwValueType);
+ if (got->dwValueType == CERT_RDN_ENCODED_BLOB)
+ expected = &rdnEncodedValue;
+ else if (got->dwValueType == CERT_RDN_IA5_STRING)
+ expected = &embeddedNullValue;
+ if (expected)
+ {
+ ok(got->Value.cbData == expected->Value.cbData,
+ "String type %d: unexpected data size, got %d, expected %d\n",
+ got->dwValueType, got->Value.cbData, expected->Value.cbData);
+ if (got->Value.cbData && got->Value.pbData)
+ ok(!memcmp(got->Value.pbData, expected->Value.pbData,
+ min(got->Value.cbData, expected->Value.cbData)),
+ "String type %d: unexpected value\n", expected->dwValueType);
+ }
LocalFree(buf);
}
}
More information about the wine-cvs
mailing list