Akihiro Sagawa : gdi32/tests: Add more empty glyph tests.
Alexandre Julliard
julliard at winehq.org
Tue Sep 24 03:22:01 CDT 2013
Module: wine
Branch: master
Commit: cc7b39681dfd8e451870811440192f172337e8ea
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cc7b39681dfd8e451870811440192f172337e8ea
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Fri Sep 20 00:57:46 2013 +0900
gdi32/tests: Add more empty glyph tests.
---
dlls/gdi32/tests/font.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 99c5eef..f68021e 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4029,6 +4029,8 @@ static void test_GetGlyphOutline(void)
LOGFONTA lf;
HFONT hfont, old_hfont;
INT ret, ret2;
+ const UINT fmt[] = { GGO_METRICS, GGO_BITMAP, GGO_GRAY2_BITMAP,
+ GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP };
static const struct
{
UINT cs;
@@ -4105,6 +4107,72 @@ static void test_GetGlyphOutline(void)
ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %u\n", GetLastError());
}
+ for (i = 0; i < sizeof(fmt) / sizeof(fmt[0]); ++i)
+ {
+ DWORD dummy;
+
+ memset(&gm, 0xab, sizeof(gm));
+ SetLastError(0xdeadbeef);
+ ret = GetGlyphOutlineW(hdc, ' ', fmt[i], &gm, 0, NULL, &mat);
+ if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ if (fmt[i] == GGO_METRICS)
+ ok(ret != GDI_ERROR, "%2d:GetGlyphOutlineW should succeed, got %d\n", fmt[i], ret);
+ else
+ ok(ret == 0, "%2d:GetGlyphOutlineW should return 0, got %d\n", fmt[i], ret);
+ todo_wine {
+ ok(gm.gmBlackBoxX == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ ok(gm.gmBlackBoxY == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ }
+ }
+
+ memset(&gm, 0xab, sizeof(gm));
+ SetLastError(0xdeadbeef);
+ ret = GetGlyphOutlineW(hdc, ' ', fmt[i], &gm, 0, &dummy, &mat);
+ if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ if (fmt[i] == GGO_METRICS)
+ ok(ret != GDI_ERROR, "%2d:GetGlyphOutlineW should succeed, got %d\n", fmt[i], ret);
+ else
+ ok(ret == 0, "%2d:GetGlyphOutlineW should return 0, got %d\n", fmt[i], ret);
+ todo_wine {
+ ok(gm.gmBlackBoxX == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ ok(gm.gmBlackBoxY == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ }
+ }
+
+ memset(&gm, 0xab, sizeof(gm));
+ SetLastError(0xdeadbeef);
+ ret = GetGlyphOutlineW(hdc, ' ', fmt[i], &gm, sizeof(dummy), NULL, &mat);
+ if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ if (fmt[i] == GGO_METRICS)
+ ok(ret != GDI_ERROR, "%2d:GetGlyphOutlineW should succeed, got %d\n", fmt[i], ret);
+ else
+ ok(ret == 0, "%2d:GetGlyphOutlineW should return 0, got %d\n", fmt[i], ret);
+ todo_wine {
+ ok(gm.gmBlackBoxX == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ ok(gm.gmBlackBoxY == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ }
+ }
+
+ memset(&gm, 0xab, sizeof(gm));
+ SetLastError(0xdeadbeef);
+ ret = GetGlyphOutlineW(hdc, ' ', fmt[i], &gm, sizeof(dummy), &dummy, &mat);
+ if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ if (fmt[i] == GGO_METRICS) {
+ ok(ret != GDI_ERROR, "%2d:GetGlyphOutlineW should succeed, got %d\n", fmt[i], ret);
+ todo_wine {
+ ok(gm.gmBlackBoxX == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ ok(gm.gmBlackBoxY == 1, "%2d:expected 1, got %u\n", fmt[i], gm.gmBlackBoxX);
+ }
+ }
+ else
+ todo_wine ok(ret == GDI_ERROR, "%2d:GetGlyphOutlineW should return GDI_ERROR, got %d\n", fmt[i], ret);
+ }
+ }
+
SelectObject(hdc, old_hfont);
DeleteObject(hfont);
More information about the wine-cvs
mailing list