Module: wine Branch: stable Commit: 760b01cbeeae404d03b7c47f3575fb7775a9d7a2 URL: https://gitlab.winehq.org/wine/wine/-/commit/760b01cbeeae404d03b7c47f3575fb7...
Author: Florian Will florian.will@gmail.com Date: Wed Mar 1 08:47:34 2023 +0100
gdiplus/tests: Test for GdipPrivateAddFontFile() sharing violation.
(cherry picked from commit 0ebf3222e57d2ac7da790a4ddb572fad5751806a)
---
dlls/gdiplus/tests/font.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c index ccdb7a2ef96..7fbe619cd93 100644 --- a/dlls/gdiplus/tests/font.c +++ b/dlls/gdiplus/tests/font.c @@ -76,6 +76,7 @@ static void test_long_name(void) WCHAR path[MAX_PATH]; GpStatus stat; GpFontCollection *fonts; + HANDLE file; INT num_families; GpFontFamily *family, *cloned_family; WCHAR family_name[LF_FACESIZE]; @@ -86,8 +87,19 @@ static void test_long_name(void)
create_testfontfile(L"wine_longname.ttf", 1, path);
+ file = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); + ok(file != INVALID_HANDLE_VALUE, "CreateFileW failed: %ld\n", GetLastError()); + stat = GdipPrivateAddFontFile(fonts, path); - ok(stat == Ok, "GdipPrivateAddFontFile failed: %d\n", stat); + todo_wine ok(stat == Ok, "GdipPrivateAddFontFile failed with open file handle: %d\n", stat); + + CloseHandle(file); + + if (stat != Ok) { + /* try again without opened file handle */ + stat = GdipPrivateAddFontFile(fonts, path); + ok(stat == Ok, "GdipPrivateAddFontFile failed: %d\n", stat); + }
stat = GdipGetFontCollectionFamilyCount(fonts, &num_families); ok(stat == Ok, "GdipGetFontCollectionFamilyCount failed: %d\n", stat);