[PATCH] gdi32/tests: Remove some workarounds in font tests.

Nikolay Sivov nsivov at codeweavers.com
Wed Jan 8 02:41:38 CST 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---

All of these functions are already linked directly, in the same file.

 dlls/gdi32/tests/font.c | 91 +++++++++++++++--------------------------
 1 file changed, 34 insertions(+), 57 deletions(-)

diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index ccae09edc1..ea1bb960df 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -42,15 +42,10 @@ static inline BOOL match_off_by_n(int a, int b, unsigned int n)
 
 static LONG  (WINAPI *pGdiGetCharDimensions)(HDC hdc, LPTEXTMETRICW lptm, LONG *height);
 static DWORD (WINAPI *pGdiGetCodePage)(HDC hdc);
-static BOOL  (WINAPI *pGetCharABCWidthsI)(HDC hdc, UINT first, UINT count, LPWORD glyphs, LPABC abc);
-static BOOL  (WINAPI *pGetCharABCWidthsA)(HDC hdc, UINT first, UINT last, LPABC abc);
-static BOOL  (WINAPI *pGetCharABCWidthsW)(HDC hdc, UINT first, UINT last, LPABC abc);
 static BOOL  (WINAPI *pGetCharABCWidthsFloatW)(HDC hdc, UINT first, UINT last, LPABCFLOAT abc);
-static BOOL  (WINAPI *pGetCharWidth32A)(HDC hdc, UINT first, UINT last, LPINT buffer);
 static BOOL  (WINAPI *pGetCharWidth32W)(HDC hdc, UINT first, UINT last, LPINT buffer);
 static BOOL  (WINAPI *pGetCharWidthInfo)(HDC hdc, void *);
 static DWORD (WINAPI *pGetFontUnicodeRanges)(HDC hdc, LPGLYPHSET lpgs);
-static DWORD (WINAPI *pGetGlyphIndicesA)(HDC hdc, LPCSTR lpstr, INT count, LPWORD pgi, DWORD flags);
 static DWORD (WINAPI *pGetGlyphIndicesW)(HDC hdc, LPCWSTR lpstr, INT count, LPWORD pgi, DWORD flags);
 static BOOL  (WINAPI *pGetTextExtentExPointI)(HDC hdc, const WORD *indices, INT count, INT max_ext,
                                               LPINT nfit, LPINT dxs, LPSIZE size );
@@ -89,15 +84,10 @@ static void init(void)
 
     pGdiGetCharDimensions = (void *)GetProcAddress(hgdi32, "GdiGetCharDimensions");
     pGdiGetCodePage = (void *) GetProcAddress(hgdi32,"GdiGetCodePage");
-    pGetCharABCWidthsI = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsI");
-    pGetCharABCWidthsA = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsA");
-    pGetCharABCWidthsW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsW");
     pGetCharABCWidthsFloatW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsFloatW");
-    pGetCharWidth32A = (void *)GetProcAddress(hgdi32, "GetCharWidth32A");
     pGetCharWidth32W = (void *)GetProcAddress(hgdi32, "GetCharWidth32W");
     pGetCharWidthInfo = (void *)GetProcAddress(hgdi32, "GetCharWidthInfo");
     pGetFontUnicodeRanges = (void *)GetProcAddress(hgdi32, "GetFontUnicodeRanges");
-    pGetGlyphIndicesA = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesA");
     pGetGlyphIndicesW = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesW");
     pGetTextExtentExPointI = (void *)GetProcAddress(hgdi32, "GetTextExtentExPointI");
     pGdiRealizationInfo = (void *)GetProcAddress(hgdi32, "GdiRealizationInfo");
