2 Test_NtGdiCreateBitmap_Params(PTESTINFO pti
)
6 BYTE BitmapData
[10] = {0x11, 0x22, 0x33};
8 /* Test simple params */
9 SetLastError(ERROR_SUCCESS
);
10 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 1, NULL
)) != NULL
);
11 TEST(GetLastError() == ERROR_SUCCESS
);
15 SetLastError(ERROR_SUCCESS
);
16 TEST(NtGdiCreateBitmap(0, 0, 0, 0, NULL
) == NULL
);
17 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
20 SetLastError(ERROR_SUCCESS
);
21 TEST(NtGdiCreateBitmap(0, 1, 1, 1, NULL
) == NULL
);
22 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
24 /* Test negative cx */
25 SetLastError(ERROR_SUCCESS
);
26 TEST(NtGdiCreateBitmap(-10, 1, 1, 1, NULL
) == NULL
);
27 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
30 SetLastError(ERROR_SUCCESS
);
31 TEST(NtGdiCreateBitmap(1, 0, 1, 1, NULL
) == NULL
);
32 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
34 /* Test negative cy */
35 SetLastError(ERROR_SUCCESS
);
36 TEST(NtGdiCreateBitmap(1, -2, 1, 1, NULL
) == NULL
);
37 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
39 /* Test negative cy */
40 SetLastError(ERROR_SUCCESS
);
41 TEST(NtGdiCreateBitmap(1, -2, 1, 1, BitmapData
) == NULL
);
42 TEST(GetLastError() == ERROR_SUCCESS
);
45 SetLastError(ERROR_SUCCESS
);
46 TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, NULL
) == NULL
);
47 TEST(GetLastError() == ERROR_NOT_ENOUGH_MEMORY
);
49 /* Test cPlanes == 0 */
50 SetLastError(ERROR_SUCCESS
);
51 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 0, 1, NULL
)) != NULL
);
52 TEST(GetLastError() == ERROR_SUCCESS
);
53 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
54 TEST(bitmap
.bmType
== 0);
55 TEST(bitmap
.bmWidth
== 1);
56 TEST(bitmap
.bmHeight
== 1);
57 TEST(bitmap
.bmWidthBytes
== 2);
58 TEST(bitmap
.bmPlanes
== 1);
59 TEST(bitmap
.bmBitsPixel
== 1);
62 /* Test big cPlanes */
63 SetLastError(ERROR_SUCCESS
);
64 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 32, 1, NULL
)) != NULL
);
65 TEST(GetLastError() == ERROR_SUCCESS
);
68 TEST(NtGdiCreateBitmap(1, 1, 33, 1, NULL
) == NULL
);
69 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
72 SetLastError(ERROR_SUCCESS
);
73 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 0, NULL
)) != NULL
);
74 TEST(GetLastError() == ERROR_SUCCESS
);
75 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
76 TEST(bitmap
.bmType
== 0);
77 TEST(bitmap
.bmWidth
== 1);
78 TEST(bitmap
.bmHeight
== 1);
79 TEST(bitmap
.bmWidthBytes
== 2);
80 TEST(bitmap
.bmPlanes
== 1);
81 TEST(bitmap
.bmBitsPixel
== 1);
84 /* Test negative cBPP */
85 SetLastError(ERROR_SUCCESS
);
86 TEST(NtGdiCreateBitmap(1, 1, 1, -1, NULL
) == NULL
);
87 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
90 SetLastError(ERROR_SUCCESS
);
91 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 3, NULL
)) != NULL
);
92 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
93 TEST(bitmap
.bmBitsPixel
== 4);
96 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 6, NULL
)) != NULL
);
97 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
98 TEST(bitmap
.bmBitsPixel
== 8);
101 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 15, NULL
)) != NULL
);
102 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
103 TEST(bitmap
.bmBitsPixel
== 16);
106 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 17, NULL
)) != NULL
);
107 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
108 TEST(bitmap
.bmBitsPixel
== 24);
111 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 3, 7, NULL
)) != NULL
);
112 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
113 TEST(bitmap
.bmBitsPixel
== 24);
116 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 25, NULL
)) != NULL
);
117 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
118 TEST(bitmap
.bmBitsPixel
== 32);
121 TEST(GetLastError() == ERROR_SUCCESS
);
123 TEST(NtGdiCreateBitmap(1, 1, 1, 33, NULL
) == NULL
);
124 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
126 /* Test bad pointer */
127 SetLastError(ERROR_SUCCESS
);
128 TEST(NtGdiCreateBitmap(1, 1, 1, 1, (BYTE
*)0x80001234) == NULL
);
129 TEST(GetLastError() == ERROR_SUCCESS
);
131 /* Test pointer alignment */
132 SetLastError(ERROR_SUCCESS
);
133 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 1, &BitmapData
[1])) != NULL
);
134 TEST(GetLastError() == ERROR_SUCCESS
);
137 /* Test normal params */
138 SetLastError(ERROR_SUCCESS
);
139 TEST((hBmp
= NtGdiCreateBitmap(5, 7, 2, 4, NULL
)) != NULL
);
140 TEST(GetLastError() == ERROR_SUCCESS
);
141 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
142 TEST(bitmap
.bmType
== 0);
143 TEST(bitmap
.bmWidth
== 5);
144 TEST(bitmap
.bmHeight
== 7);
145 TEST(bitmap
.bmWidthBytes
== 6);
146 TEST(bitmap
.bmPlanes
== 1);
147 TEST(bitmap
.bmBitsPixel
== 8);
151 /* Test height 0 params */
152 SetLastError(ERROR_SUCCESS
);
153 TEST((hBmp
= NtGdiCreateBitmap(1, 0, 1, 1, NULL
)) == NULL
);
154 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
156 /* Test height -1 params */
157 SetLastError(ERROR_SUCCESS
);
158 TEST((hBmp
= NtGdiCreateBitmap(1, -1, 1, 1, NULL
)) == NULL
);
159 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
161 /* Test witdth 0 params */
162 SetLastError(ERROR_SUCCESS
);
163 TEST((hBmp
= NtGdiCreateBitmap(0, 1, 1, 1, NULL
)) == NULL
);
164 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
166 /* Test witdth -1 params */
167 SetLastError(ERROR_SUCCESS
);
168 TEST((hBmp
= NtGdiCreateBitmap(-1, 0, 1, 1, NULL
)) == NULL
);
169 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
172 /* Test witdth -1 params */
173 SetLastError(ERROR_SUCCESS
);
174 TEST((hBmp
= NtGdiCreateBitmap(0, 0, 1, 1, NULL
)) == NULL
);
175 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
178 return APISTATUS_NORMAL
;
182 Test_NtGdiCreateBitmap(PTESTINFO pti
)
186 ret
= Test_NtGdiCreateBitmap_Params(pti
);
187 if (ret
!= APISTATUS_NORMAL
)
190 // ret = Test_NtGdiCreateBitmap_Pixel(pti);
191 // if (ret != APISTATUS_NORMAL)
194 return APISTATUS_NORMAL
;