gdi32/tests: Some GdiAlphaBlend tests

Nikolay Sivov bunglehead at gmail.com
Wed Sep 9 06:30:53 CDT 2009


Bug http://bugs.winehq.org/show_bug.cgi?id=18041 shows this commented crash.
I'm not sure how to fix it, but I think this call can't do anything
without source context.

Another question is where to place such check - in gdi32 or winex11...any
advices are welcome.

Changelog:
    - Some GdiAlphaBlend tests

>From a59cadcf03edeefff95c340230a47c9c3c60727f Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Wed, 9 Sep 2009 15:20:34 +0400
Subject: Some GdiAlphaBlend tests

---
 dlls/gdi32/tests/bitmap.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c
index 8666da2..38acd09 100644
--- a/dlls/gdi32/tests/bitmap.c
+++ b/dlls/gdi32/tests/bitmap.c
@@ -2376,6 +2376,25 @@ static void test_GdiAlphaBlend(void)
     blend.SourceConstantAlpha = 128;
     blend.AlphaFormat = 0;
 
+    /* zero dimensions */
+    SetLastError(0xdeadbeef);
+    expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 0, 0, hdcSrc, 0, 0, 20, 20, blend), TRUE, BOOL, "%d");
+    expect_eq(GetLastError(), 0xdeadbeef, int, "%d");
+    SetLastError(0xdeadbeef);
+    expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 20, 20, hdcSrc, 0, 0, 0, 0, blend), TRUE, BOOL, "%d");
+    expect_eq(GetLastError(), 0xdeadbeef, int, "%d");
+
+    SetLastError(0xdeadbeef);
+    expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 0, 0, hdcSrc, 0, 0, 0, 0, blend), TRUE, BOOL, "%d");
+    expect_eq(GetLastError(), 0xdeadbeef, int, "%d");
+
+#if 0
+    /* zero source HDC - crashes on wine, works on native */
+    SetLastError(0xdeadbeef);
+    expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 20, 20, NULL, 0, 0, 20, 20, blend), FALSE, BOOL, "%d");
+    expect_eq(GetLastError(), 0xdeadbeef, int, "%d");
+#endif
+
     expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 20, 20, hdcSrc, 0, 0, 20, 20, blend), TRUE, BOOL, "%d");
     SetLastError(0xdeadbeef);
     expect_eq(pGdiAlphaBlend(hdcDst, 0, 0, 20, 20, hdcSrc, -1, 0, 10, 10, blend), FALSE, BOOL, "%d");
-- 
1.5.6.5





More information about the wine-patches mailing list