Huw Davies : gdi32/tests: 64-bit GetFontFileInfo may fail with error ERROR_NOACCESS.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 20 07:58:03 CDT 2015


Module: wine
Branch: master
Commit: 5021e91940fe01a54e6ee91f9d9f246ce8f6dd84
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5021e91940fe01a54e6ee91f9d9f246ce8f6dd84

Author: Huw Davies <huw at codeweavers.com>
Date:   Thu Aug 20 10:50:24 2015 +0100

gdi32/tests: 64-bit GetFontFileInfo may fail with error ERROR_NOACCESS.

---

 dlls/gdi32/tests/font.c | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 68ade9a..65685ac 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4116,7 +4116,7 @@ static void test_RealizationInfo(void)
 {
     HDC hdc;
     DWORD info[4], info2[10];
-    BOOL r;
+    BOOL r, have_file = FALSE;
     HFONT hfont, hfont_old;
     LOGFONTA lf;
     DWORD needed, read;
@@ -4199,25 +4199,30 @@ static void test_RealizationInfo(void)
 
         /* Test GetFontFileInfo() */
         r = pGetFontFileInfo(info2[3], 0, &file_info, sizeof(file_info), &needed);
-        ok(r != 0, "ret 0 gle %d\n", GetLastError());
-
-        h = CreateFileW(file_info.path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
-        ok(h != INVALID_HANDLE_VALUE, "Unable to open file %d\n", GetLastError());
+        ok(r != 0 || GetLastError() == ERROR_NOACCESS, "ret %d gle %d\n", r, GetLastError());
 
-        GetFileTime(h, NULL, NULL, &time);
-        ok(!CompareFileTime(&file_info.time, &time), "time mismatch\n");
-        GetFileSizeEx(h, &size);
-        ok(file_info.size.QuadPart == size.QuadPart, "size mismatch\n");
-
-        /* Read first 16 bytes from the file */
-        ReadFile(h, file, sizeof(file), &read, NULL);
-        CloseHandle(h);
+        if (r)
+        {
+            h = CreateFileW(file_info.path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
+            ok(h != INVALID_HANDLE_VALUE, "Unable to open file %d\n", GetLastError());
+
+            GetFileTime(h, NULL, NULL, &time);
+            ok(!CompareFileTime(&file_info.time, &time), "time mismatch\n");
+            GetFileSizeEx(h, &size);
+            ok(file_info.size.QuadPart == size.QuadPart, "size mismatch\n");
+
+            /* Read first 16 bytes from the file */
+            ReadFile(h, file, sizeof(file), &read, NULL);
+            CloseHandle(h);
+            have_file = TRUE;
+        }
 
         /* Get bytes 2 - 16 using GetFontFileData */
         r = pGetFontFileData(info2[3], 0, 2, data, sizeof(data));
         ok(r != 0, "ret 0 gle %d\n", GetLastError());
 
-        ok(!memcmp(data, file + 2, sizeof(data)), "mismatch\n");
+        if (have_file)
+            ok(!memcmp(data, file + 2, sizeof(data)), "mismatch\n");
     }
 
     DeleteObject(SelectObject(hdc, hfont_old));




More information about the wine-cvs mailing list