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