[GDI32_APITEST]
authorJérôme Gardou <jerome.gardou@reactos.org>
Tue, 1 Mar 2011 20:50:47 +0000 (20:50 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Tue, 1 Mar 2011 20:50:47 +0000 (20:50 +0000)
  - add a basic test for SetDIBits

svn path=/trunk/; revision=50946

rostests/apitests/gdi32/CMakeLists.txt
rostests/apitests/gdi32/SetDIBits.c [new file with mode: 0644]
rostests/apitests/gdi32/gdi32_apitest.rbuild
rostests/apitests/gdi32/testlist.c

index 7549029..30885c9 100644 (file)
@@ -40,6 +40,7 @@ list(APPEND SOURCE
     MaskBlt.c
     SelectObject.c
     SetDCPenColor.c
+    SetDIBits.c
     SetMapMode.c
     SetSysColors.c
     SetWindowExtEx.c
diff --git a/rostests/apitests/gdi32/SetDIBits.c b/rostests/apitests/gdi32/SetDIBits.c
new file mode 100644 (file)
index 0000000..42dc060
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * PROJECT:         ReactOS api tests
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * PURPOSE:         Test for SetDIBits
+ * PROGRAMMERS:     Jérôme Gardou
+ */
+
+#include <stdio.h>
+#include <wine/test.h>
+#include <windows.h>
+
+
+void Test_SetDIBits()
+{
+    char buffer[sizeof(BITMAPINFOHEADER)+2*sizeof(RGBQUAD)];
+    ULONG* dibBuffer;
+    BITMAPINFO* pBMI = (BITMAPINFO*)buffer;
+    DWORD bits1bpp[2] = {0, 1};
+    HBITMAP hbmp;
+    int ret;
+
+    ZeroMemory(buffer, sizeof(buffer));
+
+    pBMI->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
+    pBMI->bmiHeader.biWidth=2;
+    pBMI->bmiHeader.biHeight=1;
+    pBMI->bmiHeader.biPlanes=1;
+    pBMI->bmiHeader.biBitCount=32;
+    pBMI->bmiHeader.biCompression=BI_RGB;
+    pBMI->bmiHeader.biSizeImage=0;
+    pBMI->bmiHeader.biXPelsPerMeter=0;
+    pBMI->bmiHeader.biYPelsPerMeter=0;
+    pBMI->bmiHeader.biClrUsed=0;
+    pBMI->bmiHeader.biClrImportant=0;
+
+    hbmp = CreateDIBSection(NULL, pBMI, DIB_RGB_COLORS, (PVOID*)&dibBuffer, NULL, 0);
+    ok(hbmp!=NULL, "Failed to create a DIB section\n");
+
+    pBMI->bmiHeader.biBitCount = 1;
+    pBMI->bmiColors[0].rgbBlue = 0xFF;
+    pBMI->bmiColors[0].rgbGreen = 0xFF;
+    pBMI->bmiColors[0].rgbRed = 0xFF;
+
+    ret = SetDIBits(NULL, hbmp, 0, 1, bits1bpp, pBMI, DIB_RGB_COLORS);
+    ok(ret == 1, "Copied %i scanlines\n", ret);
+
+    ok(dibBuffer[0] = 0xFFFFFF, "Wrong color 0x%08x after SetDIBits\n", (unsigned int)dibBuffer[0]);
+    ok(dibBuffer[1] = 0xFFFFFF, "Wrong color 0x%08x after SetDIBits\n", (unsigned int)dibBuffer[1]);
+
+    DeleteObject(hbmp);
+}
+
+START_TEST(SetDIBits)
+{
+    Test_SetDIBits();
+}
index ec6849d..25dc88f 100644 (file)
@@ -47,6 +47,7 @@
        <file>MaskBlt.c</file>
        <file>SelectObject.c</file>
        <file>SetDCPenColor.c</file>
+       <file>SetDIBits.c</file>
        <file>SetMapMode.c</file>
        <file>SetSysColors.c</file>
        <file>SetWindowExtEx.c</file>
index a2afecc..c9b59d3 100644 (file)
@@ -43,6 +43,7 @@ extern void func_GetTextFace(void);
 extern void func_MaskBlt(void);
 extern void func_SelectObject(void);
 extern void func_SetDCPenColor(void);
+extern void func_SetDIBits(void);
 extern void func_SetMapMode(void);
 extern void func_SetSysColors(void);
 extern void func_SetWindowExtEx(void);
@@ -88,6 +89,7 @@ const struct test winetest_testlist[] =
     { "MaskBlt", func_MaskBlt },
     { "SelectObject", func_SelectObject },
     { "SetDCPenColor", func_SetDCPenColor },
+    { "SetDIBits", func_SetDIBits },
     { "SetMapMode", func_SetMapMode },
     { "SetSysColors", func_SetSysColors },
     { "SetWindowExtEx", func_SetWindowExtEx },