From a2a4bb1e51b75dbd47742b94c74d2103bb4873dd Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 1 May 2007 22:08:34 +0000 Subject: [PATCH] update gdi32_test - fix #line ... - add more tests svn path=/trunk/; revision=26620 --- .../win32/gdi32/tests/CreateCompatibleDC.c | 2 +- rostests/win32/gdi32/tests/CreatePen.c | 50 +++++++++++++++++-- rostests/win32/gdi32/tests/ExtCreatePen.c | 14 +++++- rostests/win32/gdi32/tests/GetObject.c | 39 ++++++++++++--- rostests/win32/gdi32/tests/GetStockObject.c | 2 +- rostests/win32/gdi32/tests/SelectObject.c | 2 +- rostests/win32/gdi32/tests/SetDCPenColor.c | 2 +- rostests/win32/gdi32/tests/SetSysColors.c | 2 +- 8 files changed, 94 insertions(+), 19 deletions(-) diff --git a/rostests/win32/gdi32/tests/CreateCompatibleDC.c b/rostests/win32/gdi32/tests/CreateCompatibleDC.c index 0923431a43f..3f7e39ad881 100644 --- a/rostests/win32/gdi32/tests/CreateCompatibleDC.c +++ b/rostests/win32/gdi32/tests/CreateCompatibleDC.c @@ -1,4 +1,4 @@ -#line 1 "CreateCompatibleDC.c" +#line 2 "CreateCompatibleDC.c" #include "..\gditest.h" diff --git a/rostests/win32/gdi32/tests/CreatePen.c b/rostests/win32/gdi32/tests/CreatePen.c index 32da1ffe972..e4fec2f2295 100644 --- a/rostests/win32/gdi32/tests/CreatePen.c +++ b/rostests/win32/gdi32/tests/CreatePen.c @@ -1,4 +1,4 @@ -#line 1 "CreatePen.c" +#line 2 "CreatePen.c" #include "..\gditest.h" @@ -6,14 +6,56 @@ BOOL Test_CreatePen(INT* passed, INT* failed) { HPEN hPen; + LOGPEN logpen; - hPen = CreatePen(PS_COSMETIC, 1, RGB(1,2,3)); - if (!hPen) return FALSE; + SetLastError(ERROR_SUCCESS); + + hPen = CreatePen(PS_DASHDOT, 5, RGB(1,2,3)); + TEST(hPen); /* Test if we have a PEN */ TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_PEN); - + + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_DASHDOT); + TEST(logpen.lopnWidth.x == 5); + TEST(logpen.lopnColor == RGB(1,2,3)); DeleteObject(hPen); + + /* PS_GEOMETRIC | PS_DASHDOT = 0x00001011 will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_GEOMETRIC | PS_DASHDOT, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_USERSTYLE will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_USERSTYLE, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_ALTERNATE will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_ALTERNATE, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_INSIDEFRAME is ok */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_INSIDEFRAME, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_INSIDEFRAME); + DeleteObject(hPen); + + TEST(GetLastError() == ERROR_SUCCESS); + return TRUE; } diff --git a/rostests/win32/gdi32/tests/ExtCreatePen.c b/rostests/win32/gdi32/tests/ExtCreatePen.c index 43e6dd6563c..669174ce767 100644 --- a/rostests/win32/gdi32/tests/ExtCreatePen.c +++ b/rostests/win32/gdi32/tests/ExtCreatePen.c @@ -1,3 +1,5 @@ +#line 2 "ExtCreatePen.c" + #include "..\gditest.h" BOOL @@ -5,6 +7,7 @@ Test_ExtCreatePen(INT* passed, INT* failed) { HPEN hPen; LOGBRUSH logbrush; + DWORD dwStyles[17] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; logbrush.lbStyle = BS_SOLID; logbrush.lbColor = RGB(1,2,3); @@ -14,9 +17,16 @@ Test_ExtCreatePen(INT* passed, INT* failed) /* Test if we have an EXTPEN */ TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN); - - DeleteObject(hPen); + + /* test userstyles */ + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 17, (CONST DWORD*)&dwStyles); + TEST(hPen == 0); + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 16, (CONST DWORD*)&dwStyles); + TEST(hPen != 0); + + DeleteObject(hPen); + return TRUE; } diff --git a/rostests/win32/gdi32/tests/GetObject.c b/rostests/win32/gdi32/tests/GetObject.c index d4eef275b2e..552f38aa7ad 100644 --- a/rostests/win32/gdi32/tests/GetObject.c +++ b/rostests/win32/gdi32/tests/GetObject.c @@ -1,4 +1,4 @@ -#line 1 "GetObject.c" +#line 2 "GetObject.c" #include "..\gditest.h" @@ -213,11 +213,16 @@ BOOL Test_Pen(INT* passed, INT* failed) TEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN)); TEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN)); TEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN)); + TEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0); TEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN)); TEST(GetObject(hPen, 0, &logpen) == 0); - TEST(GetObject(hPen, 5, &logpen) == 0); TEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN)); TEST(GetLastError() == ERROR_SUCCESS); + + /* test if the fields are filled correctly */ + TEST(logpen.lopnStyle == PS_SOLID); + + DeleteObject(hPen); return TRUE; } @@ -227,6 +232,12 @@ BOOL Test_ExtPen(INT* passed, INT* failed) HPEN hPen; EXTLOGPEN extlogpen; LOGBRUSH logbrush; + DWORD dwStyles[17] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; + struct + { + EXTLOGPEN extlogpen; + DWORD dwStyles[50]; + } elpUserStyle; SetLastError(ERROR_SUCCESS); TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0); @@ -236,8 +247,8 @@ BOOL Test_ExtPen(INT* passed, INT* failed) FillMemory(&extlogpen, sizeof(EXTLOGPEN), 0x77); logbrush.lbStyle = BS_SOLID; logbrush.lbColor = RGB(1,2,3); - logbrush.lbHatch = 0; - hPen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID, 5, &logbrush, 0, NULL); + logbrush.lbHatch = 22; + hPen = ExtCreatePen(PS_GEOMETRIC | PS_DASH, 5, &logbrush, 0, NULL); TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN); TEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0); @@ -254,17 +265,29 @@ BOOL Test_ExtPen(INT* passed, INT* failed) TEST(extlogpen.elpWidth == 0x77777777); TEST(GetObject(hPen, sizeof(EXTLOGPEN), &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN)-sizeof(DWORD), &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN)-sizeof(DWORD)-1, &extlogpen) == 0); TEST(GetObject(hPen, sizeof(EXTLOGPEN)+2, &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); TEST(GetObject(hPen, -5, &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); /* test if the fields are filled correctly */ - TEST(extlogpen.elpPenStyle == PS_GEOMETRIC); + TEST(extlogpen.elpPenStyle == (PS_GEOMETRIC | PS_DASH)); TEST(extlogpen.elpWidth == 5); TEST(extlogpen.elpBrushStyle == 0); TEST(extlogpen.elpColor == RGB(1,2,3)); - TEST(extlogpen.elpHatch == 0); + TEST(extlogpen.elpHatch == 22); TEST(extlogpen.elpNumEntries == 0); DeleteObject(hPen); + + /* A maximum of 16 Styles is allowed */ + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 16, (CONST DWORD*)&dwStyles); + TEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN) + 15*sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN) + 15*sizeof(DWORD), &elpUserStyle) == sizeof(EXTLOGPEN) + 15*sizeof(DWORD)); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[0] == 0); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[1] == 1); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[15] == 15); + DeleteObject(hPen); + return TRUE; } @@ -402,7 +425,7 @@ BOOL Test_GetObject(INT* passed, INT* failed) TEST(GetLastError() == ERROR_INVALID_HANDLE); DeleteObject(hRgn); -// Test_Font(passed, failed); + Test_Font(passed, failed); Test_Colorspace(passed, failed); Test_General(passed, failed); Test_Bitmap(passed, failed); @@ -410,7 +433,7 @@ BOOL Test_GetObject(INT* passed, INT* failed) Test_Palette(passed, failed); Test_Brush(passed, failed); Test_Pen(passed, failed); -// Test_ExtPen(passed, failed); // not implemented yet in ROS + Test_ExtPen(passed, failed); // not implemented yet in ROS Test_MetaDC(passed, failed); return TRUE; diff --git a/rostests/win32/gdi32/tests/GetStockObject.c b/rostests/win32/gdi32/tests/GetStockObject.c index 3bb80d321fd..14779833692 100644 --- a/rostests/win32/gdi32/tests/GetStockObject.c +++ b/rostests/win32/gdi32/tests/GetStockObject.c @@ -1,4 +1,4 @@ -#line 1 "GetStockObject.c" +#line 2 "GetStockObject.c" #include "..\gditest.h" diff --git a/rostests/win32/gdi32/tests/SelectObject.c b/rostests/win32/gdi32/tests/SelectObject.c index 67e0bb1293c..183aa1c5a33 100644 --- a/rostests/win32/gdi32/tests/SelectObject.c +++ b/rostests/win32/gdi32/tests/SelectObject.c @@ -1,4 +1,4 @@ -#line 1 "SelectObject.c" +#line 2 "SelectObject.c" #include "..\gditest.h" diff --git a/rostests/win32/gdi32/tests/SetDCPenColor.c b/rostests/win32/gdi32/tests/SetDCPenColor.c index b1b4fb10cca..cde000568de 100644 --- a/rostests/win32/gdi32/tests/SetDCPenColor.c +++ b/rostests/win32/gdi32/tests/SetDCPenColor.c @@ -1,4 +1,4 @@ -#line 1 "SetDCPenColor.c" +#line 2 "SetDCPenColor.c" #include "..\gditest.h" diff --git a/rostests/win32/gdi32/tests/SetSysColors.c b/rostests/win32/gdi32/tests/SetSysColors.c index cae1c684857..84a8c3219ff 100644 --- a/rostests/win32/gdi32/tests/SetSysColors.c +++ b/rostests/win32/gdi32/tests/SetSysColors.c @@ -1,4 +1,4 @@ -#line 1 "SetSysColors.c" +#line 2 "SetSysColors.c" #include "..\gditest.h"