gdi32/tests: Mark Win8.1 behaviour for johab charset as broken
André Hentschel
nerv at dawncrow.de
Fri Mar 14 18:15:54 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=35575
---
dlls/gdi32/tests/font.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index a9d2fb0..fcb03a9 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -1181,20 +1181,21 @@ static void test_GetCharABCWidths(void)
UINT cs;
UINT a;
UINT w;
+ BOOL broken;
BOOL r[sizeof range / sizeof range[0]];
} c[] =
{
- {ANSI_CHARSET, 0x30, 0x30,
+ {ANSI_CHARSET, 0x30, 0x30, FALSE,
{TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}},
- {SHIFTJIS_CHARSET, 0x82a0, 0x3042,
+ {SHIFTJIS_CHARSET, 0x82a0, 0x3042, FALSE,
{TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}},
- {HANGEUL_CHARSET, 0x8141, 0xac02,
+ {HANGEUL_CHARSET, 0x8141, 0xac02, FALSE,
{TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}},
- {JOHAB_CHARSET, 0x8446, 0x3135,
+ {JOHAB_CHARSET, 0x8446, 0x3135, TRUE /* Win8.1 */,
{TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}},
- {GB2312_CHARSET, 0x8141, 0x4e04,
+ {GB2312_CHARSET, 0x8141, 0x4e04, FALSE,
{TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}},
- {CHINESEBIG5_CHARSET, 0xa142, 0x3001,
+ {CHINESEBIG5_CHARSET, 0xa142, 0x3001, FALSE,
{TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE}}
};
UINT i;
@@ -1264,9 +1265,9 @@ static void test_GetCharABCWidths(void)
memset(a, 0, sizeof a);
memset(w, 0, sizeof w);
hfont = SelectObject(hdc, hfont);
- ok(pGetCharABCWidthsA(hdc, c[i].a, c[i].a + 1, a) &&
- pGetCharABCWidthsW(hdc, c[i].w, c[i].w + 1, w) &&
- memcmp(a, w, sizeof a) == 0,
+ ok((pGetCharABCWidthsA(hdc, c[i].a, c[i].a + 1, a) &&
+ pGetCharABCWidthsW(hdc, c[i].w, c[i].w + 1, w) &&
+ memcmp(a, w, sizeof a) == 0) || broken(c[i].broken),
"GetCharABCWidthsA and GetCharABCWidthsW should return same widths. charset = %u\n", c[i].cs);
memset(a, 0xbb, sizeof a);
@@ -1282,13 +1283,13 @@ static void test_GetCharABCWidths(void)
{
memset(full, 0xdd, sizeof full);
ret = pGetCharABCWidthsA(hdc, range[j].first, range[j].last, full);
- ok(ret == c[i].r[j], "GetCharABCWidthsA %x - %x should have %s\n",
+ ok(ret == c[i].r[j] || broken(c[i].broken), "GetCharABCWidthsA %x - %x should have %s\n",
range[j].first, range[j].last, c[i].r[j] ? "succeeded" : "failed");
if (ret)
{
UINT last = range[j].last - range[j].first;
ret = pGetCharABCWidthsA(hdc, range[j].last, range[j].last, a);
- ok(ret && memcmp(&full[last], &a[0], sizeof(ABC)) == 0,
+ ok((ret && memcmp(&full[last], &a[0], sizeof(ABC)) == 0) || broken(c[i].broken),
"GetCharABCWidthsA %x should match. codepage = %u\n",
range[j].last, c[i].cs);
}
--
1.8.1.2
More information about the wine-patches
mailing list