Aric Stewart : mlang/tests: Skip testing a codepage returning the buggy, legacy unicodeFEFF charset (only appears to exist on windows 2008).
Alexandre Julliard
julliard at winehq.org
Wed Oct 1 14:09:48 CDT 2008
Module: wine
Branch: master
Commit: 4e8dcf89e9b3019d464b1816e5d65df66f63e225
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4e8dcf89e9b3019d464b1816e5d65df66f63e225
Author: Aric Stewart <aric at codeweavers.com>
Date: Sun Sep 28 14:48:29 2008 -0500
mlang/tests: Skip testing a codepage returning the buggy, legacy unicodeFEFF charset (only appears to exist on windows 2008).
---
dlls/mlang/tests/mlang.c | 164 +++++++++++++++++++++++++---------------------
1 files changed, 90 insertions(+), 74 deletions(-)
diff --git a/dlls/mlang/tests/mlang.c b/dlls/mlang/tests/mlang.c
index ab1e4dd..96aef1c 100644
--- a/dlls/mlang/tests/mlang.c
+++ b/dlls/mlang/tests/mlang.c
@@ -330,6 +330,7 @@ static void test_EnumCodePages(IMultiLanguage2 *iML2, DWORD flags)
BOOL convertible;
HRESULT check = S_OK;
static const WCHAR autoW[] = {'_','a','u','t','o',0};
+ static const WCHAR feffW[] = {'u','n','i','c','o','d','e','F','E','F','F',0};
#ifdef DUMP_CP_INFO
trace("MIMECPINFO #%u:\n"
@@ -390,83 +391,98 @@ static void test_EnumCodePages(IMultiLanguage2 *iML2, DWORD flags)
else
trace("IsValidCodePage failed for cp %u\n", cpinfo[i].uiCodePage);
- ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszWebCharset, &mcsi);
- /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
- if (memcmp(cpinfo[i].wszWebCharset, autoW, 5 * sizeof(WCHAR)))
- {
- ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
-#ifdef DUMP_CP_INFO
- trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszWebCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
-#endif
- ok(!lstrcmpiW(cpinfo[i].wszWebCharset, mcsi.wszCharset),
-#ifdef DUMP_CP_INFO
- "%s != %s\n",
- wine_dbgstr_w(cpinfo[i].wszWebCharset), wine_dbgstr_w(mcsi.wszCharset));
-#else
- "wszWebCharset mismatch\n");
-#endif
-
- if (0)
- {
- /* native mlang returns completely messed up encodings in some cases */
- ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
- ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ if (memcmp(cpinfo[i].wszWebCharset,feffW,sizeof(WCHAR)*11)==0)
+ skip("Legacy windows bug returning invalid charset of unicodeFEFF\n");
+ else
+ {
+ ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszWebCharset, &mcsi);
+ /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
+ if (memcmp(cpinfo[i].wszWebCharset, autoW, 5 * sizeof(WCHAR)))
+ {
+ ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
+ #ifdef DUMP_CP_INFO
+ trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszWebCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
+ #endif
+ ok(!lstrcmpiW(cpinfo[i].wszWebCharset, mcsi.wszCharset),
+ #ifdef DUMP_CP_INFO
+ "%s != %s\n",
+ wine_dbgstr_w(cpinfo[i].wszWebCharset), wine_dbgstr_w(mcsi.wszCharset));
+ #else
+ "wszWebCharset mismatch\n");
+ #endif
+
+ if (0)
+ {
+ /* native mlang returns completely messed up encodings in some cases */
+ ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ }
}
- }
-
- ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszHeaderCharset, &mcsi);
- /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
- if (memcmp(cpinfo[i].wszHeaderCharset, autoW, 5 * sizeof(WCHAR)))
- {
- ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
-#ifdef DUMP_CP_INFO
- trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszHeaderCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
-#endif
- ok(!lstrcmpiW(cpinfo[i].wszHeaderCharset, mcsi.wszCharset),
-#ifdef DUMP_CP_INFO
- "%s != %s\n",
- wine_dbgstr_w(cpinfo[i].wszHeaderCharset), wine_dbgstr_w(mcsi.wszCharset));
-#else
- "wszHeaderCharset mismatch\n");
-#endif
-
- if (0)
- {
- /* native mlang returns completely messed up encodings in some cases */
- ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
- ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
- }
- }
+ }
- ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszBodyCharset, &mcsi);
- /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
- if (memcmp(cpinfo[i].wszBodyCharset, autoW, 5 * sizeof(WCHAR)))
- {
- ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
-#ifdef DUMP_CP_INFO
- trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszBodyCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
-#endif
- ok(!lstrcmpiW(cpinfo[i].wszBodyCharset, mcsi.wszCharset),
-#ifdef DUMP_CP_INFO
- "%s != %s\n",
- wine_dbgstr_w(cpinfo[i].wszBodyCharset), wine_dbgstr_w(mcsi.wszCharset));
-#else
- "wszBodyCharset mismatch\n");
-#endif
+ if (memcmp(cpinfo[i].wszHeaderCharset,feffW,sizeof(WCHAR)*11)==0)
+ skip("Legacy windows bug returning invalid charset of unicodeFEFF\n");
+ else
+ {
+ ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszHeaderCharset, &mcsi);
+ /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
+ if (memcmp(cpinfo[i].wszHeaderCharset, autoW, 5 * sizeof(WCHAR)))
+ {
+ ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
+ #ifdef DUMP_CP_INFO
+ trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszHeaderCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
+ #endif
+ ok(!lstrcmpiW(cpinfo[i].wszHeaderCharset, mcsi.wszCharset),
+ #ifdef DUMP_CP_INFO
+ "%s != %s\n",
+ wine_dbgstr_w(cpinfo[i].wszHeaderCharset), wine_dbgstr_w(mcsi.wszCharset));
+ #else
+ "wszHeaderCharset mismatch\n");
+ #endif
+
+ if (0)
+ {
+ /* native mlang returns completely messed up encodings in some cases */
+ ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ }
+ }
+ }
- if (0)
- {
- /* native mlang returns completely messed up encodings in some cases */
- ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
- ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
- "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
- }
- }
+ if (memcmp(cpinfo[i].wszBodyCharset,feffW,sizeof(WCHAR)*11)==0)
+ skip("Legacy windows bug returning invalid charset of unicodeFEFF\n");
+ else
+ {
+ ret = IMultiLanguage2_GetCharsetInfo(iML2, cpinfo[i].wszBodyCharset, &mcsi);
+ /* _autoxxx charsets are a fake and GetCharsetInfo fails for them */
+ if (memcmp(cpinfo[i].wszBodyCharset, autoW, 5 * sizeof(WCHAR)))
+ {
+ ok (ret == S_OK, "IMultiLanguage2_GetCharsetInfo failed: %08x\n", ret);
+ #ifdef DUMP_CP_INFO
+ trace("%s: %u %u %s\n", wine_dbgstr_w(cpinfo[i].wszBodyCharset), mcsi.uiCodePage, mcsi.uiInternetEncoding, wine_dbgstr_w(mcsi.wszCharset));
+ #endif
+ ok(!lstrcmpiW(cpinfo[i].wszBodyCharset, mcsi.wszCharset),
+ #ifdef DUMP_CP_INFO
+ "%s != %s\n",
+ wine_dbgstr_w(cpinfo[i].wszBodyCharset), wine_dbgstr_w(mcsi.wszCharset));
+ #else
+ "wszBodyCharset mismatch\n");
+ #endif
+
+ if (0)
+ {
+ /* native mlang returns completely messed up encodings in some cases */
+ ok(mcsi.uiInternetEncoding == cpinfo[i].uiCodePage || mcsi.uiInternetEncoding == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiInternetEncoding, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ ok(mcsi.uiCodePage == cpinfo[i].uiCodePage || mcsi.uiCodePage == cpinfo[i].uiFamilyCodePage,
+ "%u != %u || %u\n", mcsi.uiCodePage, cpinfo[i].uiCodePage, cpinfo[i].uiFamilyCodePage);
+ }
+ }
+ }
}
/* now IEnumCodePage_Next should fail, since pointer is at the end */
More information about the wine-cvs
mailing list