test: Composite with solid images instead of using pixman_image_fill_*
authorSøren Sandmann Pedersen <ssp@redhat.com>
Thu, 24 May 2012 19:30:41 +0000 (15:30 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Thu, 24 May 2012 19:30:41 +0000 (15:30 -0400)
There is a couple of places where the test suite uses the
pixman_image_fill_* functions to initialize images. These functions
can fail, and will do so if the "fast" implementation is disabled.

So to make sure the test suite passes even using
PIXMAN_DISABLE="fast", use pixman_image_composite32() with a solid
image instead of pixman_image_fill_*.

test/composite.c
test/scaling-crash-test.c

index 48bde9c..94b4825 100644 (file)
@@ -525,15 +525,16 @@ composite_test (image_t *dst,
                int testno)
 {
     pixman_color_t fill;
-    pixman_rectangle16_t rect;
     color_t expected, tdst, tsrc, tmsk;
     pixel_checker_t checker;
+    pixman_image_t *solid;
 
     /* Initialize dst */
     compute_pixman_color (dst->color, &fill);
-    rect.x = rect.y = 0;
-    rect.width = rect.height = dst->size;
-    pixman_image_fill_rectangles (PIXMAN_OP_SRC, dst->image, &fill, 1, &rect);
+    solid = pixman_image_create_solid_fill (&fill);
+    pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, dst->image,
+                             0, 0, 0, 0, 0, 0, dst->size, dst->size);
+    pixman_image_unref (solid);
 
     if (mask)
     {
@@ -644,16 +645,16 @@ image_init (image_t *info,
 
     if (info->size)
     {
-       pixman_rectangle16_t rect;
+       pixman_image_t *solid;
 
        info->image = pixman_image_create_bits (info->format->format,
                                                info->size, info->size,
                                                NULL, 0);
 
-       rect.x = rect.y = 0;
-       rect.width = rect.height = info->size;
-       pixman_image_fill_rectangles (PIXMAN_OP_SRC, info->image, &fill,
-                                     1, &rect);
+       solid = pixman_image_create_solid_fill (&fill);
+       pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, info->image,
+                                 0, 0, 0, 0, 0, 0, info->size, info->size);
+       pixman_image_unref (solid);
 
        if (sizes[size] & REPEAT)
        {
index ed57ae0..0dac892 100644 (file)
@@ -32,8 +32,8 @@ run_test (int32_t             dst_width,
     pixman_transform_t transform;
     uint32_t *         srcbuf;
     uint32_t *         dstbuf;
-    pixman_box32_t     box = { 0, 0, src_width, src_height };
     pixman_color_t     color_cc = { 0xcccc, 0xcccc, 0xcccc, 0xcccc };
+    pixman_image_t *   solid;
     int result;
     int i;
 
@@ -62,7 +62,10 @@ run_test (int32_t            dst_width,
         PIXMAN_a8r8g8b8, src_width, src_height,
        srcbuf + (src_width + 10) * 5 + 5, (src_width + 10) * 4);
 
-    pixman_image_fill_boxes (PIXMAN_OP_SRC, src_img, &color_cc, 1, &box);
+    solid = pixman_image_create_solid_fill (&color_cc);
+    pixman_image_composite32 (PIXMAN_OP_SRC, solid, NULL, src_img,
+                             0, 0, 0, 0, 0, 0, src_width, src_height);
+    pixman_image_unref (solid);
 
     dst_img = pixman_image_create_bits (
         PIXMAN_a8r8g8b8, dst_width, dst_height, dstbuf, dst_width * 4);