Add a test case for CAIRO_FORMAT_A8 masks that fails with libpixman.

This commit is contained in:
Jeff Muizelaar 2005-08-05 15:07:45 +00:00
parent 549b7ff2a6
commit 53bd9879bb
4 changed files with 83 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2005-08-05 Jeff Muizelaar <jeff@infidigm.net>
* test/Makefile.am:
* test/a8-mask-ref.png:
* test/a8-mask.c: (draw), (main):
Add a test case for CAIRO_FORMAT_A8 masks that fails with
libpixman.
2005-08-05 Carl Worth <cworth@cworth.org>
* autogen.sh (automake_min_vers): Bump automake_min_vers up to 1.7

View file

@ -1,5 +1,6 @@
# All test cases go here
TESTS = \
a8-mask \
clip-nesting \
clip-twice \
composite-integer-translate-source \
@ -59,6 +60,7 @@ endif
# I really don't like having to repeat this list. Anyone know a good
# way to avoid it? Can I use a wildcard here?
EXTRA_DIST = \
a8-mask.png \
clip-nesting-ref.png \
clip-twice-ref.png \
composite-integer-translate-source-ref.png \
@ -110,6 +112,7 @@ rel-path-ref.png
# Also, any test listed here should call cairo_test_expect_failure and
# provide an explanation for the expected failure.
XFAIL_TESTS = \
a8-mask \
filter-nearest-offset \
pixman-rotate \
self-intersecting \
@ -148,6 +151,7 @@ LDADDS = libcairotest.la $(top_builddir)/src/libcairo.la
# ARGH! I have to repeat the list of tests a third time. Maybe it's
# time to break down and auto-generate the Makefile.am or something
# from autogen.sh. My, but this is painful...
a8_mask_LDADD = $(LDADDS)
clip_nesting_LDADD = $(LDADDS)
clip_twice_LDADD = $(LDADDS)
composite_integer_translate_source_LDADD = $(LDADDS)

BIN
test/a8-mask-ref.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

71
test/a8-mask.c Normal file
View file

@ -0,0 +1,71 @@
/*
* Copyright © Jeff Muizelaar
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* JEFF MUIZELAAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Jeff Muizelaar <jeff@infidigm.net>
*/
#include "cairo-test.h"
cairo_test_t test = {
"a8-mask",
"test masks of CAIRO_FORMAT_A8",
8, 8
};
static unsigned char mask[] = {
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0,
0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0
};
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_surface_t *image;
cairo_pattern_t *pattern;
cairo_set_source_rgb (cr, 0, 0, 1);
cairo_paint (cr);
image = cairo_image_surface_create_for_data (mask, CAIRO_FORMAT_A8,
7, 8, 7);
pattern = cairo_pattern_create_for_surface (image);
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_mask (cr, pattern);
return CAIRO_TEST_SUCCESS;
}
int
main (void)
{
return cairo_test_expect_failure (&test, draw,
"only image fails");
}