From 369724daea083ddc9cfbac9c06d4aae9f7d3934b Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 23 Apr 2014 14:27:54 +0000 Subject: [PATCH] [MSCMS_WINETEST] * Sync with Wine 1.7.17. CORE-8080 svn path=/trunk/; revision=62914 --- rostests/winetests/mscms/profile.c | 40 ++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/rostests/winetests/mscms/profile.c b/rostests/winetests/mscms/profile.c index 337b67a12d6..fd35193abbb 100644 --- a/rostests/winetests/mscms/profile.c +++ b/rostests/winetests/mscms/profile.c @@ -59,7 +59,7 @@ static BOOL (WINAPI *pSetStandardColorSpaceProfileW)(PCWSTR,DWORD,PWSTR); static BOOL (WINAPI *pUninstallColorProfileA)(PCSTR,PCSTR,BOOL); static BOOL (WINAPI *pUninstallColorProfileW)(PCWSTR,PCWSTR,BOOL); -static BOOL (WINAPI *pEnumDisplayDevicesA)(LPCSTR,DWORD,PDISPLAY_DEVICE,DWORD); +static BOOL (WINAPI *pEnumDisplayDevicesA)(LPCSTR,DWORD,PDISPLAY_DEVICEA,DWORD); #define GETFUNCPTR(func) p##func = (void *)GetProcAddress( hmscms, #func ); \ if (!p##func) return FALSE; @@ -122,6 +122,8 @@ static const WCHAR profile2W[] = 'c','o','l','o','r','\\','s','r','g','b',' ','c','o','l','o','r',' ', 's','p','a','c','e',' ','p','r','o','f','i','l','e','.','i','c','m',0 }; +static BOOL have_color_profile; + static const unsigned char rgbheader[] = { 0x48, 0x0c, 0x00, 0x00, 0x6f, 0x6e, 0x69, 0x4c, 0x00, 0x00, 0x10, 0x02, 0x72, 0x74, 0x6e, 0x6d, 0x20, 0x42, 0x47, 0x52, 0x20, 0x5a, 0x59, 0x58, @@ -669,7 +671,7 @@ static void test_EnumColorProfilesA( char *standardprofile ) ok( !ret, "EnumColorProfilesA() succeeded (%d)\n", GetLastError() ); ret = pEnumColorProfilesA( NULL, &record, buffer, &size, &number ); - if (standardprofile) + if (have_color_profile) ok( ret, "EnumColorProfilesA() failed (%d)\n", GetLastError() ); else todo_wine ok( ret, "EnumColorProfilesA() failed (%d)\n", GetLastError() ); @@ -683,7 +685,7 @@ static void test_EnumColorProfilesA( char *standardprofile ) size = total; ret = pEnumColorProfilesA( NULL, &record, buffer, &size, &number ); - if (standardprofile) + if (have_color_profile) ok( ret, "EnumColorProfilesA() failed (%d)\n", GetLastError() ); else todo_wine ok( ret, "EnumColorProfilesA() failed (%d)\n", GetLastError() ); @@ -723,7 +725,7 @@ static void test_EnumColorProfilesW( WCHAR *standardprofileW ) ok( !ret, "EnumColorProfilesW() succeeded (%d)\n", GetLastError() ); ret = pEnumColorProfilesW( NULL, &record, buffer, &size, &number ); - if (standardprofileW) + if (have_color_profile) ok( ret, "EnumColorProfilesW() failed (%d)\n", GetLastError() ); else todo_wine ok( ret, "EnumColorProfilesW() failed (%d)\n", GetLastError() ); @@ -736,7 +738,7 @@ static void test_EnumColorProfilesW( WCHAR *standardprofileW ) size = total; ret = pEnumColorProfilesW( NULL, &record, buffer, &size, &number ); - if (standardprofileW) + if (have_color_profile) ok( ret, "EnumColorProfilesW() failed (%d)\n", GetLastError() ); else todo_wine ok( ret, "EnumColorProfilesW() failed (%d)\n", GetLastError() ); @@ -1244,17 +1246,16 @@ static void test_AssociateColorProfileWithDeviceA( char *testprofile ) BOOL ret; char profile[MAX_PATH], basename[MAX_PATH]; DWORD error, size = sizeof(profile); - DISPLAY_DEVICE display; + DISPLAY_DEVICEA display, monitor; BOOL res; - DISPLAY_DEVICE monitor; if (testprofile && pEnumDisplayDevicesA) { - display.cb = sizeof( DISPLAY_DEVICE ); + display.cb = sizeof( DISPLAY_DEVICEA ); res = pEnumDisplayDevicesA( NULL, 0, &display, 0 ); ok( res, "Can't get display info\n" ); - monitor.cb = sizeof( DISPLAY_DEVICE ); + monitor.cb = sizeof( DISPLAY_DEVICEA ); res = pEnumDisplayDevicesA( display.DeviceName, 0, &monitor, 0 ); if (res) { @@ -1318,6 +1319,21 @@ static void test_AssociateColorProfileWithDeviceA( char *testprofile ) } } +static BOOL have_profile(void) +{ + char glob[MAX_PATH + sizeof("\\*.icm")]; + DWORD size = MAX_PATH; + HANDLE handle; + WIN32_FIND_DATAA data; + + if (!pGetColorDirectoryA( NULL, glob, &size )) return FALSE; + lstrcatA( glob, "\\*.icm" ); + handle = FindFirstFileA( glob, &data ); + if (handle == INVALID_HANDLE_VALUE) return FALSE; + FindClose( handle ); + return TRUE; +} + START_TEST(profile) { UINT len; @@ -1379,9 +1395,9 @@ START_TEST(profile) } /* If found, create a temporary copy for testing purposes */ - if (standardprofile && GetTempPath( sizeof(path), path )) + if (standardprofile && GetTempPathA( sizeof(path), path )) { - if (GetTempFileName( path, "rgb", 0, file )) + if (GetTempFileNameA( path, "rgb", 0, file )) { if (CopyFileA( standardprofile, file, FALSE )) { @@ -1393,6 +1409,8 @@ START_TEST(profile) } } + have_color_profile = have_profile(); + test_GetColorDirectoryA(); test_GetColorDirectoryW(); -- 2.17.1