Module: wine Branch: master Commit: 8dc039a7d150cc9f2f815ffe19542195dcb5ea03 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8dc039a7d150cc9f2f815ffe19...
Author: Huw Davies huw@codeweavers.com Date: Wed Apr 5 09:35:07 2017 +0100
gdi32/tests: Prevent a crash if the shell dlg font is not found.
Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/tests/font.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index fb27f8e..0b8cfd5 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -5305,10 +5305,13 @@ static void test_EnumFonts_subst(void) ret = EnumFontFamiliesExA(hdc, &lf, enum_ms_shell_dlg_proc, (LPARAM)&efnd, 0); ok(!ret, "MS Shell Dlg should be enumerated\n"); ok(efnd.total > 0, "MS Shell Dlg should be enumerated\n"); - ret = strcmp((const char *)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg"); - ok(!ret, "expected MS Shell Dlg, got %s\n", efnd.elf[0].elfLogFont.lfFaceName); - ret = strcmp((const char *)efnd.elf[0].elfFullName, "MS Shell Dlg"); - ok(ret, "did not expect MS Shell Dlg\n"); + if (efnd.total) + { + ret = strcmp((const char *)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg"); + ok(!ret, "expected MS Shell Dlg, got %s\n", efnd.elf[0].elfLogFont.lfFaceName); + ret = strcmp((const char *)efnd.elf[0].elfFullName, "MS Shell Dlg"); + ok(ret, "did not expect MS Shell Dlg\n"); + }
efnd.total = 0; ret = EnumFontFamiliesExA(hdc, NULL, enum_ms_shell_dlg2_proc, (LPARAM)&efnd, 0); @@ -5320,10 +5323,13 @@ static void test_EnumFonts_subst(void) ret = EnumFontFamiliesExA(hdc, &lf, enum_ms_shell_dlg2_proc, (LPARAM)&efnd, 0); ok(!ret, "MS Shell Dlg 2 should be enumerated\n"); ok(efnd.total > 0, "MS Shell Dlg 2 should be enumerated\n"); - ret = strcmp((const char *)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg 2"); - ok(!ret, "expected MS Shell Dlg 2, got %s\n", efnd.elf[0].elfLogFont.lfFaceName); - ret = strcmp((const char *)efnd.elf[0].elfFullName, "MS Shell Dlg 2"); - ok(ret, "did not expect MS Shell Dlg 2\n"); + if (efnd.total) + { + ret = strcmp((const char *)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg 2"); + ok(!ret, "expected MS Shell Dlg 2, got %s\n", efnd.elf[0].elfLogFont.lfFaceName); + ret = strcmp((const char *)efnd.elf[0].elfFullName, "MS Shell Dlg 2"); + ok(ret, "did not expect MS Shell Dlg 2\n"); + }
heap_free(efnd.elf); DeleteDC(hdc);