cairo/test
Chris Wilson 3d499ea901 xlib: Replace obsolete disable-xrender with shiny new device debug interface
As prototyped with xcb.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-22 10:41:37 +00:00
..
pdiff build: Clean up environment variables and flags for the win32 build 2011-06-20 10:24:21 +02:00
reference test/xlib: Remove stale reference images 2012-02-22 10:19:18 +00:00
.gitignore test: Improve check-ref-missing 2011-06-25 09:39:52 +02:00
.valgrind-suppressions [valgrind] More suppressions for XrmGetStringDatabase(). 2008-08-07 08:29:14 +01:00
6x13.pcf New bitmap-font test with bundled 6x13 font. 2006-06-20 17:48:06 -07:00
a1-bug.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
a1-clip.c test: Test a1 clipping semantics 2011-07-13 12:35:51 +01:00
a1-fill.c test: Add a1-fill 2011-09-16 16:25:45 +01:00
a1-image-sample.c [test] Remove misleading code/comments from a1-image-sample 2009-08-26 23:51:42 +01:00
a1-mask-sample.c test: Add a1-mask-sample 2010-03-06 18:12:36 +00:00
a1-mask.c [test] Add missing mark_dirty() calls to test cases. 2009-11-29 13:17:51 +02:00
a1-rasterisation.c test: Add a1-rasterisation 2010-06-17 08:55:19 +01:00
a1-sample.c test: Add a1-sample 2011-08-07 09:02:46 +01:00
a1-traps-sample.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
a8-clear.c test: Add a8-clear 2010-09-29 13:57:04 +01:00
a8-mask.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
aliasing.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
alpha-similar.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
any2ppm.c test: Fix any2ppm on MSVC 2012-02-16 23:00:59 +01:00
api-special-cases.c xcb: Fixup some internal state in set_{drawable,size} 2011-12-05 22:48:56 +01:00
arc-direction.c test: Add arc-direction 2012-01-11 12:43:43 +00:00
arc-infinite-loop.c test/arc-infinite-loop: Random return value fun. 2010-12-15 15:32:19 +00:00
arc-looping-dash.c arc-looping-dash: Add a missing cairo_restore () 2011-02-12 21:12:46 +01:00
big-empty-box.c test: Add big-empty-box 2011-08-29 15:58:20 +01:00
big-empty-triangle.c test: Add big-empty-triangle 2011-08-29 15:58:28 +01:00
big-line.c [test] Update big-line and remove XFAIL 2009-09-11 14:19:38 +01:00
big-little-box.c test: Add big-little-box 2011-08-20 13:09:40 +01:00
big-little-triangle.c test: Add big-little-triangle 2011-08-29 15:58:09 +01:00
big-trap.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
bilevel-image.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
bitmap-font.c test/bitmap-font: Destroy FcPattern 2010-05-05 09:46:34 +01:00
buffer-diff.c test-suite: add image_diff_is_failure() function 2010-04-28 13:15:09 +02:00
buffer-diff.h test-suite: add image_diff_is_failure() function 2010-04-28 13:15:09 +02:00
bug-40410.c test: Mark some more raster-only tests 2011-09-15 15:29:15 +01:00
bug-bo-rectangular.c test: Add bug-bo-rectangular 2010-02-23 08:54:39 +00:00
bug-bo-ricotz.c test: Add bug-bo-ricotz 2011-09-16 13:48:09 +01:00
bug-extents.c test: Add bug-extents 2010-12-14 22:18:27 +01:00
bug-seams.c test: Add comments explaining the bug in bug-seams. 2010-07-12 11:03:15 +03:00
cairo-test-private.h test: Remove dead code 2011-11-12 20:49:08 +01:00
cairo-test-runner.c test: Use fork() on MacOS X 2011-12-15 13:04:02 -08:00
cairo-test-trace.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-test.c test: Create output directory even on Win32 2012-02-16 23:00:59 +01:00
cairo-test.h test: Use cairo_test_list_t for the main test list 2011-11-12 20:49:08 +01:00
caps-joins-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
caps-joins-curve.c [test] Exercise caps and joins under reflection. 2008-11-29 11:20:29 +00:00
caps-joins.c [test] Exercise caps and joins under reflection. 2008-11-29 11:20:29 +00:00
caps-sub-paths.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
caps-tails-curve.c test: Add a couple of tests to exercise stroking of short tail segments 2011-08-05 17:27:59 +01:00
caps.c [test] Add simple cap test. 2008-11-29 10:14:26 +00:00
checkerboard.c test: Add checkerboard 2011-08-20 13:09:40 +01:00
clear-source.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
clear.c [test] Add a simplified CLEAR test. 2009-07-17 14:27:19 +01:00
clip-all.c test: make test font family a define 2010-06-12 16:30:56 +02:00
clip-complex-shape.c tests: Add clip-complex-shape 2011-07-15 11:05:19 +01:00
clip-contexts.c test/clip-contexts: Free secondary context 2010-05-06 13:50:27 +01:00
clip-device-offset.c test: Fix clip-device-offset 2011-02-13 17:34:04 +01:00
clip-disjoint-hatching.c test,perf: Another hatching! 2011-07-19 00:32:45 +01:00
clip-disjoint.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
clip-double-free.c test: Add clip-double-free 2011-10-09 09:33:37 +02:00
clip-draw-unbounded.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
clip-empty-group.c test: Add clip-empty-group 2010-04-23 14:47:51 +01:00
clip-empty-save.c test: make test font family a define 2010-06-12 16:30:56 +02:00
clip-empty.c test: make test font family a define 2010-06-12 16:30:56 +02:00
clip-fill-no-op.c Update my copyright notices to preferred version 2010-06-08 22:23:12 +02:00
clip-fill-rule-pixel-aligned.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clip-fill-rule.c test: Mark some more raster-only tests 2011-09-15 15:29:15 +01:00
clip-fill.c [test] Add clip-fill. 2009-07-31 17:52:29 +01:00
clip-group-shapes.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
clip-image.c test/clip-image: Free image after use. 2010-03-23 08:16:57 +00:00
clip-intersect.c test: Add clip-intersect 2011-07-24 13:05:24 +01:00
clip-mixed-antialias.c test: Add clip-mixed-antialias 2011-08-26 10:41:59 +01:00
clip-nesting.c [test/clip-nesting] Propagate status from sub-context. 2008-12-12 11:11:49 +00:00
clip-operator.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
clip-polygons.c test: Add clip-polygons 2011-10-12 15:10:34 +01:00
clip-push-group.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clip-rectilinear.c test: Add clip-rectilinear 2011-09-30 16:31:06 +01:00
clip-shape.c test: Add clip-shape 2010-04-25 09:45:41 +01:00
clip-stroke-no-op.c Update my copyright notices to preferred version 2010-06-08 22:23:12 +02:00
clip-stroke.c [test] Add clip-stroke 2009-08-29 17:07:39 +01:00
clip-text.c [test] Add clip-text 2009-07-31 17:32:09 +01:00
clip-twice-rectangle.c test: Add clip-twice-rectangle 2010-02-12 12:24:01 +00:00
clip-twice.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clip-unbounded.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
clip-zero.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clipped-group.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clipped-surface.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
clipped-trapezoids-ref.png Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
clipped-trapezoids.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
close-path-current-point.c [test] Verify current point position after subpath closure 2009-06-17 16:39:00 +01:00
close-path.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
composite-integer-translate-over-repeat.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
composite-integer-translate-over.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
composite-integer-translate-source.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
copy-disjoint.c test: Exercise copy/filling unsorted rectangles 2011-12-06 19:02:45 +00:00
copy-path.c test/copy-path: memfault status checks. 2010-05-07 22:35:14 +01:00
COPYING test: Add romedalen images copyright information 2010-11-26 10:01:38 +00:00
coverage.c test/coverage: The comment was still wrong. 2010-06-12 15:34:07 +01:00
create-for-stream.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
create-from-png-stream.c create-from-png*: Test mark_dirty with mime data 2011-10-09 09:21:13 +02:00
create-from-png.c create-from-png*: Test mark_dirty with mime data 2011-10-09 09:21:13 +02:00
culled-glyphs.c [test] Exercise glyph culling. 2008-12-12 11:11:48 +00:00
curve-to-as-line-to.c Add new test: curve-to-as-line-to 2009-07-27 15:24:55 -07:00
dash-caps-joins.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
dash-curve.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
dash-infinite-loop.c Revert "[test] Reorder dash-infinite-loop to not hit a runaway allocation." 2009-11-11 16:45:19 +01:00
dash-no-dash.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
dash-offset-negative.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
dash-offset.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
dash-scale.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
dash-state.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
dash-zero-length.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
degenerate-arc.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
degenerate-arcs.c test: Add degenerate-arcs 2010-01-15 12:25:53 +00:00
degenerate-curve-to.c [test] Add degenerate-curve-to 2009-07-28 08:37:03 +01:00
degenerate-dash.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
degenerate-linear-gradient.c test: add degenerate gradient and single stop tests 2010-06-08 16:37:01 +02:00
degenerate-path.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
degenerate-pen.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
degenerate-radial-gradient.c test: add degenerate gradient and single stop tests 2010-06-08 16:37:01 +02:00
degenerate-rel-curve-to.c [test] Yet another bug in curve-to as line-to. 2009-07-29 16:17:11 +01:00
device-offset-fractional.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
device-offset-positive.c [test] Fix surface leak from device-offset-positive. 2008-11-29 11:20:35 +00:00
device-offset-scale.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
device-offset.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
drunkard-tails.c test: Add a couple of tests to exercise stroking of short tail segments 2011-08-05 17:27:59 +01:00
error-setters.c Fix the number of parameters for cairo_os2_surface_set_size() 2011-09-18 08:50:00 +01:00
extend-pad-border.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
extend-pad-similar.c [test] Update extend-pad. 2008-11-03 14:24:59 +00:00
extend-pad.c [test] Update extend-pad. 2008-11-03 14:24:59 +00:00
extend-reflect-similar.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
extend-reflect.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
extend-repeat-similar.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
extend-repeat.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
extended-blend.c test: Extend PDF blend tests to include an opacity mask 2011-08-01 12:08:55 +01:00
fallback-resolution.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
fallback.c test: add push/pop group to fallback test 2012-01-15 21:18:43 +10:30
fill-alpha-pattern.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
fill-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
fill-and-stroke-alpha-add.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
fill-and-stroke-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
fill-and-stroke.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
fill-degenerate-sort-order.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
fill-disjoint.c test: Exercise copy/filling unsorted rectangles 2011-12-06 19:02:45 +00:00
fill-empty.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
fill-image.c [test] Add fill-image. 2009-01-14 16:51:08 +00:00
fill-missed-stop.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
fill-rule.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
filter-bilinear-extents.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
filter-nearest-offset.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
filter-nearest-transformed.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
finer-grained-fallbacks.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
font-face-get-type.c test: make test font family a define 2010-06-12 16:30:56 +02:00
font-matrix-translation.c test: make test font family a define 2010-06-12 16:30:56 +02:00
font-options.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
ft-font-create-for-ft-face.c [test] Stress the ft from-face cache 2009-05-15 21:31:03 +01:00
ft-show-glyphs-positioning.c test: make test font family a define 2010-06-12 16:30:56 +02:00
ft-show-glyphs-table.c test: make test font family a define 2010-06-12 16:30:56 +02:00
ft-text-antialias-none.c test: make test font family a define 2010-06-12 16:30:56 +02:00
ft-text-vertical-layout-type1.c [test] Minor tweak of ft-text-vertical-layout 2009-08-29 08:08:26 +01:00
ft-text-vertical-layout-type3.c test: make test font family a define 2010-06-12 16:30:56 +02:00
generate_refs.sh test: Move all the reference images to their own directory 2011-09-15 14:05:10 +01:00
get-and-set.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
get-clip.c clip: consider gstate target extents in _cairo_gstate_copy_clip_rectangle_list 2010-07-17 11:32:02 +01:00
get-group-target.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
get-path-extents.c test: Fix copy/paste error 2011-02-19 10:32:19 +01:00
get-xrender-format.c xlib: Replace obsolete disable-xrender with shiny new device debug interface 2012-02-22 10:41:37 +00:00
gl-surface-source.c test/gl-surface-source: Attach GLXContext to device user data. 2010-05-06 17:07:02 +01:00
glyph-cache-pressure.c test: make test font family a define 2010-06-12 16:30:56 +02:00
gradient-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
gradient-constant-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
gradient-zero-stops-mask.c test: Add gradient-zero-stops-mask 2010-03-31 12:14:25 +02:00
gradient-zero-stops.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
group-clip.c [test] Add group-clip 2009-06-19 19:08:29 +01:00
group-paint.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
group-state.c test: Add group-state 2011-01-22 11:59:38 +01:00
group-unaligned.c [test] Add group-unaligned 2009-06-27 17:53:18 +01:00
half-coverage.c test: Disable tests that are too slow to run by default. 2010-06-12 14:06:06 +01:00
halo.c test/halo: Remove copied code. 2010-06-17 10:13:18 +01:00
hatchings.c tests,perf: Add a hatchings clip-test 2011-07-18 10:31:25 +01:00
horizontal-clip.c test: Improve horizontal-clip 2011-07-28 18:11:27 +02:00
huge-linear.c test: Huge means more than MAX_INT 2011-01-02 18:32:46 +01:00
huge-radial.c test: Huge means more than MAX_INT 2011-01-02 18:32:46 +01:00
image-bug-710072.c test: Attempt to capture out-of-bounds spans compositing bug 2011-02-06 18:12:08 +00:00
image-surface-source.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
imagediff.c [test] Fix compilation of imagediff. 2008-11-04 13:03:24 +00:00
implicit-close.c [test] Implicit close 2009-08-29 17:07:38 +01:00
in-fill-empty-trapezoid.c Mark in-fill-empty-trapezoid as an XFAIL test. 2009-10-15 14:58:39 -07:00
in-fill-trapezoid.c Remove clip handling from generic surface layer. 2009-07-23 15:32:14 +01:00
index.html test: Add a new test result html page 2010-10-07 23:09:13 +02:00
infinite-join.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
invalid-matrix.c [test] Fix checking of the fenv.h include. 2009-06-18 16:07:56 +01:00
inverse-text.c test: make test font family a define 2010-06-12 16:30:56 +02:00
joins-loop.c test: Add an loopy I-bar stroker test 2011-08-06 10:29:08 +01:00
joins-retrace.c test: Add joins-retrace 2011-08-06 11:12:23 +01:00
joins-star.c test: Add join-star, another stroker exercise 2011-08-06 09:30:54 +01:00
joins.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
jp2.jp2 Add image/jp2 to mime-data test 2008-11-24 22:27:03 +10:30
jpeg.jpg [test] Update mime-data jpeg reference data. 2008-11-04 13:41:02 +00:00
large-clip.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
large-font.c test: make test font family a define 2010-06-12 16:30:56 +02:00
large-source-roi.c test: Workaround pixman limits in large-source-roi 2011-01-19 14:41:52 +01:00
large-source.c [test] Add missing mark_dirty() calls to test cases. 2009-11-29 13:17:51 +02:00
large-twin-antialias-mixed.c [test] Disable the antialias testing for the vector surfaces. 2009-09-09 13:59:50 +01:00
leaky-dash.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
leaky-dashed-rectangle.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
leaky-dashed-stroke.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
leaky-polygon.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
line-width-large-overlap.c test: Add line-width-large-overlap 2011-09-29 00:24:18 +01:00
line-width-overlap.c test: Add a couple of variants to line-width-overlap 2011-08-13 16:21:08 +01:00
line-width-scale.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
line-width-tolerance.c tests: Add line-width-tolerance 2011-02-15 20:41:04 +01:00
line-width-zero.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
line-width.c test/line-width: Refactor and tidy 2011-08-13 16:21:08 +01:00
linear-gradient-extend.c test: fix typo 2010-06-08 16:42:44 +02:00
linear-gradient-large.c test: do not leak resources 2010-09-09 17:24:13 +02:00
linear-gradient-one-stop.c test: exercise ps crash with single stop gradients 2010-06-10 16:07:42 +02:00
linear-gradient-reflect.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
linear-gradient-subset.c test: Add linear-gradient-subset 2010-02-07 19:27:32 +00:00
linear-gradient.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
linear-step-function.c test: Add linear-step-function 2010-02-02 16:31:36 +00:00
linear-uniform.c test: Add linear-uniform 2010-01-15 12:25:53 +00:00
long-dashed-lines.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
long-lines.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
make-cairo-test-constructors.sh [boilerplate/test] Use numerical equality not string equality 2009-09-02 10:09:50 +01:00
Makefile.am build: Specify the reference images as a directory for EXTRA_DIST 2011-09-27 15:44:57 +01:00
Makefile.sources test: Add stride-12-image 2012-01-15 14:29:25 +01:00
Makefile.win32 test: Compile any2ppm on Windows 2012-02-16 23:00:59 +01:00
map-to-image.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
mask-alpha.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
mask-ctm.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
mask-glyphs.c Silence some 'unused var' warnings 2011-11-09 13:56:50 +01:00
mask-surface-ctm.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
mask-transformed-image.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
mask-transformed-similar.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
mask.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
mesh-pattern-accuracy.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern-conical.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern-control-points.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern-fold.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern-overlap.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern-transformed.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mesh-pattern.c mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_* 2011-02-07 20:28:09 +01:00
mime-data.c [test] Trivial fixes for error paths. 2009-01-29 10:10:41 +00:00
mime-surface-api.c test: Add mime-surface-api 2011-10-04 21:00:23 +02:00
miter-precision.c Update FSF address 2010-04-27 11:13:38 +02:00
move-to-show-surface.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
multi-page.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
negative-stride-image.c test: Add negative-stride-image 2012-01-12 11:53:16 +01:00
new-sub-path.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
nil-surface.c test: do not leak resources 2010-09-09 17:24:13 +02:00
operator-alpha-alpha.c test: Fix operator-alpha-alpha 2011-01-19 11:52:40 +01:00
operator-alpha.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
operator-clear.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
operator-source.c Add unaligned boxes to "operator-source" test 2011-03-24 18:09:34 +01:00
operator.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
over-above-source.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
over-around-source.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
over-below-source.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
over-between-source.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
overlapping-boxes.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
overlapping-dash-caps.c test: Add a second ring to overlapping-dash-caps 2011-08-02 15:38:49 +01:00
overlapping-glyphs.c test: make test font family a define 2010-06-12 16:30:56 +02:00
paint-clip-fill.c tests: Add paint-clip-fill 2011-07-15 11:05:19 +01:00
paint-repeat.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
paint-source-alpha.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
paint-with-alpha.c test: Exercise replaying basic painting paths 2011-07-24 11:50:48 +01:00
paint.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
partial-clip-text.c test: Expand partial-clip-text 2011-07-23 14:42:17 +01:00
partial-coverage.c test: Disable tests that are too slow to run by default. 2010-06-12 14:06:06 +01:00
pass-through.c test: Re-enable pass-through 2011-11-12 20:49:08 +01:00
path-append.c [test] Add regression test for 005436 2009-03-01 10:10:13 +00:00
path-precision.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
path-stroke-twice.c test: Add path-stroke-twice 2010-01-12 17:07:28 +00:00
pattern-get-type.c test: Extend pattern-get-type and pattern-getters for mesh patterns 2011-01-01 13:05:13 +01:00
pattern-getters.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
pdf-features.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
pdf-mime-data.c [test/pdf-mime-data] Free data on error paths. 2009-01-02 15:44:51 +00:00
pdf-surface-source.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
pdf2png.c test: Use a group to render PDF correctly using poppler. 2010-06-11 14:12:23 +01:00
pixman-rotate.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
png-flatten.c Big change to the test infrastructure and supporting internals. The goal now is to test both a COLOR_ALPHA and a COLOR content for each surface backend, (since the semantics are different and we probably need to support both in each backend. 2006-01-17 16:59:08 +00:00
png.c test: Improve memfault behaviour. 2010-05-03 19:21:59 +01:00
png.png [test] Update mime-data to check image/png 2008-11-05 18:13:10 +00:00
ps-eps.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
ps-features.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
ps-surface-source.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
ps2png.c [test] Add ps2png check program using libspectre 2008-10-09 12:25:08 +01:00
pthread-same-source.c Update my copyright notices to preferred version 2010-06-08 22:23:12 +02:00
pthread-show-text.c test: Remove pthread_yield() 2010-05-12 20:09:44 +01:00
pthread-similar.c Update my copyright notices to preferred version 2010-06-08 22:23:12 +02:00
push-group-color.c [test] Exercise push-group-color. 2009-09-22 15:46:56 +01:00
push-group-path-offset.c test: improve push-group-path-offset to also catch the pop_group() case 2010-06-25 14:08:49 +02:00
push-group.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
quartz-surface-source.c [test] Add quartz-surface-source test 2008-11-26 16:17:45 +00:00
radial-gradient-extend.c test: improve copyright notices 2010-05-16 09:41:12 +02:00
radial-gradient.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
radial-outer-focus.c test: Record the current status of radial-outer-focus as xfail 2011-09-17 12:28:33 +01:00
random-clips.c test/random-clips: Paint clip to highlight the issues 2011-09-26 13:30:35 +01:00
random-intersections-curves-eo.c [test] Fix the order of random points random-intersections-curves*. 2009-09-03 21:38:31 +03:00
random-intersections-curves-nz.c [test] Fix the order of random points random-intersections-curves*. 2009-09-03 21:38:31 +03:00
random-intersections-eo.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
random-intersections-nonzero.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
raster-source.c Convert cairo_mime_surface_t to cairo_raster_source_pattern_t 2011-11-25 10:35:42 +00:00
README test/README: Update sha1sums for fonts used 2012-02-22 09:30:32 +00:00
record-extend.c test: Extend record-extend to exercise similar surface sources 2011-08-20 13:09:41 +01:00
record-mesh.c test: Add record-mesh 2011-08-20 13:09:41 +01:00
record.c test: Exercise replaying basic painting paths 2011-07-24 11:50:48 +01:00
recording-surface-extend.c test: Exercise extend modes with recording patterns 2011-07-31 08:12:54 +01:00
recording-surface-pattern.c test: Extend recording-surface-pattern to include a SOURCE operator test 2011-07-23 14:42:17 +01:00
rectangle-rounding-error.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
rectilinear-dash.c [test] Add a rectilinear-dash test case. 2008-12-12 13:23:08 +00:00
rectilinear-fill.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
rectilinear-grid.c test: Mark some more raster-only tests 2011-09-15 15:29:15 +01:00
rectilinear-miter-limit.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
rectilinear-stroke.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
reflected-stroke.c test: Use ARRAY_LENGTH() macro 2011-03-17 17:45:57 +01:00
rel-path.c [test] Propagate allocation failure. 2009-03-18 09:44:33 +00:00
rgb24-ignore-alpha.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
romedalen.jpg [mime-data] Allow embedding of arbitrary mime-types. 2008-11-03 11:24:12 +00:00
romedalen.png New test case, covering various combinations of pattern types, drawing operations and clipping. Currently fails, for some combinations, coverage-ref.png is just a placeholder. 2005-01-26 13:41:55 +00:00
rotate-image-surface-paint.c test: Extend rotate-image-surface-paint 2011-08-20 14:11:30 +01:00
rotated-clip.c [test] Add rotated clip. 2009-08-29 17:10:05 +01:00
rounded-rectangle-fill.c test: Exercise scan converters with large rounded rectangles. 2010-01-22 23:01:51 +00:00
rounded-rectangle-stroke.c test: Exercise scan converters with large rounded rectangles. 2010-01-22 23:01:51 +00:00
run-cairo-test-suite.sh test: Add a convenience script to disable the screensaver when testing 2010-06-11 12:38:17 +01:00
scale-down-source-surface-paint.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
scale-offset-image.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
scale-offset-similar.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
scale-source-surface-paint.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
scaled-font-zero-matrix.c test: Fix a wrongly typed return value in scaled-font-zero-matrix. 2010-02-25 14:20:27 +02:00
scarab.jpg [test] Use a different jpeg image for mime-data 2008-11-04 13:03:24 +00:00
select-font-face.c test: make test font family a define 2010-06-12 16:30:56 +02:00
select-font-no-show-text.c test: make test font family a define 2010-06-12 16:30:56 +02:00
self-copy-overlap.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
self-copy.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
self-intersecting.c Eliminate self-intersecting strokes. 2009-08-29 08:08:28 +01:00
set-source.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
shape-general-convex.c test: Add shape-general-concave 2011-08-20 16:14:13 +01:00
shape-sierpinski.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00
show-glyphs-advance.c test: Add show-glyphs-advance 2011-03-18 09:41:55 +01:00
show-glyphs-many.c [test] Move calls to the getters from out of the innermost loops. 2009-06-19 00:28:58 +01:00
show-text-current-point.c test: make test font family a define 2010-06-12 16:30:56 +02:00
skew-extreme.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
smask-fill.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
smask-image-mask.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
smask-mask.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
smask-paint.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
smask-stroke.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
smask-text.c test: make test font family a define 2010-06-12 16:30:56 +02:00
smask.c test: make test font family a define 2010-06-12 16:30:56 +02:00
solid-pattern-cache-stress.c [test] Cache resolved scaled-font 2009-06-07 23:35:57 +01:00
source-clip-scale.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
source-clip.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
source-surface-scale-paint.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
spline-decomposition.c [test] Draw spline bbox 2008-12-29 12:55:05 +00:00
stride-12-image.c test: Add stride-12-image 2012-01-15 14:29:25 +01:00
stroke-ctm-caps.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
stroke-image.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
stroke-open-box.c test: Add stroke-open-box 2011-03-18 10:30:25 +01:00
stroke-pattern.c test: Add stroke-pattern 2011-09-22 22:43:07 +09:30
subsurface-image-repeat.c test: Add subsurface-image-repeat 2010-05-06 10:53:48 +01:00
subsurface-modify-child.c test: Add subsurface-modify-{child,parent} 2010-05-04 18:53:03 +01:00
subsurface-modify-parent.c test/subsurface-modify-parent: Free region. 2010-05-05 09:17:33 +01:00
subsurface-outside-target.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
subsurface-pad.c test: Add subsurface-pad 2010-05-04 18:53:03 +01:00
subsurface-reflect.c ps: Enable native encoding of subsurface patterns. 2010-04-30 10:16:24 +01:00
subsurface-repeat.c ps: Enable native encoding of subsurface patterns. 2010-04-30 10:16:24 +01:00
subsurface-scale.c test: Exercise scaling from an atlas through a subsurface 2011-09-23 13:37:51 +01:00
subsurface-similar-repeat.c ps: Enable native encoding of subsurface patterns. 2010-04-30 10:16:24 +01:00
subsurface.c ps: Enable native encoding of subsurface patterns. 2010-04-30 10:16:24 +01:00
surface-finish-twice.c [test] Handle memfaults during surface-finish-twice 2009-04-16 09:34:02 +01:00
surface-pattern-big-scale-down.c [test] Track XFAIL using expected results stored as xfail.png 2009-07-13 15:19:51 +01:00
surface-pattern-operator.c test: improve copyright notices 2010-05-16 09:41:12 +02:00
surface-pattern-scale-down-extend.c test: Fix surface-pattern-scale-down-extend 2011-02-13 20:49:47 +01:00
surface-pattern-scale-down.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
surface-pattern-scale-up.c [test] Update upscale test to expose an Xlib failure 2009-11-02 12:51:14 +01:00
surface-pattern.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
surface-source.c test: Improve memfault behaviour. 2010-05-03 19:21:59 +01:00
svg-clip.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
svg-surface-source.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
svg-surface.c [test] Use '.' as the field separator in the names 2008-10-31 13:50:55 +00:00
svg2png.c SVG: Convert SVG file with a resolution of 72 dpi. 2006-05-02 23:37:23 +02:00
testsvg Use the current point to offset just the destination, not the source and destination. With this fix, cairo_show_surface should work with the current point at places other than the origin. 2005-04-02 06:00:32 +00:00
testtable.js test: Write the individual test logs to output/ 2011-09-15 14:21:20 +01:00
text-antialias-subpixel.c test: Add text-antialias-subpixel-{,v}{bgr,rgb} 2011-10-13 13:40:20 +02:00
text-antialias.c test: Merge text-antialias-* 2011-06-25 10:32:45 +02:00
text-cache-crash.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
text-glyph-range.c test: make test font family a define 2010-06-12 16:30:56 +02:00
text-pattern.c test: make text-pattern draw with both opaque and translucent patterns 2011-09-22 23:41:35 +09:30
text-rotate.c test: make test font family a define 2010-06-12 16:30:56 +02:00
text-transform.c test: make test font family a define 2010-06-12 16:30:56 +02:00
text-zero-len.c test: make test font family a define 2010-06-12 16:30:56 +02:00
tiger.c test: Add the PS tiger 2011-09-14 19:10:22 +01:00
tiger.inc test: Add the PS tiger 2011-09-14 19:10:22 +01:00
tighten-bounds.c test: Add tighten-bounds 2011-08-30 22:03:33 +02:00
toy-font-face.c test: Improve memfault behaviour. 2010-05-03 19:21:59 +01:00
transforms.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
translate-show-surface.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
trap-clip.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
twin-antialias-gray.c [test] Disable the antialias testing for the vector surfaces. 2009-09-09 13:59:50 +01:00
twin-antialias-mixed.c [test] Disable the antialias testing for the vector surfaces. 2009-09-09 13:59:50 +01:00
twin-antialias-none.c [test] Disable the antialias testing for the vector surfaces. 2009-09-09 13:59:50 +01:00
twin-antialias-subpixel.c [test] Disable the antialias testing for the vector surfaces. 2009-09-09 13:59:50 +01:00
twin.c [test] Check text->path with user-fonts (twin) 2009-05-15 21:31:02 +01:00
unaligned-box.c test: Add unaligned-box 2011-06-01 18:09:48 +01:00
unantialiased-shapes.c [test] Build test suite into single binary. 2008-10-31 12:30:11 +00:00
unbounded-operator.c test: Cleanup macros 2011-03-17 17:45:57 +01:00
unclosed-strokes.c test: Add unclosed-strokes 2011-08-07 09:02:46 +01:00
user-data.c test: Improve memfault behaviour. 2010-05-03 19:21:59 +01:00
user-font-mask.c [test] Add missing mark_dirty() calls to test cases. 2009-11-29 13:17:51 +02:00
user-font-proxy.c test/user-font-proxy: Check we install user data on the scaled font 2010-05-04 13:28:37 +01:00
user-font-rescale.c test: make test font family a define 2010-06-12 16:30:56 +02:00
user-font.c [test] Don't embed preprocessor directives inside macros 2009-02-10 11:44:20 -05:00
white-in-noop.c test: Add white-in-noop 2011-01-17 10:59:33 +01:00
world-map.c test: Add world-map from the perf-suite 2011-08-05 09:59:02 +01:00
world-map.h test: Add world-map from the perf-suite 2011-08-05 09:59:02 +01:00
xcb-huge-image-shm.c test: Add a test that maps a huge surface 2011-08-18 16:34:44 +02:00
xcb-snapshot-assert.c Add a test case that asserts on xcb 2011-07-09 09:42:22 +02:00
xcb-stress-cache.c test: Fix gcc complaints about old style definitions 2011-02-19 10:25:22 +01:00
xcb-surface-source.c test: Avoid derefencing a NULL xcb connection 2010-03-03 23:57:35 +00:00
xcomposite-projection.c Update my copyright notices to preferred version 2010-06-08 22:23:12 +02:00
xlib-expose-event.c test/xlib-expose-event: Be kinder to recording surfaces 2011-08-13 20:54:24 +01:00
xlib-surface-source.c test: Improve memfault behaviour. 2010-05-03 19:21:59 +01:00
xlib-surface.c xlib: Replace obsolete disable-xrender with shiny new device debug interface 2012-02-22 10:41:37 +00:00
zero-alpha.c test: Mark surfaces as finished if the data goes out of scope. 2010-04-28 08:39:21 +01:00
zero-mask.c Introduce a new compositor architecture 2011-09-12 08:29:48 +01:00

Regression test suite for cairo.

How to use cairo's test suite
=============================
Using this test should be as simple as running:

	make test

assuming that the cairo distribution in the directory above has been
configured and built. The test suite here goes through some effort to
run against the locally compiled library rather than any installed
version, but those efforts may fall short depending on the level of your
libtool madness.

The results of the test suite run are summarized in an index.html
file, which, when viewed in a web browser makes it quite easy to
visually see any failed renderings alongside the corresponding
reference image, (and a diff image as well).

The test suite needs to be run before any code is committed and before
any release. See below for hints and rules governing the use of the suite.

The test suite is built as a single binary, which allows you to choose
individual or categories of tests to run. For example, if you want to
run all text related tests you can use:
    ./cairo-test-suite text
Or if you want to check the current status of known failures:
    ./cairo-test-suite XFAIL
This binary should be backwards-compatible with all library versions,
allowing you to compare current versus past behaviour for any test.

Tailoring tests running
-----------------------
There are some mechanisms to limit the tests run during "make test".
These come very handy when doing development, but should not be used
to circumvent the "pass" requirements listed below.

To limit the backends that the tests are run against, use the
TARGETS make variable, that can also be passed to make.
It should contain a (space-, comma-, etc-separated) list of backends to test.
To limit the tests run, use the CAIRO_TESTS environment variable, which
should be a space-separated list of tests to run.  For example:

  CAIRO_TESTS="zero-alpha" make test TARGETS=image,ps

Another very handy mechanism when trying to fix bugs is:

  make retest

This will re-run the test suite, but only on tests that failed on the
last run. So this is a much faster way of checking if changes actually
fix bugs rather than running the entire test suite again.

The test suite first compares the output from the current run against the
previous in order to skip more expensive image comparisons . If you think
this is interfering with the results, you can clear the cached results using:

  make clean-caches

Running tests under modified enviroments or tools
-------------------------------------------------
To run tests under a tool like gdb, one can use the run target and
the TOOL variable.  For example:

  CAIRO_TESTS=user-font make run TOOL=gdb TARGETS=pdf

If you want to run under valgrind, there is a specific target for that
that also sets a bunch of useful valgrind options.  Try:

  CAIRO_TESTS=user-font make check-valgrind

You can run tests under a modified environment you can use the ENV
make variable.  However, that environment will also affect the libtool
wrapper of the tests.  To only affect the actual test binaries, pass
such environment as TOOL:

  CAIRO_TESTS=user-font make run TOOL="LD_PRELOAD=/path/to/something.so"

Getting the elusive zero failures
---------------------------------
It's generally been very difficult to achieve a test run with zero
failures. The difficulties stem from the various versions of the many
libraries that the test suite depends on, (it depends on a lot more
than cairo itself), as well as fonts and other system-specific
settings. If your system differs significantly from the system on
which the reference images were generated, then you will likely see
the test suite reporting "failures", (even if cairo is working just
fine).

We are constantly working to reduce the number of variables that need
to be tweaked to get a clean run, (for example, by bundling fonts with
the test suite itself), and also working to more carefully document
the software configuration used to generate the reference images.

Here are some of the relevant details:

  * Your system must have a copy of the DejaVu font, the sha1sum of
    the version used are listed in [...].  These are
      "DejaVu Sans" (DejaVuSans.ttf) [1cd336329f45f241002ded61893d91e3acd04436];
      "DejaVu Sans Mono" (DejaVuSansMono.ttf) [0458c0f0fb57f3eb8ced62f26fe7c5ed4e6a9a68];
      "DejaVu Serif" (DejaVuSerif.ttf) [93502d0d0445d1fe1c9f51e51b3e0169266346ce];
      [the DejaVu fonts can be installed from the ttf-dejavu 2.33-2 Debian package]
    and also
      "Nimbus Sans L" (n019003l.pfb)
      [which can be found in the gsfonts Debian package].

  * Currently, you must be using a build of cairo using freetype
    (cairo-ft) as the default font backend. Otherwise all tests
    involving text are likely to fail.

  * To test the pdf backend, you will want the very latest version of
    poppler as made available via git:

	git clone git://anongit.freedesktop.org/git/poppler/poppler

    As of this writing, no released version of poppler contains all
    the fixes you will need to avoid false negatives from the test
    suite.

  * To test the ps backend, you will need ghostscript version 9.04.

  * Testing the xlib backend is problematic since many X server
    drivers have bugs that are exercised by the test suite. (Or, if
    not actual bugs, differ slightly in their output in such a way
    that the test suite will report errors.) This can be quite handy
    if you want to debug an X server driver, but since most people
    don't want to do that, another option is to run against a headless
    X server that uses only software for all rendering. One such X
    server is Xvfb which can be started like this:

	Xvfb -screen 0 1680x1024x24 -ac -nolisten tcp :2

    after which the test suite can be run against it like so:

	DISPLAY=:2 make test

    We have been using Xvfb for testing cairo releases and ensuring
    that all tests behave as expected with this X server.

What if I can't make my system match?
-------------------------------------
For one reason or another, you may be unable to get a clean run of the
test suite even if cairo is working properly, (for example, you might
be on a system without freetype). In this case, it's still useful to
be able to determine if code changes you make to cairo result in any
regressions to the test suite. But it's hard to notice regressions if
there are many failures both before and after your changes.

For this scenario, you can capture the output of a run of the test
suite before your changes, and then use the CAIRO_REF_DIR environment
variable to use that output as the reference images for a run after
your changes. The process looks like this:

        # Before code change there may be failures we don't care about
        make test

        # Let's save those output images
        mkdir /some/directory/
        cp test/*-out.png /some/directory/

        # hack, hack, hack

        # Now to see if nothing changed:
        CAIRO_REF_DIR=/some/directory/ make test

Best practices for cairo developers
===================================
If we all follow the guidelines below, then both the test suite and
cairo itself will stay much healthier, and we'll all have a lot more
fun hacking on cairo.

Before committing
-----------------
All tests should return a result of PASS or XFAIL. The XFAIL results
indicate known bugs. The final message should be one of the following:

	All XX tests behaved as expected (YY expected failures)
	All XX tests passed

If any tests have a status of FAIL, then the new code has caused a
regression error which should be fixed before the code is committed.

When a new bug is found
-----------------------
A new test case should be added by imitating the style of an existing
test. This means adding the following files:

	new-bug.c
	new-bug-ref.png

Where new-bug.c is a minimal program to demonstrate the bug, following
the style of existing tests. The new-bug-ref.png image should contain
the desired result of new-bug.c if the bug were fixed.

Makefile.am should be edited, adding new-bug.c to both the TESTS and
XFAIL_TESTS lists and new-bug-ref.png to EXTRA_DIST. Add new-bug to
.gitignore, and last but not least, don't forget to "git add" the new
files.

When a new feature is added
---------------------------
It's important for the regression suite to keep pace with development
of the library. So a new test should be added for each new feature.
The work involved is similar the work described above for new bugs.
The only distinction is that the test is expected to pass so it
should not be added to the XFAIL_TESTS list.

While working on a test
-----------------------
Before a bugfix or feature is ready, it may be useful to compare
output from different builds. For convenience, you can set
CAIRO_REF_DIR to point at a previous test directory, relative
to the current test directory, and any previous output will be
used by preference as reference images.

When a bug is fixed
-------------------
The fix should be verified by running the test suite which should
result in an "unexpected pass" for the test of interest. Rejoice as
appropriate, then remove the relevant file name from the XFAIL_TESTS
variable in Makefile.am.

Before releasing
----------------
All tests should return a result of PASS for all supported (those enabled by
default) backends, meaning all known bugs are fixed, resulting in the happy
message:

	All XX tests passed

Some notes on limitations in poppler
====================================
One of the difficulties of our current test infrastructure is that we
rely on external tools to convert cairo's vector output (PDF,
PostScript, and SVG), into an image that can be used for the image
comparison. This means that any bugs in that conversion tool will
result in false negatives in the test suite.

We've identified several such bugs in the poppler library which is
used to convert PDF to an image. This is particularly discouraging
because 1) poppler is free software that will be used by *many* cairo
users, and 2) poppler calls into cairo for its rendering so it should
be able to do a 100% faithful conversion.

So we have an interest in ensuring that these poppler bugs get fixed
sooner rather than later. As such, we're trying to be good citizens by
reporting all such poppler bugs that we identify to the poppler
bugzilla. Here's a tracking bug explaining the situation:

	Poppler does not yet handle everything in the cairo test suite
	https://bugs.freedesktop.org/show_bug.cgi?id=12143

Here's the rule: If a cairo-pdf test reports a failure, but viewing
the resulting PDF file with acroread suggests that the PDF itself is
correct, then there's likely a bug in poppler. In this case, we can
simply report the poppler bug, (making it block 12143 above), post the
PDF result from the test suite, and list the bug in this file. Once
we've done this, we can capture poppler's buggy output as a
pdf-specific reference image so that the test suite will regard the
test as passing, (and we'll ensure there is no regression).

Once the poppler bug gets fixed, the test suite will start reporting a
false negative again, and this will be easy to fix by simply removing
the pdf-specific reference image.

Here are the reported poppler bugs and the tests they affect:

Poppler doesn't correctly handle gradients with transparency
https://bugs.freedesktop.org/show_bug.cgi?id=12144
--------------------------------------------------
fill-alpha-pattern
gradient-alpha
gradient-constant-alpha
linear-gradient
linear-gradient-reflect
radial-gradient
trap-clip

Poppler should paint images with CAIRO_EXTEND_PAD
https://bugs.freedesktop.org/show_bug.cgi?id=14578
--------------------------------------------------
paint-source-alpha
paint-with-alpha
rotate-image-surface-paint
scale-source-surface-paint

Incorrect clipping of group object (regression?)
https://bugs.freedesktop.org/show_bug.cgi?id=14580
--------------------------------------------------
push-group

spurious horizontal stripes in color gradients
https://bugs.freedesktop.org/show_bug.cgi?id=10942
--------------------------------------------------
smask 
smask-fill 
smask-image-mask 
smask-mask 
smask-paint 
smask-stroke 
smask-text

Ghostscript does not correctly render small miters
http://bugs.ghostscript.com/show_bug.cgi?id=690098
--------------------------------------------------
miter-precision