8700a77be1ba62df83a42cf92a152c47cb70e072
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 and valid bits */
40 SetLastError(ERROR_SUCCESS
);
41 TEST(NtGdiCreateBitmap(1, -2, 1, 1, BitmapData
) == NULL
);
42 TEST(GetLastError() == ERROR_SUCCESS
);
44 /* Test negative cy and invalid bits */
45 SetLastError(ERROR_SUCCESS
);
46 TEST(NtGdiCreateBitmap(1, -2, 1, 1, (BYTE
*)0x80001234) == NULL
);
47 TEST(GetLastError() == ERROR_SUCCESS
);
50 SetLastError(ERROR_SUCCESS
);
51 TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, NULL
) == NULL
);
52 TEST(GetLastError() == ERROR_NOT_ENOUGH_MEMORY
);
54 /* Test huge size and valid bits */
55 SetLastError(ERROR_SUCCESS
);
56 TEST(NtGdiCreateBitmap(1000, 1000, 1, 1, BitmapData
) == NULL
);
57 TEST(GetLastError() == ERROR_SUCCESS
);
59 /* Test huge size and invalid bits */
60 SetLastError(ERROR_SUCCESS
);
61 TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, (BYTE
*)0x80001234) == NULL
);
62 TEST(GetLastError() == ERROR_SUCCESS
);
64 /* Test cPlanes == 0 */
65 SetLastError(ERROR_SUCCESS
);
66 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 0, 1, NULL
)) != NULL
);
67 TEST(GetLastError() == ERROR_SUCCESS
);
68 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
69 TEST(bitmap
.bmType
== 0);
70 TEST(bitmap
.bmWidth
== 1);
71 TEST(bitmap
.bmHeight
== 1);
72 TEST(bitmap
.bmWidthBytes
== 2);
73 TEST(bitmap
.bmPlanes
== 1);
74 TEST(bitmap
.bmBitsPixel
== 1);
77 /* Test big cPlanes */
78 SetLastError(ERROR_SUCCESS
);
79 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 32, 1, NULL
)) != NULL
);
80 TEST(GetLastError() == ERROR_SUCCESS
);
83 TEST(NtGdiCreateBitmap(1, 1, 33, 1, NULL
) == NULL
);
84 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
87 SetLastError(ERROR_SUCCESS
);
88 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 0, NULL
)) != NULL
);
89 TEST(GetLastError() == ERROR_SUCCESS
);
90 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
91 TEST(bitmap
.bmType
== 0);
92 TEST(bitmap
.bmWidth
== 1);
93 TEST(bitmap
.bmHeight
== 1);
94 TEST(bitmap
.bmWidthBytes
== 2);
95 TEST(bitmap
.bmPlanes
== 1);
96 TEST(bitmap
.bmBitsPixel
== 1);
99 /* Test negative cBPP */
100 SetLastError(ERROR_SUCCESS
);
101 TEST(NtGdiCreateBitmap(1, 1, 1, -1, NULL
) == NULL
);
102 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
105 SetLastError(ERROR_SUCCESS
);
106 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 3, NULL
)) != NULL
);
107 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
108 TEST(bitmap
.bmBitsPixel
== 4);
111 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 6, NULL
)) != NULL
);
112 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
113 TEST(bitmap
.bmBitsPixel
== 8);
116 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 15, NULL
)) != NULL
);
117 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
118 TEST(bitmap
.bmBitsPixel
== 16);
121 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 17, NULL
)) != NULL
);
122 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
123 TEST(bitmap
.bmBitsPixel
== 24);
126 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 3, 7, NULL
)) != NULL
);
127 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
128 TEST(bitmap
.bmBitsPixel
== 24);
131 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 25, NULL
)) != NULL
);
132 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
133 TEST(bitmap
.bmBitsPixel
== 32);
136 TEST(GetLastError() == ERROR_SUCCESS
);
138 TEST(NtGdiCreateBitmap(1, 1, 1, 33, NULL
) == NULL
);
139 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
141 /* Test bad pointer */
142 SetLastError(ERROR_SUCCESS
);
143 TEST(NtGdiCreateBitmap(1, 1, 1, 1, (BYTE
*)0x80001234) == NULL
);
144 TEST(GetLastError() == ERROR_SUCCESS
);
146 /* Test pointer alignment */
147 SetLastError(ERROR_SUCCESS
);
148 TEST((hBmp
= NtGdiCreateBitmap(1, 1, 1, 1, &BitmapData
[1])) != NULL
);
149 TEST(GetLastError() == ERROR_SUCCESS
);
152 /* Test normal params */
153 SetLastError(ERROR_SUCCESS
);
154 TEST((hBmp
= NtGdiCreateBitmap(5, 7, 2, 4, NULL
)) != NULL
);
155 TEST(GetLastError() == ERROR_SUCCESS
);
156 ASSERT(GetObject(hBmp
, sizeof(BITMAP
), &bitmap
) == sizeof(BITMAP
));
157 TEST(bitmap
.bmType
== 0);
158 TEST(bitmap
.bmWidth
== 5);
159 TEST(bitmap
.bmHeight
== 7);
160 TEST(bitmap
.bmWidthBytes
== 6);
161 TEST(bitmap
.bmPlanes
== 1);
162 TEST(bitmap
.bmBitsPixel
== 8);
166 /* Test height 0 params */
167 SetLastError(ERROR_SUCCESS
);
168 TEST((hBmp
= NtGdiCreateBitmap(1, 0, 1, 1, NULL
)) == NULL
);
169 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
171 /* Test height -1 params */
172 SetLastError(ERROR_SUCCESS
);
173 TEST((hBmp
= NtGdiCreateBitmap(1, -1, 1, 1, NULL
)) == NULL
);
174 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
176 /* Test witdth 0 params */
177 SetLastError(ERROR_SUCCESS
);
178 TEST((hBmp
= NtGdiCreateBitmap(0, 1, 1, 1, NULL
)) == NULL
);
179 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
181 /* Test witdth -1 params */
182 SetLastError(ERROR_SUCCESS
);
183 TEST((hBmp
= NtGdiCreateBitmap(-1, 0, 1, 1, NULL
)) == NULL
);
184 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
187 /* Test witdth -1 params */
188 SetLastError(ERROR_SUCCESS
);
189 TEST((hBmp
= NtGdiCreateBitmap(0, 0, 1, 1, NULL
)) == NULL
);
190 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
193 return APISTATUS_NORMAL
;
197 Test_NtGdiCreateBitmap(PTESTINFO pti
)
201 ret
= Test_NtGdiCreateBitmap_Params(pti
);
202 if (ret
!= APISTATUS_NORMAL
)
205 // ret = Test_NtGdiCreateBitmap_Pixel(pti);
206 // if (ret != APISTATUS_NORMAL)
209 return APISTATUS_NORMAL
;