2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtGdiGetRandomRgn
10 START_TEST(NtGdiGetRandomRgn
)
12 HINSTANCE hinst
= GetModuleHandle(NULL
);
18 hWnd
= CreateWindowW(L
"BUTTON", L
"TestWindow", WS_OVERLAPPEDWINDOW
| WS_VISIBLE
,
19 CW_USEDEFAULT
, CW_USEDEFAULT
, 100, 100,
20 NULL
, NULL
, hinst
, 0);
21 // UpdateWindow(hWnd);
26 hrgn
= CreateRectRgn(0,0,0,0);
27 hrgn2
= CreateRectRgn(3,3,10,10);
28 SetLastError(ERROR_SUCCESS
);
29 RTEST(NtGdiGetRandomRgn(0, hrgn
, 0) == -1);
30 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
32 SetLastError(ERROR_SUCCESS
);
33 RTEST(NtGdiGetRandomRgn((HDC
)2345, hrgn
, 1) == -1);
34 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
36 SetLastError(ERROR_SUCCESS
);
37 RTEST(NtGdiGetRandomRgn((HDC
)2345, hrgn
, 10) == -1);
38 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
40 SetLastError(ERROR_SUCCESS
);
41 RTEST(NtGdiGetRandomRgn((HDC
)2345, (HRGN
)10, 10) == -1);
42 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
44 SetLastError(ERROR_SUCCESS
);
45 RTEST(NtGdiGetRandomRgn((HDC
)2345, 0, 1) == -1);
46 RTEST(GetLastError() == ERROR_INVALID_HANDLE
);
48 SetLastError(ERROR_SUCCESS
);
49 RTEST(NtGdiGetRandomRgn(hDC
, 0, 0) == 0);
50 RTEST(NtGdiGetRandomRgn(hDC
, 0, 1) == 0);
51 RTEST(NtGdiGetRandomRgn(hDC
, (HRGN
)-5, 0) == 0);
52 RTEST(NtGdiGetRandomRgn(hDC
, (HRGN
)-5, 1) == 0);
53 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 0) == 0);
54 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 0);
55 TEST(NtGdiGetRandomRgn(hDC
, hrgn
, 2) == 0);
56 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 3) == 0);
57 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 4) == 1);
58 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 5) == 0);
59 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 10) == 0);
60 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, -10) == 0);
61 RTEST(GetLastError() == ERROR_SUCCESS
);
63 SelectClipRgn(hDC
, hrgn2
);
64 RTEST(NtGdiGetRandomRgn(hDC
, 0, 1) == -1);
65 RTEST(GetLastError() == ERROR_SUCCESS
);
66 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 1);
67 RTEST(CombineRgn(hrgn
, hrgn
, hrgn
, RGN_OR
) == SIMPLEREGION
);
68 RTEST(CombineRgn(hrgn
, hrgn
, hrgn2
, RGN_XOR
) == NULLREGION
);
70 SetRectRgn(hrgn2
,0,0,0,0);
71 SelectClipRgn(hDC
, hrgn2
);
72 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 1);
74 RTEST(CombineRgn(hrgn2
, hrgn
, hrgn2
, RGN_XOR
) == NULLREGION
);
75 RTEST(CombineRgn(hrgn2
, hrgn
, hrgn
, RGN_OR
) == NULLREGION
);
77 SelectClipRgn(hDC
, NULL
);
78 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 1) == 0);
81 RTEST(NtGdiGetRandomRgn(hDC
, hrgn
, 4) == 1);
83 RTEST(GetLastError() == ERROR_SUCCESS
);