Disable some misleading service tests because a test cannot determine wheter or not...
[reactos.git] / rostests / apitests / w32knapi / ntgdi / NtGdiGetRandomRgn.c
1 INT
2 Test_NtGdiGetRandomRgn(PTESTINFO pti)
3 {
4 HWND hWnd;
5 HDC hDC;
6 HRGN hrgn, hrgn2;
7
8 /* Create a window */
9 hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
10 CW_USEDEFAULT, CW_USEDEFAULT, 100, 100,
11 NULL, NULL, g_hInstance, 0);
12 // UpdateWindow(hWnd);
13 hDC = GetDC(hWnd);
14
15 ASSERT(hDC != NULL);
16
17 hrgn = CreateRectRgn(0,0,0,0);
18 hrgn2 = CreateRectRgn(3,3,10,10);
19 SetLastError(ERROR_SUCCESS);
20 RTEST(NtGdiGetRandomRgn(0, hrgn, 0) == -1);
21 RTEST(GetLastError() == ERROR_INVALID_HANDLE);
22
23 SetLastError(ERROR_SUCCESS);
24 RTEST(NtGdiGetRandomRgn((HDC)2345, hrgn, 1) == -1);
25 RTEST(GetLastError() == ERROR_INVALID_HANDLE);
26
27 SetLastError(ERROR_SUCCESS);
28 RTEST(NtGdiGetRandomRgn((HDC)2345, hrgn, 10) == -1);
29 RTEST(GetLastError() == ERROR_INVALID_HANDLE);
30
31 SetLastError(ERROR_SUCCESS);
32 RTEST(NtGdiGetRandomRgn((HDC)2345, (HRGN)10, 10) == -1);
33 RTEST(GetLastError() == ERROR_INVALID_HANDLE);
34
35 SetLastError(ERROR_SUCCESS);
36 RTEST(NtGdiGetRandomRgn((HDC)2345, 0, 1) == -1);
37 RTEST(GetLastError() == ERROR_INVALID_HANDLE);
38
39 SetLastError(ERROR_SUCCESS);
40 RTEST(NtGdiGetRandomRgn(hDC, 0, 0) == 0);
41 RTEST(NtGdiGetRandomRgn(hDC, 0, 1) == 0);
42 RTEST(NtGdiGetRandomRgn(hDC, (HRGN)-5, 0) == 0);
43 RTEST(NtGdiGetRandomRgn(hDC, (HRGN)-5, 1) == 0);
44 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 0) == 0);
45 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 1) == 0);
46 TEST(NtGdiGetRandomRgn(hDC, hrgn, 2) == 0);
47 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 3) == 0);
48 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 4) == 1);
49 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 5) == 0);
50 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 10) == 0);
51 RTEST(NtGdiGetRandomRgn(hDC, hrgn, -10) == 0);
52 RTEST(GetLastError() == ERROR_SUCCESS);
53
54 SelectClipRgn(hDC, hrgn2);
55 RTEST(NtGdiGetRandomRgn(hDC, 0, 1) == -1);
56 RTEST(GetLastError() == ERROR_SUCCESS);
57 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 1) == 1);
58 RTEST(CombineRgn(hrgn, hrgn, hrgn, RGN_OR) == SIMPLEREGION);
59 RTEST(CombineRgn(hrgn, hrgn, hrgn2, RGN_XOR) == NULLREGION);
60
61 SetRectRgn(hrgn2,0,0,0,0);
62 SelectClipRgn(hDC, hrgn2);
63 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 1) == 1);
64
65 RTEST(CombineRgn(hrgn2, hrgn, hrgn2, RGN_XOR) == NULLREGION);
66 RTEST(CombineRgn(hrgn2, hrgn, hrgn, RGN_OR) == NULLREGION);
67
68 SelectClipRgn(hDC, NULL);
69 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 1) == 0);
70
71
72 RTEST(NtGdiGetRandomRgn(hDC, hrgn, 4) == 1);
73
74 RTEST(GetLastError() == ERROR_SUCCESS);
75
76 ReleaseDC(hWnd, hDC);
77 DestroyWindow(hWnd);
78
79 return APISTATUS_NORMAL;
80 }