Author: tkreuzer Date: Wed Sep 24 08:35:30 2014 New Revision: 64254
URL: http://svn.reactos.org/svn/reactos?rev=64254&view=rev Log: [GDI32_APITEST] Add tests for ExcludeClipRect, convert tabs to spaces
Added: trunk/rostests/apitests/gdi32/ExcludeClipRect.c (with props) Modified: trunk/rostests/apitests/gdi32/CMakeLists.txt trunk/rostests/apitests/gdi32/GetClipBox.c trunk/rostests/apitests/gdi32/testlist.c
Modified: trunk/rostests/apitests/gdi32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/CMakeLists.... ============================================================================== --- trunk/rostests/apitests/gdi32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/CMakeLists.txt [iso-8859-1] Wed Sep 24 08:35:30 2014 @@ -22,6 +22,7 @@ EngCreateSemaphore.c EngDeleteSemaphore.c EngReleaseSemaphore.c + ExcludeClipRect.c ExtCreatePen.c GdiConvertBitmap.c GdiConvertBrush.c
Added: trunk/rostests/apitests/gdi32/ExcludeClipRect.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/ExcludeClip... ============================================================================== --- trunk/rostests/apitests/gdi32/ExcludeClipRect.c (added) +++ trunk/rostests/apitests/gdi32/ExcludeClipRect.c [iso-8859-1] Wed Sep 24 08:35:30 2014 @@ -0,0 +1,100 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for ExcludeClipRect + * PROGRAMMERS: Timo Kreuzer + */ + +#include <apitest.h> + +#include <wingdi.h> +#include <winuser.h> + +#define CLIPRGN 1 + +#define ok_rect(_prc, _left, _top, _right, _bottom) \ + ok_int((_prc)->left, _left); \ + ok_int((_prc)->top, _top); \ + ok_int((_prc)->right, _right); \ + ok_int((_prc)->bottom, _bottom); \ + +void Test_ExcludeClipRect() +{ + HDC hdc; + HRGN hrgn, hrgn2; + + hdc = CreateCompatibleDC(NULL); + ok(hdc != 0, "CreateCompatibleDC failed, skipping tests.\n"); + if (!hdc) return; + + hrgn2 = CreateRectRgn(0, 0, 0, 0); + + /* Test NULL DC */ + SetLastError(0x12345); + ok_int(ExcludeClipRect(NULL, 0, 0, 0, 0), ERROR); + ok_int(GetLastError(), ERROR_INVALID_HANDLE); + + /* Test invalid DC */ + SetLastError(0x12345); + ok_int(ExcludeClipRect((HDC)(ULONG_PTR)0x12345, 0, 0, 0, 0), ERROR); + ok_int(GetLastError(), ERROR_INVALID_HANDLE); + SetLastError(0x12345); + + /* Set a clip region */ + hrgn = CreateRectRgn(10, 10, 20, 30); + ok_int(SelectClipRgn(hdc, hrgn), NULLREGION); // yeah... it's NULLREGION + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); // but in fact it's a rect region! + + /* Exclude something outside of the clip region */ + ok_int(ExcludeClipRect(hdc, 0, 0, 1, 1), COMPLEXREGION); // in reality it's a rect region + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); + + /* Now exclude something for real */ + ok_int(ExcludeClipRect(hdc, 0, 0, 15, 15), COMPLEXREGION); + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + ok_int(CombineRgn(hrgn, hrgn2, NULL, RGN_COPY), COMPLEXREGION); + + /* Exclude everything left */ + ok_int(ExcludeClipRect(hdc, 0, 0, 100, 100), NULLREGION); + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + ok_int(CombineRgn(hrgn, hrgn2, NULL, RGN_COPY), NULLREGION); + + /* Reset the clip region */ + ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION); // makes sense, it's actually the whole region + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 0); // return value says region is NULL + ok_int(ExcludeClipRect(hdc, 0, 0, 1, 1), NULLREGION); + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); // but now we have a region + ok_int(CombineRgn(hrgn, hrgn2, NULL, RGN_COPY), NULLREGION); // but it's a NULLREGION (aka empty)? + + /* Test negative rect */ + ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION); + ok_int(ExcludeClipRect(hdc, -10, -10, 0, 0), COMPLEXREGION); // this time it's a complex region? + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + hrgn = CreateRectRgn(0, 0, 1, 1); + ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); + + /* Test rect with high coordinates */ + ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION); + ok_int(ExcludeClipRect(hdc, 100000, 100000, 100010, 100010), COMPLEXREGION); // this time it's a complex region? + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + hrgn = CreateRectRgn(0, 0, 1, 1); + ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); + + /* Test reversed rect negative, but still above 0 */ + ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION); + ok_int(ExcludeClipRect(hdc, 1, 1, -10, -20), NULLREGION); + ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1); + hrgn = CreateRectRgn(0, 0, 0, 0); + ok_int(CombineRgn(hrgn, hrgn2, NULL, RGN_COPY), NULLREGION); + + ok_int(GetLastError(), 0x12345); + +} + + +START_TEST(ExcludeClipRect) +{ + Test_ExcludeClipRect(); +}
Propchange: trunk/rostests/apitests/gdi32/ExcludeClipRect.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/rostests/apitests/gdi32/GetClipBox.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/GetClipBox.... ============================================================================== --- trunk/rostests/apitests/gdi32/GetClipBox.c [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/GetClipBox.c [iso-8859-1] Wed Sep 24 08:35:30 2014 @@ -18,117 +18,117 @@
void Test_GetClipBox() { - HWND hWnd; - HDC hdc; - RECT rect; - HRGN hrgn, hrgn2; - int ret; + HWND hWnd; + HDC hdc; + RECT rect; + HRGN hrgn, hrgn2; + int ret;
- /* Create a window */ - hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE, - CW_USEDEFAULT, CW_USEDEFAULT, 100, 100, - NULL, NULL, 0, 0); + /* Create a window */ + hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE, + CW_USEDEFAULT, CW_USEDEFAULT, 100, 100, + NULL, NULL, 0, 0); ok(hWnd != NULL, "CreateWindowW failed\n"); if (hWnd == NULL) { return; }
- hdc = GetDC(hWnd); + hdc = GetDC(hWnd);
- /* Test invalid DC */ - SetLastError(ERROR_SUCCESS); - ret = GetClipBox((HDC)0x12345, &rect); - ok(ret == ERROR, "Expected ERROR, got %d\n", ret); - ok(GetLastError() == 0, "Expected 0, got %ld\n", GetLastError()); + /* Test invalid DC */ + SetLastError(ERROR_SUCCESS); + ret = GetClipBox((HDC)0x12345, &rect); + ok(ret == ERROR, "Expected ERROR, got %d\n", ret); + ok(GetLastError() == 0, "Expected 0, got %ld\n", GetLastError());
- //ret = GetClipBox(hdc, &rect); - //ok_int(ret, SIMPLEREGION); - //ok_rect(&rect, 0, 0, 132, 68); + //ret = GetClipBox(hdc, &rect); + //ok_int(ret, SIMPLEREGION); + //ok_rect(&rect, 0, 0, 132, 68);
/* Create a clip region */ - hrgn = CreateRectRgn(5, 7, 50, 50); + hrgn = CreateRectRgn(5, 7, 50, 50); SelectClipRgn(hdc, hrgn); DeleteObject(hrgn); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 5, 7, 50, 50); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 5, 7, 50, 50);
/* Set clip region as meta region */ SetMetaRgn(hdc);
/* Create a new clip region */ - hrgn = CreateRectRgn(10, 10, 100, 100); + hrgn = CreateRectRgn(10, 10, 100, 100); SelectClipRgn(hdc, hrgn); DeleteObject(hrgn); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 10, 10, 50, 50); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 10, 10, 50, 50);
/* Create an empty clip region */ - hrgn = CreateRectRgn(10, 10, 10, 30); + hrgn = CreateRectRgn(10, 10, 10, 30); SelectClipRgn(hdc, hrgn); DeleteObject(hrgn); - ret = GetClipBox(hdc, &rect); - ok_int(ret, NULLREGION); - ok_rect(&rect, 0, 0, 0, 0); + ret = GetClipBox(hdc, &rect); + ok_int(ret, NULLREGION); + ok_rect(&rect, 0, 0, 0, 0);
/* Create a complex region */ - hrgn = CreateRectRgn(10, 10, 30, 30); - hrgn2 = CreateRectRgn(20, 20, 60, 60); - ok_int(CombineRgn(hrgn, hrgn, hrgn2, RGN_OR), COMPLEXREGION); + hrgn = CreateRectRgn(10, 10, 30, 30); + hrgn2 = CreateRectRgn(20, 20, 60, 60); + ok_int(CombineRgn(hrgn, hrgn, hrgn2, RGN_OR), COMPLEXREGION); SelectClipRgn(hdc, hrgn); DeleteObject(hrgn2); - ret = GetClipBox(hdc, &rect); - ok_int(ret, COMPLEXREGION); - ok_rect(&rect, 10, 10, 50, 50); + ret = GetClipBox(hdc, &rect); + ok_int(ret, COMPLEXREGION); + ok_rect(&rect, 10, 10, 50, 50);
/* Set scaling but keep the mapping mode (viewport should not be changed) */ ok_int(SetViewportExtEx(hdc, 1000, 1000, NULL), 1); - ret = GetClipBox(hdc, &rect); - ok_int(ret, COMPLEXREGION); - ok_rect(&rect, 10, 10, 50, 50); + ret = GetClipBox(hdc, &rect); + ok_int(ret, COMPLEXREGION); + ok_rect(&rect, 10, 10, 50, 50);
/* Set unisotropic mode, ClipBox should be unchanged */ ok_int(SetMapMode(hdc, MM_ANISOTROPIC), 1); - ret = GetClipBox(hdc, &rect); - ok_int(ret, COMPLEXREGION); - ok_rect(&rect, 10, 10, 50, 50); + ret = GetClipBox(hdc, &rect); + ok_int(ret, COMPLEXREGION); + ok_rect(&rect, 10, 10, 50, 50);
/* Now set viewport again */ ok_int(SetViewportExtEx(hdc, 200, 400, NULL), 1); - ret = GetClipBox(hdc, &rect); - ok_int(ret, COMPLEXREGION); // obviously some special secret feature... - ok_rect(&rect, 0, 0, 0, 0); + ret = GetClipBox(hdc, &rect); + ok_int(ret, COMPLEXREGION); // obviously some special secret feature... + ok_rect(&rect, 0, 0, 0, 0);
/* Reset clip region */ SelectClipRgn(hdc, NULL); SetMetaRgn(hdc); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 0, 0, 0, 0); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 0, 0, 0, 0);
- hrgn = CreateRectRgn(10, 10, 190, 190); + hrgn = CreateRectRgn(10, 10, 190, 190); SelectClipRgn(hdc, hrgn); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 0, 0, 0, 0); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 0, 0, 0, 0);
/* Now also set the window extension */ ok_int(SetWindowExtEx(hdc, 400, 600, NULL), 1); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 20, 15, 100, 75); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 20, 15, 100, 75);
- hrgn = CreateRectRgn(30, 30, 300, 300); + hrgn = CreateRectRgn(30, 30, 300, 300); SelectClipRgn(hdc, hrgn); SetMetaRgn(hdc); - ret = GetClipBox(hdc, &rect); - ok_int(ret, SIMPLEREGION); - ok_rect(&rect, 60, 45, 100, 75); + ret = GetClipBox(hdc, &rect); + ok_int(ret, SIMPLEREGION); + ok_rect(&rect, 60, 45, 100, 75);
- ReleaseDC(hWnd, hdc); - DestroyWindow(hWnd); + ReleaseDC(hWnd, hdc); + DestroyWindow(hWnd); }
START_TEST(GetClipBox)
Modified: trunk/rostests/apitests/gdi32/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/testlist.c?... ============================================================================== --- trunk/rostests/apitests/gdi32/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/testlist.c [iso-8859-1] Wed Sep 24 08:35:30 2014 @@ -23,6 +23,7 @@ extern void func_EngCreateSemaphore(void); extern void func_EngDeleteSemaphore(void); extern void func_EngReleaseSemaphore(void); +extern void func_ExcludeClipRect(void); extern void func_ExtCreatePen(void); extern void func_GdiConvertBitmap(void); extern void func_GdiConvertBrush(void); @@ -83,6 +84,7 @@ { "EngCreateSemaphore", func_EngCreateSemaphore }, { "EngDeleteSemaphore", func_EngDeleteSemaphore }, { "EngReleaseSemaphore", func_EngReleaseSemaphore }, + { "ExcludeClipRect", func_ExcludeClipRect }, { "ExtCreatePen", func_ExtCreatePen }, { "GdiConvertBitmap", func_GdiConvertBitmap }, { "GdiConvertBrush", func_GdiConvertBrush },