[W32KNAPI]
[reactos.git] / rostests / apitests / w32knapi / ntgdi / NtGdiCreateBitmap.c
index 670d17c..8700a77 100644 (file)
-INT\r
-Test_NtGdiCreateBitmap_Params(PTESTINFO pti)\r
-{\r
-       HBITMAP hBmp;\r
-       BITMAP bitmap;\r
-       BYTE BitmapData[10] = {0x11, 0x22, 0x33};\r
-\r
-       /* Test simple params */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 1, NULL)) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       DeleteObject(hBmp);\r
-\r
-       /* Test all zero */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(0, 0, 0, 0, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test cx == 0 */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(0, 1, 1, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test negative cx */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(-10, 1, 1, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test cy == 0 */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(1, 0, 1, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test negative cy */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(1, -2, 1, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test negative cy */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(1, -2, 1, 1, BitmapData) == NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-\r
-       /* Test huge size */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_NOT_ENOUGH_MEMORY);\r
-\r
-       /* Test cPlanes == 0 */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 0, 1, NULL)) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmType == 0);\r
-       TEST(bitmap.bmWidth == 1);\r
-       TEST(bitmap.bmHeight == 1);\r
-       TEST(bitmap.bmWidthBytes == 2);\r
-       TEST(bitmap.bmPlanes == 1);\r
-       TEST(bitmap.bmBitsPixel == 1);\r
-       DeleteObject(hBmp);\r
-\r
-       /* Test big cPlanes */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 32, 1, NULL)) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST(NtGdiCreateBitmap(1, 1, 33, 1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test cBPP == 0 */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 0, NULL)) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmType == 0);\r
-       TEST(bitmap.bmWidth == 1);\r
-       TEST(bitmap.bmHeight == 1);\r
-       TEST(bitmap.bmWidthBytes == 2);\r
-       TEST(bitmap.bmPlanes == 1);\r
-       TEST(bitmap.bmBitsPixel == 1);\r
-       DeleteObject(hBmp);\r
-\r
-       /* Test negative cBPP */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(1, 1, 1, -1, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test bad cBPP */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 3, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 4);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 6, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 8);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 15, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 16);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 17, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 24);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 3, 7, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 24);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 25, NULL)) != NULL);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmBitsPixel == 32);\r
-       DeleteObject(hBmp);\r
-\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-\r
-       TEST(NtGdiCreateBitmap(1, 1, 1, 33, NULL) == NULL);\r
-       TEST(GetLastError() == ERROR_INVALID_PARAMETER);\r
-\r
-       /* Test bad pointer */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST(NtGdiCreateBitmap(1, 1, 1, 1, (BYTE*)0x80001234) == NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-\r
-       /* Test pointer alignment */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 1, &BitmapData[1])) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       DeleteObject(hBmp);\r
-\r
-       /* Test normal params */\r
-       SetLastError(ERROR_SUCCESS);\r
-       TEST((hBmp = NtGdiCreateBitmap(5, 7, 2, 4, NULL)) != NULL);\r
-       TEST(GetLastError() == ERROR_SUCCESS);\r
-       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));\r
-       TEST(bitmap.bmType == 0);\r
-       TEST(bitmap.bmWidth == 5);\r
-       TEST(bitmap.bmHeight == 7);\r
-       TEST(bitmap.bmWidthBytes == 6);\r
-       TEST(bitmap.bmPlanes == 1);\r
-       TEST(bitmap.bmBitsPixel == 8);\r
-       DeleteObject(hBmp);\r
-\r
-       return APISTATUS_NORMAL;\r
-}\r
-\r
-INT\r
-Test_NtGdiCreateBitmap(PTESTINFO pti)\r
-{\r
-       INT ret;\r
-\r
-       ret = Test_NtGdiCreateBitmap_Params(pti);\r
-       if (ret != APISTATUS_NORMAL)\r
-               return ret;\r
-\r
-//     ret = Test_NtGdiCreateBitmap_Pixel(pti);\r
-//     if (ret != APISTATUS_NORMAL)\r
-//             return ret;\r
-\r
-       return APISTATUS_NORMAL;\r
-\r
-}\r
+INT
+Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
+{
+       HBITMAP hBmp;
+       BITMAP bitmap;
+       BYTE BitmapData[10] = {0x11, 0x22, 0x33};
+
+       /* Test simple params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 1, NULL)) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       DeleteObject(hBmp);
+
+       /* Test all zero */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(0, 0, 0, 0, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test cx == 0 */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(0, 1, 1, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test negative cx */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(-10, 1, 1, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test cy == 0 */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, 0, 1, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test negative cy */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, -2, 1, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test negative cy and valid bits */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, -2, 1, 1, BitmapData) == NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       /* Test negative cy and invalid bits */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, -2, 1, 1, (BYTE*)0x80001234) == NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       /* Test huge size */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_NOT_ENOUGH_MEMORY);
+
+       /* Test huge size and valid bits */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1000, 1000, 1, 1, BitmapData) == NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       /* Test huge size and invalid bits */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(100000, 100000, 1, 1, (BYTE*)0x80001234) == NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       /* Test cPlanes == 0 */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 0, 1, NULL)) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmType == 0);
+       TEST(bitmap.bmWidth == 1);
+       TEST(bitmap.bmHeight == 1);
+       TEST(bitmap.bmWidthBytes == 2);
+       TEST(bitmap.bmPlanes == 1);
+       TEST(bitmap.bmBitsPixel == 1);
+       DeleteObject(hBmp);
+
+       /* Test big cPlanes */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 32, 1, NULL)) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       DeleteObject(hBmp);
+
+       TEST(NtGdiCreateBitmap(1, 1, 33, 1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test cBPP == 0 */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 0, NULL)) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmType == 0);
+       TEST(bitmap.bmWidth == 1);
+       TEST(bitmap.bmHeight == 1);
+       TEST(bitmap.bmWidthBytes == 2);
+       TEST(bitmap.bmPlanes == 1);
+       TEST(bitmap.bmBitsPixel == 1);
+       DeleteObject(hBmp);
+
+       /* Test negative cBPP */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, 1, 1, -1, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test bad cBPP */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 3, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 4);
+       DeleteObject(hBmp);
+
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 6, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 8);
+       DeleteObject(hBmp);
+
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 15, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 16);
+       DeleteObject(hBmp);
+
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 17, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 24);
+       DeleteObject(hBmp);
+
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 3, 7, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 24);
+       DeleteObject(hBmp);
+
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 25, NULL)) != NULL);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmBitsPixel == 32);
+       DeleteObject(hBmp);
+
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       TEST(NtGdiCreateBitmap(1, 1, 1, 33, NULL) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test bad pointer */
+       SetLastError(ERROR_SUCCESS);
+       TEST(NtGdiCreateBitmap(1, 1, 1, 1, (BYTE*)0x80001234) == NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+
+       /* Test pointer alignment */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 1, &BitmapData[1])) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       DeleteObject(hBmp);
+
+       /* Test normal params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(5, 7, 2, 4, NULL)) != NULL);
+       TEST(GetLastError() == ERROR_SUCCESS);
+       ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
+       TEST(bitmap.bmType == 0);
+       TEST(bitmap.bmWidth == 5);
+       TEST(bitmap.bmHeight == 7);
+       TEST(bitmap.bmWidthBytes == 6);
+       TEST(bitmap.bmPlanes == 1);
+       TEST(bitmap.bmBitsPixel == 8);
+       DeleteObject(hBmp);
+
+
+       /* Test height 0 params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, 0, 1, 1, NULL)) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test height -1 params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(1, -1, 1, 1, NULL)) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test witdth 0 params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(0, 1, 1, 1, NULL)) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+       /* Test witdth -1 params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(-1, 0, 1, 1, NULL)) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+
+    /* Test witdth -1 params */
+       SetLastError(ERROR_SUCCESS);
+       TEST((hBmp = NtGdiCreateBitmap(0, 0, 1, 1, NULL)) == NULL);
+       TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+
+
+       return APISTATUS_NORMAL;
+}
+
+INT
+Test_NtGdiCreateBitmap(PTESTINFO pti)
+{
+       INT ret;
+
+       ret = Test_NtGdiCreateBitmap_Params(pti);
+       if (ret != APISTATUS_NORMAL)
+               return ret;
+
+//     ret = Test_NtGdiCreateBitmap_Pixel(pti);
+//     if (ret != APISTATUS_NORMAL)
+//             return ret;
+
+       return APISTATUS_NORMAL;
+
+}