mirror of
https://github.com/reactos/reactos.git
synced 2025-05-18 16:51:18 +00:00
[GDI32_APITEST]
More tests for CreateBitmap by Victor Martinez svn path=/trunk/; revision=56605
This commit is contained in:
parent
d20ffb99ef
commit
62d76ebae8
1 changed files with 55 additions and 21 deletions
|
@ -59,6 +59,7 @@ void Test_CreateBitmap_Params()
|
|||
hbmp = CreateBitmap(0x7FFFFFF, 1, 1, 1, NULL);
|
||||
ok(hbmp != 0, "\n");
|
||||
DeleteObject(hbmp);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(0x8000000, 1, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
|
@ -68,6 +69,7 @@ void Test_CreateBitmap_Params()
|
|||
hbmp = CreateBitmap(1, 0x1FFFFF00, 1, 1, NULL);
|
||||
//ok(hbmp != 0, "\n"); // fails on windows 2003
|
||||
DeleteObject(hbmp);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(1, 0x1FFFFFFF, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
|
@ -77,6 +79,7 @@ void Test_CreateBitmap_Params()
|
|||
hbmp = CreateBitmap(0x20000, 0x1FFFF, 1, 1, NULL);
|
||||
//ok(hbmp != 0, "\n"); // fails on windows 2003
|
||||
DeleteObject(hbmp);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(0x20000, 0x20000, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
|
@ -94,41 +97,72 @@ void Test_CreateBitmap()
|
|||
{
|
||||
HBITMAP hbmp;
|
||||
BITMAP bitmap;
|
||||
int result;
|
||||
ULONG cjWidthBytes, cBitsPixel, cExpectedBitsPixel;
|
||||
|
||||
hbmp = CreateBitmap(0, 0, 0, 0, NULL);
|
||||
ok(hbmp != 0, "should get a 1x1 bitmap\n");
|
||||
ok(hbmp == GetStockObject(DEFAULT_BITMAP), "\n");
|
||||
result = GetObject(hbmp, sizeof(bitmap), &bitmap);
|
||||
ok(result > 0, "result = %d\n", result);
|
||||
ok(bitmap.bmType == 0, "bmType = %ld\n", bitmap.bmType);
|
||||
ok(bitmap.bmWidth == 1, "bmWidth = %ld\n", bitmap.bmWidth);
|
||||
ok(bitmap.bmHeight == 1, "bmHeight = %ld\n", bitmap.bmHeight);
|
||||
ok(bitmap.bmWidthBytes == 2, "bmWidthBytes = %ld\n", bitmap.bmWidthBytes);
|
||||
ok(bitmap.bmPlanes == 1, "bmPlanes = %d\n", bitmap.bmPlanes);
|
||||
ok(bitmap.bmBitsPixel == 1, "bmBitsPixel = %d\n", bitmap.bmBitsPixel);
|
||||
ok(bitmap.bmBits == 0, "bmBits = %p\n", bitmap.bmBits);
|
||||
ok_int(GetObject(hbmp, sizeof(bitmap), &bitmap), sizeof(BITMAP));
|
||||
ok_int(bitmap.bmType, 0);
|
||||
ok_int(bitmap.bmWidth, 1);
|
||||
ok_int(bitmap.bmHeight, 1);
|
||||
ok_int(bitmap.bmWidthBytes, 2);
|
||||
ok_int(bitmap.bmPlanes, 1);
|
||||
ok_int(bitmap.bmBitsPixel, 1);
|
||||
ok_ptr(bitmap.bmBits, 0);
|
||||
DeleteObject(hbmp);
|
||||
|
||||
hbmp = CreateBitmap(1, 2, 1, 1, NULL);
|
||||
ok(hbmp != 0, "should get a 1x2 bitmap\n");
|
||||
result = GetObject(hbmp, sizeof(bitmap), &bitmap);
|
||||
ok(result > 0, "result = %d\n", result);
|
||||
ok(bitmap.bmType == 0, "bmType = %ld\n", bitmap.bmType);
|
||||
ok(bitmap.bmWidth == 1, "bmWidth = %ld\n", bitmap.bmWidth);
|
||||
ok(bitmap.bmHeight == 2, "bmHeight = %ld\n", bitmap.bmHeight);
|
||||
ok(bitmap.bmWidthBytes == 2, "bmWidthBytes = %ld\n", bitmap.bmWidthBytes);
|
||||
ok(bitmap.bmPlanes == 1, "bmPlanes = %d\n", bitmap.bmPlanes);
|
||||
ok(bitmap.bmBitsPixel == 1, "bmBitsPixel = %d\n", bitmap.bmBitsPixel);
|
||||
ok(bitmap.bmBits == 0, "bmBits = %p\n", bitmap.bmBits);
|
||||
ok_int(GetObject(hbmp, sizeof(bitmap), &bitmap), sizeof(BITMAP));
|
||||
ok_int(bitmap.bmType, 0);
|
||||
ok_int(bitmap.bmWidth, 1);
|
||||
ok_int(bitmap.bmHeight, 2);
|
||||
ok_int(bitmap.bmWidthBytes, 2);
|
||||
ok_int(bitmap.bmPlanes, 1);
|
||||
ok_int(bitmap.bmBitsPixel, 1);
|
||||
ok_ptr(bitmap.bmBits, 0);
|
||||
DeleteObject(hbmp);
|
||||
|
||||
for (cBitsPixel = 0; cBitsPixel <= 32; cBitsPixel++)
|
||||
{
|
||||
/* CreateBitmap API accepts any number as BitsPixels param.
|
||||
but it just can create 1, 4, 8, 16, 24, 32 bpp Bitmaps */
|
||||
if (cBitsPixel <= 1) cExpectedBitsPixel = 1;
|
||||
else if (cBitsPixel <= 4) cExpectedBitsPixel = 4;
|
||||
else if (cBitsPixel <= 8) cExpectedBitsPixel = 8;
|
||||
else if (cBitsPixel <= 16) cExpectedBitsPixel = 16;
|
||||
else if (cBitsPixel <= 24) cExpectedBitsPixel = 24;
|
||||
else if (cBitsPixel <= 32) cExpectedBitsPixel = 32;
|
||||
|
||||
hbmp = CreateBitmap(1, 2, 1, cBitsPixel, NULL);
|
||||
ok(hbmp != 0, "should get a 1x2 bitmap %ld\n", cBitsPixel);
|
||||
ok_int(GetObject(hbmp, sizeof(bitmap), &bitmap), sizeof(BITMAP));
|
||||
|
||||
/* calculate expected line width */
|
||||
cjWidthBytes = ((((ULONG)bitmap.bmWidth) * ((ULONG)bitmap.bmBitsPixel) + 15) & ~15) >> 3;
|
||||
|
||||
ok_int(bitmap.bmType, 0);
|
||||
ok_int(bitmap.bmWidth, 1);
|
||||
ok_int(bitmap.bmHeight, 2);
|
||||
ok_int(bitmap.bmPlanes, 1);
|
||||
ok_int(bitmap.bmBitsPixel, cExpectedBitsPixel);
|
||||
ok_int(bitmap.bmWidthBytes, cjWidthBytes);
|
||||
ok_ptr(bitmap.bmBits, 0);
|
||||
DeleteObject(hbmp);
|
||||
|
||||
}
|
||||
|
||||
hbmp = CreateBitmap(1, 2, 1, 33, NULL);
|
||||
ok(hbmp == 0, "Expected failure for 33 bpp\n");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
START_TEST(CreateBitmap)
|
||||
{
|
||||
Test_CreateBitmap_Params();
|
||||
//Test_CreateBitmap_Params();
|
||||
Test_CreateBitmap();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue