Akihiro Sagawa : gdi32/tests: Refactor test_fake_bold_font() to avoid code duplications.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jan 5 12:18:32 CST 2016
Module: wine
Branch: master
Commit: 6cd42f3df78543284e9785619a713d0fc874ddf3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6cd42f3df78543284e9785619a713d0fc874ddf3
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Thu Dec 31 13:33:12 2015 +0900
gdi32/tests: Refactor test_fake_bold_font() to avoid code duplications.
Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/tests/font.c | 66 +++++++++++++++++++++++++------------------------
1 file changed, 34 insertions(+), 32 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 53945da..5f01246 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -6304,12 +6304,14 @@ static void test_GetCharWidth32(void)
static void test_fake_bold_font(void)
{
HDC hdc;
- HFONT hfont, hfont_old;
LOGFONTA lf;
BOOL ret;
- TEXTMETRICA tm[2];
- ABC abc[2];
- INT w[2];
+ struct glyph_data {
+ TEXTMETRICA tm;
+ ABC abc;
+ INT w;
+ } data[2];
+ int i;
if (!pGetCharWidth32A || !pGetCharABCWidthsA) {
win_skip("GetCharWidth32A/GetCharABCWidthA is not available on this platform\n");
@@ -6319,44 +6321,44 @@ static void test_fake_bold_font(void)
/* Test outline font */
memset(&lf, 0, sizeof(lf));
strcpy(lf.lfFaceName, "Wingdings");
- lf.lfWeight = FW_NORMAL;
lf.lfCharSet = SYMBOL_CHARSET;
- hfont = CreateFontIndirectA(&lf);
hdc = GetDC(NULL);
- hfont_old = SelectObject(hdc, hfont);
- /* base metrics */
- ret = GetTextMetricsA(hdc, &tm[0]);
- ok(ret, "got %d\n", ret);
- ret = pGetCharABCWidthsA(hdc, 0x76, 0x76, &abc[0]);
- ok(ret, "got %d\n", ret);
+ for (i = 0; i <= 1; i++)
+ {
+ HFONT hfont, hfont_old;
- lf.lfWeight = FW_BOLD;
- hfont = CreateFontIndirectA(&lf);
- DeleteObject(SelectObject(hdc, hfont));
+ lf.lfWeight = i ? FW_BOLD : FW_NORMAL;
+ hfont = CreateFontIndirectA(&lf);
+ hfont_old = SelectObject(hdc, hfont);
- /* bold metrics */
- ret = GetTextMetricsA(hdc, &tm[1]);
- ok(ret, "got %d\n", ret);
- ret = pGetCharABCWidthsA(hdc, 0x76, 0x76, &abc[1]);
- ok(ret, "got %d\n", ret);
+ ret = GetTextMetricsA(hdc, &data[i].tm);
+ ok(ret, "got %d\n", ret);
+ ret = pGetCharABCWidthsA(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;
- DeleteObject(SelectObject(hdc, hfont_old));
+ SelectObject(hdc, hfont_old);
+ DeleteObject(hfont);
+ }
ReleaseDC(NULL, hdc);
/* compare results (outline) */
- ok(tm[0].tmHeight == tm[1].tmHeight, "expected %d, got %d\n", tm[0].tmHeight, tm[1].tmHeight);
- ok(tm[0].tmAscent == tm[1].tmAscent, "expected %d, got %d\n", tm[0].tmAscent, tm[1].tmAscent);
- ok(tm[0].tmDescent == tm[1].tmDescent, "expected %d, got %d\n", tm[0].tmDescent, tm[1].tmDescent);
- ok((tm[0].tmAveCharWidth + 1) == tm[1].tmAveCharWidth,
- "expected %d, got %d\n", tm[0].tmAveCharWidth + 1, tm[1].tmAveCharWidth);
- ok((tm[0].tmMaxCharWidth + 1) == tm[1].tmMaxCharWidth,
- "expected %d, got %d\n", tm[0].tmMaxCharWidth + 1, tm[1].tmMaxCharWidth);
- ok(tm[0].tmOverhang == tm[1].tmOverhang, "expected %d, got %d\n", tm[0].tmOverhang, tm[1].tmOverhang);
- w[0] = abc[0].abcA + abc[0].abcB + abc[0].abcC;
- w[1] = abc[1].abcA + abc[1].abcB + abc[1].abcC;
- ok((w[0] + 1) == w[1], "expected %d, got %d\n", w[0] + 1, w[1]);
+ ok(data[0].tm.tmHeight == data[1].tm.tmHeight,
+ "expected %d, got %d\n", data[0].tm.tmHeight, data[1].tm.tmHeight);
+ ok(data[0].tm.tmAscent == data[1].tm.tmAscent,
+ "expected %d, got %d\n", data[0].tm.tmAscent, data[1].tm.tmAscent);
+ ok(data[0].tm.tmDescent == data[1].tm.tmDescent,
+ "expected %d, got %d\n", data[0].tm.tmDescent, data[1].tm.tmDescent);
+ ok(data[0].tm.tmAveCharWidth + 1 == data[1].tm.tmAveCharWidth,
+ "expected %d, got %d\n", data[0].tm.tmAveCharWidth + 1, data[1].tm.tmAveCharWidth);
+ ok(data[0].tm.tmMaxCharWidth + 1 == data[1].tm.tmMaxCharWidth,
+ "expected %d, got %d\n", data[0].tm.tmMaxCharWidth + 1, data[1].tm.tmMaxCharWidth);
+ ok(data[0].tm.tmOverhang == data[1].tm.tmOverhang,
+ "expected %d, got %d\n", data[0].tm.tmOverhang, data[1].tm.tmOverhang);
+ ok(data[0].w + 1 == data[1].w,
+ "expected %d, got %d\n", data[0].w + 1, data[1].w);
}
More information about the wine-cvs
mailing list