@@ -1137,13 +1127,13 @@ static void ABCWidths_helper(const char* description, HDC hdc, WORD *glyphs, con
     ABCFLOAT abcf[1];
     BOOL ret = FALSE;
 
-    ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
+    ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
     ok(ret, "%s: GetCharABCWidthsI should have succeeded\n", description);
     ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
     ok(abc->abcA * base_abci->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
     ok(abc->abcC * base_abci->abcC >= 0, "%s: abcC's sign should be unchanged\n", description);
 
-    ret = pGetCharABCWidthsW(hdc, 'i', 'i', abc);
+    ret = GetCharABCWidthsW(hdc, 'i', 'i', abc);
     ok(ret, "%s: GetCharABCWidthsW should have succeeded\n", description);
     ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
     ok(abc->abcA * base_abcw->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
@@ -1209,9 +1199,9 @@ static void test_GetCharABCWidths(void)
     };
     UINT i;
 
-    if (!pGetCharABCWidthsA || !pGetCharABCWidthsW || !pGetCharABCWidthsFloatW || !pGetCharABCWidthsI)
+    if (!pGetCharABCWidthsFloatW)
     {
-        win_skip("GetCharABCWidthsA/W/I not available on this platform\n");
+        win_skip("GetCharABCWidthsFloatW is not available on this platform\n");
         return;
     }
 
@@ -1226,22 +1216,22 @@ static void test_GetCharABCWidths(void)
     nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
     ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
 
-    ret = pGetCharABCWidthsI(NULL, 0, 1, glyphs, abc);
+    ret = GetCharABCWidthsI(NULL, 0, 1, glyphs, abc);
     ok(!ret, "GetCharABCWidthsI should have failed\n");
 
-    ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, NULL);
+    ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, NULL);
     ok(!ret, "GetCharABCWidthsI should have failed\n");
 
-    ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
+    ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
     ok(ret, "GetCharABCWidthsI should have succeeded\n");
 
-    ret = pGetCharABCWidthsW(NULL, 'a', 'a', abc);
+    ret = GetCharABCWidthsW(NULL, 'a', 'a', abc);
     ok(!ret, "GetCharABCWidthsW should have failed\n");
 
-    ret = pGetCharABCWidthsW(hdc, 'a', 'a', NULL);
+    ret = GetCharABCWidthsW(hdc, 'a', 'a', NULL);
     ok(!ret, "GetCharABCWidthsW should have failed\n");
 
-    ret = pGetCharABCWidthsW(hdc, 'a', 'a', abc);
+    ret = GetCharABCWidthsW(hdc, 'a', 'a', abc);
     ok(!ret, "GetCharABCWidthsW should have failed\n");
 
     ret = pGetCharABCWidthsFloatW(NULL, 'a', 'a', abcf);
@@ -1274,16 +1264,15 @@ 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,
-           "GetCharABCWidthsA and GetCharABCWidthsW should return same widths. charset = %u\n", c[i].cs);
+        ok(GetCharABCWidthsA(hdc, c[i].a, c[i].a + 1, a) && GetCharABCWidthsW(hdc, c[i].w, c[i].w + 1, w)
+                && !memcmp(a, w, sizeof(a)),
+                "GetCharABCWidthsA and GetCharABCWidthsW should return same widths. charset = %u\n", c[i].cs);
 
         memset(a, 0xbb, sizeof a);
-        ret = pGetCharABCWidthsA(hdc, code, code, a);
+        ret = GetCharABCWidthsA(hdc, code, code, a);
         ok(ret, "GetCharABCWidthsA should have succeeded\n");
         memset(full, 0xcc, sizeof full);
-        ret = pGetCharABCWidthsA(hdc, 0x00, code, full);
+        ret = GetCharABCWidthsA(hdc, 0x00, code, full);
         ok(ret, "GetCharABCWidthsA should have succeeded\n");
         ok(memcmp(&a[0], &full[code], sizeof(ABC)) == 0,
            "GetCharABCWidthsA info should match. codepage = %u\n", c[i].cs);
@@ -1291,13 +1280,13 @@ static void test_GetCharABCWidths(void)
         for (j = 0; j < ARRAY_SIZE(range); ++j)
         {
             memset(full, 0xdd, sizeof full);
-            ret = pGetCharABCWidthsA(hdc, range[j].first, range[j].last, full);
+            ret = GetCharABCWidthsA(hdc, range[j].first, range[j].last, full);
             ok(ret == c[i].r[j], "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);
+                ret = GetCharABCWidthsA(hdc, range[j].last, range[j].last, a);
                 ok(ret && memcmp(&full[last], &a[0], sizeof(ABC)) == 0,
                    "GetCharABCWidthsA %x should match. codepage = %u\n",
                    range[j].last, c[i].cs);
@@ -1318,12 +1307,12 @@ static void test_GetCharABCWidths(void)
     ret = pGetCharABCWidthsFloatW(hdc, ' ', ' ', abcf);
     ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
     ok(abcf[0].abcfB == 1.0, "got %f\n", abcf[0].abcfB);
-    ret = pGetCharABCWidthsW(hdc, ' ', ' ', abcw);
+    ret = GetCharABCWidthsW(hdc, ' ', ' ', abcw);
     ok(ret, "GetCharABCWidthsW should have succeeded\n");
     ok(abcw[0].abcB == 1, "got %u\n", abcw[0].abcB);
 
     /* 1) prepare unrotated font metrics */
-    ret = pGetCharABCWidthsW(hdc, 'a', 'a', abcw);
+    ret = GetCharABCWidthsW(hdc, 'a', 'a', abcw);
     ok(ret, "GetCharABCWidthsW should have succeeded\n");
     DeleteObject(SelectObject(hdc, hfont));
 
@@ -1331,7 +1320,7 @@ static void test_GetCharABCWidths(void)
     lf.lfEscapement = lf.lfOrientation = 900;
     hfont = CreateFontIndirectA(&lf);
     hfont = SelectObject(hdc, hfont);
-    ret = pGetCharABCWidthsW(hdc, 'a', 'a', abc);
+    ret = GetCharABCWidthsW(hdc, 'a', 'a', abc);
     ok(ret, "GetCharABCWidthsW should have succeeded\n");
 
     /* 3) compare ABC results */
@@ -1409,9 +1398,9 @@ static void test_GetCharABCWidths(void)
     nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
     ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
 
-    ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
+    ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
     ok(ret, "GetCharABCWidthsI should have succeeded\n");
-    ret = pGetCharABCWidthsW(hdc, 'i', 'i', abcw);
+    ret = GetCharABCWidthsW(hdc, 'i', 'i', abcw);
     ok(ret, "GetCharABCWidthsW should have succeeded\n");
     ret = pGetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
     ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
@@ -2423,8 +2412,8 @@ static void test_SetTextJustification(void)
 
     testJustification(hdc, testText, &clientArea);
 
-    if (!pGetGlyphIndicesA || !pGetTextExtentExPointI) goto done;
-    pGetGlyphIndicesA( hdc, "A ", 2, indices, 0 );
+    if (!pGetTextExtentExPointI) goto done;
+    GetGlyphIndicesA( hdc, "A ", 2, indices, 0 );
 
     SetTextJustification(hdc, 0, 0);
     GetTextExtentPoint32A(hdc, " ", 1, &expect);
@@ -2576,7 +2565,7 @@ static BOOL get_glyph_indices(INT charset, UINT code_page, WORD *idx, UINT count
         for (i = 0; i < count; i++) ansi_buf[i] = (BYTE)(i + 128);
 
         SetLastError(0xdeadbeef);
-        ret = pGetGlyphIndicesA(hdc, ansi_buf, count, idx, 0);
+        ret = GetGlyphIndicesA(hdc, ansi_buf, count, idx, 0);
         ok(ret == count, "GetGlyphIndicesA expected %d got %d, error %u\n",
            count, ret, GetLastError());
     }
@@ -2604,7 +2593,7 @@ static void test_font_charset(void)
     };
     int i;
 
-    if (!pGetGlyphIndicesA || !pGetGlyphIndicesW)
+    if (!pGetGlyphIndicesW)
     {
         win_skip("Skipping the font charset test on a Win9x platform\n");
         return;
@@ -3231,9 +3220,6 @@ static void test_negative_width(HDC hdc, const LOGFONTA *lf)
     LOGFONTA lf2 = *lf;
     WORD idx;
 
-    if(!pGetGlyphIndicesA)
-        return;
-
     /* negative widths are handled just as positive ones */
     lf2.lfWidth = -lf->lfWidth;
 
@@ -3244,7 +3230,7 @@ static void test_negative_width(HDC hdc, const LOGFONTA *lf)
 
     hfont_prev = SelectObject(hdc, hfont);
 
-    ret = pGetGlyphIndicesA(hdc, "x", 1, &idx, GGI_MARK_NONEXISTING_GLYPHS);
+    ret = GetGlyphIndicesA(hdc, "x", 1, &idx, GGI_MARK_NONEXISTING_GLYPHS);
     if (ret == GDI_ERROR || idx == 0xffff)
     {
         SelectObject(hdc, hfont_prev);
@@ -4049,10 +4035,6 @@ static void test_GetTextMetrics(void)
     HDC hdc;
     INT enumed;
 
-    /* Report only once */
-    if(!pGetGlyphIndicesA)
-        win_skip("GetGlyphIndicesA is unavailable, negative width will not be checked\n");
-
     hdc = GetDC(0);
 
     memset(&lf, 0, sizeof(lf));
@@ -6560,9 +6542,9 @@ static void test_GetCharWidth32(void)
     INT bufferW;
     HWND hwnd;
 
-    if (!pGetCharWidth32A || !pGetCharWidth32W)
+    if (!pGetCharWidth32W)
     {
-        win_skip("GetCharWidth32A/W not available on this platform\n");
+        win_skip("GetCharWidth32W not available on this platform\n");
         return;
     }
 
@@ -6576,7 +6558,7 @@ static void test_GetCharWidth32(void)
 
     ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
     ok(ret, "GetCharWidth32W should have succeeded\n");
-    ret = pGetCharWidth32A(hdc, 'a', 'a', &bufferA);
+    ret = GetCharWidth32A(hdc, 'a', 'a', &bufferA);
     ok(ret, "GetCharWidth32A should have succeeded\n");
     ok (bufferA == bufferW, "Widths should be the same\n");
     ok (bufferA > 0," Width should be greater than zero\n");
@@ -6669,11 +6651,6 @@ static void test_fake_bold_font(void)
     int i;
     DWORD r;
 
-    if (!pGetCharWidth32A || !pGetCharABCWidthsA) {
-        win_skip("GetCharWidth32A/GetCharABCWidthA is not available on this platform\n");
-        return;
-    }
-
     /* Test outline font */
     memset(&lf, 0, sizeof(lf));
     strcpy(lf.lfFaceName, "Wingdings");
@@ -6691,7 +6668,7 @@ static void test_fake_bold_font(void)
 
         ret = GetTextMetricsA(hdc, &data[i].tm);
         ok(ret, "got %d\n", ret);
-        ret = pGetCharABCWidthsA(hdc, 0x76, 0x76, &data[i].abc);
+        ret = GetCharABCWidthsA(hdc, 0x76, 0x76, &data[i].abc);
         ok(ret, "got %d\n", ret);
         data[i].w = data[i].abc.abcA + data[i].abc.abcB + data[i].abc.abcC;
         r = GetGlyphOutlineA(hdc, 0x76, GGO_METRICS, &data[i].gm, 0, NULL, &x2_mat);
@@ -6742,7 +6719,7 @@ static void test_fake_bold_font(void)
 
         ret = GetTextMetricsA(hdc, &data[i].tm);
         ok(ret, "got %d\n", ret);
-        ret = pGetCharWidth32A(hdc, 0x76, 0x76, &data[i].w);
+        ret = GetCharWidth32A(hdc, 0x76, 0x76, &data[i].w);
         ok(ret, "got %d\n", ret);
 
         SelectObject(hdc, hfont_old);
@@ -6804,7 +6781,7 @@ static void test_bitmap_font_glyph_index(void)
     CHARSETINFO ci;
     BYTE chr = '\xA9';
 
-    if (!pGetGlyphIndicesW || !pGetGlyphIndicesA) {
+    if (!pGetGlyphIndicesW) {
         win_skip("GetGlyphIndices is unavailable\n");
         return;
     }
@@ -6889,7 +6866,7 @@ static void test_bitmap_font_glyph_index(void)
                 ret = ExtTextOutA(hdc, 100, 0, 0, NULL, (LPCSTR)&chr, 1, NULL);
                 break;
             case 1:
-                ret = pGetGlyphIndicesA(hdc, (LPCSTR)&chr, 1, &code, 0);
+                ret = GetGlyphIndicesA(hdc, (LPCSTR)&chr, 1, &code, 0);
                 ok(ret, "GetGlyphIndices failed\n");
                 ok(code == chr, "expected %02x, got %02x (%s:%d)\n", chr, code, lf.lfFaceName, tm.tmCharSet);
                 ret = ExtTextOutA(hdc, 100, 0, ETO_GLYPH_INDEX, NULL, (LPCSTR)&code, 1, NULL);
-- 
2.24.1




More information about the wine-devel mailing list