cairo/test
Federico Mena Quintero 250ae25b0a Don't use deprecated rsvg_set_default_dpi()
Use rsvg_handle_set_dpi() instead.
2019-03-12 10:20:26 -06:00
..
pdiff Misc. typos 2019-01-31 17:37:15 -08:00
reference Normalize one more test image with minor gradient differences 2018-09-14 11:34:22 -07:00
.gitignore gitignore: Ignore .trs (test results) 2015-07-31 17:56:54 -07:00
.valgrind-suppressions
6x13.pcf
a1-bug.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
a1-clip.c
a1-fill.c test: Add a1-fill 2011-09-16 16:25:45 +01:00
a1-image-sample.c
a1-mask-sample.c
a1-mask.c
a1-rasterisation.c
a1-sample.c
a1-traps-sample.c
a8-clear.c
a8-mask.c
aliasing.c
alpha-similar.c Remove XFAIL_TESTS from Makefile.am 2013-10-03 16:58:52 +02:00
any2ppm.c Don't use deprecated rsvg_set_default_dpi() 2019-03-12 10:20:26 -06:00
api-special-cases.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
arc-direction.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
arc-infinite-loop.c
arc-looping-dash.c
big-empty-box.c
big-empty-triangle.c
big-line.c
big-little-box.c
big-little-triangle.c
big-trap.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
bilevel-image.c
bitmap-font.c test/bitmap-font: Fix use of pointer after freed pointer 2015-07-06 15:14:23 -07:00
buffer-diff.c
buffer-diff.h
bug-40410.c
bug-51910.c test: Add example from bug-51910 2012-07-09 21:57:03 +01:00
bug-84115.c test: Exercise stroking bugs with xlib/trapezoids 2014-09-24 12:35:47 +01:00
bug-bo-collins.c test: Exercise rectangular bo bug 2012-05-23 11:50:34 +01:00
bug-bo-rectangular.c
bug-bo-ricotz.c test: Add bug-bo-ricotz 2011-09-16 13:48:09 +01:00
bug-extents.c
bug-seams.c
bug-source-cu.c test: Add test case for tracking source operator extents 2012-03-29 00:51:46 +01:00
bug-spline.c test: Use ARRAY_LENGTH macro 2014-11-20 12:22:06 -08:00
cairo-test-private.h tests: Add device scale test to "full" testrun similar to offsets 2013-09-05 16:08:20 +01:00
cairo-test-runner.c test: Free test list 2014-12-06 17:38:02 -08:00
cairo-test-trace.c skip MAP_NORESERVE when unsupported 2015-03-05 14:48:28 -08:00
cairo-test.c Misc. typos 2019-01-31 17:37:15 -08:00
cairo-test.h Refactor ARRAY_LENGTH macro definitions in test code 2014-11-20 12:22:06 -08:00
caps-joins-alpha.c
caps-joins-curve.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
caps-joins.c test: Extend testing of joins for fine lines 2013-06-04 11:52:30 +01:00
caps-sub-paths.c
caps-tails-curve.c test: Use ARRAY_LENGTH macro 2014-11-20 12:22:06 -08:00
caps.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
ccitt.g3 Add CCITT_FAX mime type for PDF and PS surfaces 2017-10-22 08:42:36 +10:30
check-refs.sh test: Fix error message to specify the executable that was missing 2014-10-09 13:51:49 -07:00
checkerboard.c
clear-source.c
clear.c
clip-all.c
clip-complex-bug61592.c test: Correct bug number in clip-complex-bug61592 2015-04-16 11:28:50 +02:00
clip-complex-shape.c
clip-contexts.c
clip-device-offset.c
clip-disjoint-hatching.c
clip-disjoint-quad.c test: Add clip-disjoint-quad 2012-09-27 09:58:50 +01:00
clip-disjoint.c
clip-double-free.c test: Add clip-double-free 2011-10-09 09:33:37 +02:00
clip-draw-unbounded.c
clip-empty-group.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
clip-empty-save.c
clip-empty.c
clip-fill-no-op.c
clip-fill-rule-pixel-aligned.c
clip-fill-rule.c
clip-fill.c
clip-group-shapes.c
clip-image.c
clip-intersect.c
clip-mixed-antialias.c
clip-nesting.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
clip-operator.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
clip-polygons.c test: Add clip-polygons 2011-10-12 15:10:34 +01:00
clip-push-group.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
clip-rectilinear.c test: Add clip-rectilinear 2011-09-30 16:31:06 +01:00
clip-shape.c
clip-stroke-no-op.c
clip-stroke.c
clip-text.c
clip-twice-rectangle.c
clip-twice.c
clip-unbounded.c
clip-zero.c test: Always use DejaVu Sans as default font 2015-07-27 12:45:59 +02:00
clipped-group.c
clipped-surface.c
clipped-trapezoids-ref.png
clipped-trapezoids.c
close-path-current-point.c
close-path.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
compare-results test: Add script to display the difference between two result sets 2015-07-31 19:00:48 -07:00
composite-integer-translate-over-repeat.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
composite-integer-translate-over.c On MacOSX, the sed utility errors out when parsing non-UTF8 2015-03-10 12:15:40 -07:00
composite-integer-translate-source.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
copy-disjoint.c test: Exercise copy/filling unsorted rectangles 2011-12-06 19:02:45 +00:00
copy-path.c Misc. typos 2019-01-31 17:37:15 -08:00
COPYING
coverage.c test: Fix coverage-intersecting-triangles reference 2015-04-08 14:32:17 +02:00
create-for-stream.c test: Ensure output dirs exist, falling back to current dir if needed 2013-09-09 21:25:12 +02:00
create-from-broken-png-stream.c Add test for error handling with broken PNG streams 2017-12-24 13:23:13 +01: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 test: Add special cases for create-from-png and fallback-resolution 2013-07-04 09:27:56 +01:00
culled-glyphs.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
curve-to-as-line-to.c
dash-caps-joins.c
dash-curve.c
dash-infinite-loop.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
dash-no-dash.c
dash-offset-negative.c
dash-offset.c doc: fix a few typos found by codespell 2012-03-10 10:20:28 +01:00
dash-scale.c
dash-state.c
dash-zero-length.c
degenerate-arc.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
degenerate-arcs.c
degenerate-curve-to.c
degenerate-dash.c Misc. typos 2019-01-31 17:37:15 -08:00
degenerate-linear-gradient.c
degenerate-path.c On MacOSX, the sed utility errors out when parsing non-UTF8 2015-03-10 12:15:40 -07:00
degenerate-pen.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
degenerate-radial-gradient.c
degenerate-rel-curve-to.c
degenerate-solid-dash.c test: Fix array lengths for degenerate-solid-dash 2012-04-29 14:23:11 +01:00
device-offset-fractional.c
device-offset-positive.c
device-offset-scale.c Remove XFAIL_TESTS from Makefile.am 2013-10-03 16:58:52 +02:00
device-offset.c
drunkard-tails.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
egl-oversized-surface.c test: Add test oversized egl surfaces 2014-09-19 15:46:14 -07:00
egl-surface-source.c test: Add test for egl-surface-source 2014-09-29 16:08:23 -07: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: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
extend-pad-similar.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
extend-pad.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
extend-reflect-similar.c
extend-reflect.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
extend-repeat-similar.c
extend-repeat.c
extended-blend.c test/extended-blend.c: Remove obsolete comments about buggy librsvg 2018-09-05 17:00:44 -07:00
fallback-resolution.c test : build fix when --enable-pdf=no 2014-08-14 12:00:08 -07:00
fallback.c test: add push/pop group to fallback test 2012-01-15 21:18:43 +10:30
fill-alpha-pattern.c
fill-alpha.c
fill-and-stroke-alpha-add.c
fill-and-stroke-alpha.c
fill-and-stroke.c
fill-degenerate-sort-order.c
fill-disjoint.c test: Exercise copy/filling unsorted rectangles 2011-12-06 19:02:45 +00:00
fill-empty.c
fill-image.c
fill-missed-stop.c
fill-rule.c
filter-bilinear-extents.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
filter-nearest-offset.c
filter-nearest-transformed.c
finer-grained-fallbacks.c
font-face-get-type.c
font-matrix-translation.c
font-options.c
font-variations.c test: Use C comment syntax, not C++ 2018-06-13 15:20:34 -07:00
ft-font-create-for-ft-face.c
ft-show-glyphs-positioning.c
ft-show-glyphs-table.c
ft-text-antialias-none.c
ft-text-vertical-layout-type1.c
ft-text-vertical-layout-type3.c
generate_refs.sh
get-and-set.c
get-clip.c
get-group-target.c
get-path-extents.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07: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-device-release.c gl: Do less work when acquiring and releasing devices 2013-01-08 15:09:33 -08:00
gl-oversized-surface.c gl: Return surface in error when creating oversized texture surfaces 2013-08-19 14:54:28 -07:00
gl-surface-source.c
global.jb2 test: update mime-data to test jbig2 mime types 2013-09-15 21:27:50 +09:30
glyph-cache-pressure.c doc: fix a few typos found by codespell 2012-03-10 10:20:28 +01:00
gradient-alpha.c
gradient-constant-alpha.c
gradient-zero-stops-mask.c
gradient-zero-stops.c
group-clip.c
group-paint.c
group-state.c
group-unaligned.c
half-coverage.c
halo.c
hatchings.c
horizontal-clip.c
huge-linear.c
huge-radial.c
image-bug-710072.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
image-surface-source.c
image1.jb2 test: update mime-data to test jbig2 mime types 2013-09-15 21:27:50 +09:30
image2.jb2 test: update mime-data to test jbig2 mime types 2013-09-15 21:27:50 +09:30
imagediff.c
implicit-close.c
in-fill-empty-trapezoid.c Remove XFAIL_TESTS from Makefile.am 2013-10-03 16:58:52 +02:00
in-fill-trapezoid.c
index.html
infinite-join.c
invalid-matrix.c test: Define optional exception classes 2012-10-16 17:09:42 +02:00
inverse-text.c
inverted-clip.c test: Exercise clip inversion imperfections 2012-04-29 12:40:10 +01:00
joins-loop.c
joins-retrace.c
joins-star.c
joins.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
jp2.jp2
jpeg.jpg
large-clip.c
large-font.c
large-source-roi.c
large-source.c
large-twin-antialias-mixed.c
leaky-dash.c
leaky-dashed-rectangle.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
leaky-dashed-stroke.c
leaky-polygon.c
line-width-large-overlap.c test: Add line-width-large-overlap 2011-09-29 00:24:18 +01:00
line-width-overlap.c
line-width-scale.c
line-width-tolerance.c
line-width-zero.c Cairo trivial typos 2018-04-02 17:46:58 -07:00
line-width.c test: a1-line-width is a test of rasterisation, so skip for the vector backends 2012-02-24 14:30:14 +00:00
linear-gradient-extend.c
linear-gradient-large.c
linear-gradient-one-stop.c
linear-gradient-reflect.c
linear-gradient-subset.c
linear-gradient.c
linear-step-function.c
linear-uniform.c
long-dashed-lines.c On MacOSX, the sed utility errors out when parsing non-UTF8 2015-03-10 12:15:40 -07:00
long-lines.c Remove XFAIL_TESTS from Makefile.am 2013-10-03 16:58:52 +02:00
make-cairo-test-constructors.sh Harden make-cairo-test-constructors.sh 2015-03-13 13:18:32 -07:00
Makefile.am Remove all traces of NUM_THREADS 2018-12-16 09:53:07 +01:00
Makefile.sources Merge branch 'font-variations' 2018-01-03 12:35:12 +00:00
Makefile.win32 boilerplate: Use any2ppm from ANY2PPM env variable 2012-02-23 00:16:44 +01:00
map-to-image.c Misc. typos 2019-01-31 17:37:15 -08:00
mask-alpha.c
mask-ctm.c
mask-glyphs.c Silence some 'unused var' warnings 2011-11-09 13:56:50 +01:00
mask-surface-ctm.c
mask-transformed-image.c
mask-transformed-similar.c
mask.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
mesh-pattern-accuracy.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern-conical.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern-control-points.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern-fold.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern-overlap.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern-transformed.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mesh-pattern.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
mime-data.c Cairo trivial typos 2018-04-02 17:46:58 -07:00
mime-surface-api.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
mime-unique-id.c ps: use Reusable streams for forms in Level 3 2017-11-09 22:01:40 +10:30
miter-precision.c
move-to-show-surface.c
multi-page.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
negative-stride-image.c test : Maintain consistency in the usage of xcalloc 2014-05-16 11:56:27 -07:00
new-sub-path.c
nil-surface.c
operator-alpha-alpha.c
operator-alpha.c
operator-clear.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
operator-source.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
operator.c
outline-tolerance.c tests: Add outline-tolerance 2012-08-20 13:34:33 +01:00
over-above-source.c
over-around-source.c
over-below-source.c
over-between-source.c
overlapping-boxes.c
overlapping-dash-caps.c
overlapping-glyphs.c
paint-clip-fill.c
paint-repeat.c
paint-source-alpha.c
paint-with-alpha-group-clip.c test: Drop unused path variable in two recently added tests 2014-01-31 11:25:48 -08:00
paint-with-alpha.c
paint.c
partial-clip-text.c
partial-coverage.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
pass-through.c test: Re-enable pass-through 2011-11-12 20:49:08 +01:00
path-append.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
path-currentpoint.c [tests] Add path-currentpoint 2014-01-27 17:32:58 -05:00
path-precision.c
path-stroke-twice.c Use HTTPS URLs for freedesktop.org domains 2018-10-16 10:03:07 -07:00
pattern-get-type.c
pattern-getters.c Misc. typos 2019-01-31 17:37:15 -08:00
pdf-features.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
pdf-isolated-group.c test: add test to check that pdf transparency groups are non-isolated 2012-02-25 16:53:26 +10:30
pdf-mime-data.c test: Fix use after frees 2015-12-09 11:30:34 -08:00
pdf-surface-source.c test: Ensure output dirs exist, falling back to current dir if needed 2013-09-09 21:25:12 +02:00
pdf-tagged-text.c pdf: use explicit dest instead of named dest when 'internal' attribute is set 2017-08-29 21:43:07 +09:30
pdf2png.c test: Free resources in pdf2png 2018-10-17 17:53:12 -07:00
pixman-downscale.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
pixman-rotate.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
png-flatten.c
png.c Add support for RGBA128F and RGB96F formats. 2019-01-07 19:10:44 -08:00
png.png
ps-eps.c test: Handle error in fgets call in ps-eps test 2014-01-31 11:25:43 -08:00
ps-features.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
ps-surface-source.c test: Ensure output dirs exist, falling back to current dir if needed 2013-09-09 21:25:12 +02:00
ps2png.c
pthread-same-source.c pthread-same-source: Add ref image generation 2014-04-17 11:32:49 +02:00
pthread-show-text.c test: Always use DejaVu Sans as default font 2015-07-27 12:45:59 +02:00
pthread-similar.c
push-group-color.c
push-group-path-offset.c
push-group.c
quad-color.png test: Add test for image downscaling 2013-09-11 19:32:08 +02:00
quartz-surface-source.c
radial-gradient-extend.c
radial-gradient.c
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
random-intersections-curves-nz.c
random-intersections-eo.c
random-intersections-nonzero.c
raster-source.c Convert cairo_mime_surface_t to cairo_raster_source_pattern_t 2011-11-25 10:35:42 +00:00
README Add example to run specific tests by name to the test/README 2016-08-31 20:29:57 -07:00
record-extend.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
record-mesh.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
record-neg-extents.c test: add record-neg-extents 2016-06-05 20:43:36 +09:30
record-replay-extend.c test: replay record surface with negative extents for each extend mode 2016-06-05 20:43:36 +09:30
record.c test: use CAIRO_MIME_TYPE_UNIQUE_ID with record-text-transform 2017-11-09 22:02:05 +10:30
record2x.c test/record: Fix typo in record*-text-transform 2012-02-27 15:14:33 +00:00
record90.c test/record90: Rotate the reference so that it is wholly visible 2012-05-23 12:27:47 +01:00
record1414x.c test: Space out keywords for clarity 2013-09-13 12:57:42 +02:00
recordflip.c test: Add whole flipped replays 2014-10-02 13:08:50 +01:00
recording-ink-extents.c Add recording-ink-extents test 2016-06-05 20:43:36 +09:30
recording-surface-extend.c
recording-surface-pattern.c
rectangle-rounding-error.c
rectilinear-dash-scale.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
rectilinear-dash.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
rectilinear-fill.c
rectilinear-grid.c
rectilinear-miter-limit.c
rectilinear-stroke.c
reflected-stroke.c On MacOSX, the sed utility errors out when parsing non-UTF8 2015-03-10 12:15:40 -07:00
rel-path.c
rgb24-ignore-alpha.c
romedalen.jpg
romedalen.png
rotate-image-surface-paint.c
rotate-stroke-box.c test: Drop unused path variable in two recently added tests 2014-01-31 11:25:48 -08:00
rotated-clip.c
rounded-rectangle-fill.c
rounded-rectangle-stroke.c
run-cairo-test-suite.sh
sample.c test: Fix typo in sample_horizontal to use horizontal, not vertical. 2013-06-08 07:52:18 +01:00
scale-down-source-surface-paint.c
scale-offset-image.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
scale-offset-similar.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
scale-source-surface-paint.c
scaled-font-zero-matrix.c
scarab.jpg
select-font-face.c
select-font-no-show-text.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
self-copy-overlap.c Remove XFAIL_TESTS from Makefile.am 2013-10-03 16:58:52 +02:00
self-copy.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
self-intersecting.c
set-source.c
shape-general-convex.c
shape-sierpinski.c
show-glyphs-advance.c
show-glyphs-many.c test: Always use DejaVu Sans as default font 2015-07-27 12:45:59 +02:00
show-text-current-point.c
simple.c test/simple: Tighten sanity checks in reference image generator 2014-10-02 08:46:44 +01:00
skew-extreme.c Cairo trivial typos 2018-04-02 17:46:58 -07:00
smask-fill.c
smask-image-mask.c
smask-mask.c
smask-paint.c
smask-stroke.c
smask-text.c
smask.c
smp-glyph.c test: Add a test for characters in the SMP 2017-04-25 18:05:40 +02:00
solid-pattern-cache-stress.c
source-clip-scale.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
source-clip.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
source-surface-scale-paint.c
spline-decomposition.c
stride-12-image.c test : Maintain consistency in the usage of xcalloc 2014-05-16 11:56:27 -07:00
stroke-clipped.c test: Add stroke-clipped 2012-11-02 14:48:40 +00:00
stroke-ctm-caps.c
stroke-image.c
stroke-open-box.c
stroke-pattern.c test: Add stroke-pattern 2011-09-22 22:43:07 +09:30
subsurface-image-repeat.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-modify-child.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-modify-parent.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-outside-target.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-pad.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-reflect.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-repeat.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-scale.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface-similar-repeat.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
subsurface.c test: disable subsurface tests with vector backends 2012-04-09 21:27:08 +09:30
summarize-test-results.sh test: Add script to summarize the test results from a run 2015-07-31 18:59:34 -07:00
surface-finish-twice.c
surface-pattern-big-scale-down.c
surface-pattern-operator.c
surface-pattern-scale-down-extend.c Use HTTPS URLs for cairographics.org domains 2018-10-16 10:03:01 -07:00
surface-pattern-scale-down.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
surface-pattern-scale-up.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
surface-pattern.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
surface-source.c
svg-clip.c Misc. typos 2019-01-31 17:37:15 -08:00
svg-surface-source.c test: Ensure output dirs exist, falling back to current dir if needed 2013-09-09 21:25:12 +02:00
svg-surface.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
svg2png.c Don't use deprecated rsvg_set_default_dpi() 2019-03-12 10:20:26 -06:00
testsvg
testtable.js test: Fix conflation of different device scales in index.html 2014-10-09 10:57:17 +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
text-cache-crash.c Misc. typos 2019-01-31 17:37:15 -08:00
text-glyph-range.c
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
text-transform.c
text-unhinted-metrics.c add test text-unhinted-metrics 2016-07-05 20:26:47 +09:30
text-zero-len.c
thin-lines.c Add test case for thin lines 2015-10-17 18:39:19 +10:30
tiger.c test: Use ARRAY_LENGTH macro 2014-11-20 12:22:06 -08:00
tiger.inc
tighten-bounds.c Remove some useless declarations found by scan-build, the LLVM/clang static analyzer 2014-05-06 10:14:53 -07:00
toy-font-face.c
transforms.c
translate-show-surface.c
trap-clip.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
twin-antialias-gray.c
twin-antialias-mixed.c
twin-antialias-none.c
twin-antialias-subpixel.c
twin.c
unaligned-box.c
unantialiased-shapes.c
unbounded-operator.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
unclosed-strokes.c test: Comma separate keywords 2013-09-13 12:57:17 +02:00
update-refs.sh test: Add an update-refs.sh script to update reference images 2014-10-09 18:28:52 -07:00
user-data.c
user-font-mask.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
user-font-proxy.c test: Always use DejaVu Sans as default font 2015-07-27 12:45:59 +02:00
user-font-rescale.c On MacOSX, the sed utility errors out when parsing non-UTF8 2015-03-10 12:15:40 -07:00
user-font.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
white-in-noop.c
world-map.c test: Add world-map from the perf-suite 2011-08-05 09:59:02 +01:00
world-map.h
xcb-huge-image-shm.c
xcb-huge-subimage.c test: Add xcb-huge-subimage 2012-12-17 18:37:10 +01:00
xcb-snapshot-assert.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
xcb-stress-cache.c
xcb-surface-source.c
xcomposite-projection.c
xlib-expose-event.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
xlib-surface-source.c
xlib-surface.c test: fix include order for AIX, bug#89354 2015-03-05 17:02:14 -08:00
zero-alpha.c Fix spellings descibed, indicies, stange 2015-04-04 15:49:18 -07:00
zero-mask.c

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, to run specific tests:
    ./cairo-test-suite record-neg-extents-unbounded record-neg-extents-bounded
Or if you want to run all paint.* related tests you can use:
    ./cairo-test-suite paint
Or if you want to check the current status of known failures:
    ./cairo-test-suite XFAIL
Or to run a subset of tests, use the -k option to run only the tests
that include the given keyword:
    ./cairo-test-suite -k downscale
The binary also permits controlling which backend is used via the
CAIRO_TEST_TARGET environment variable, so for instance:
    CAIRO_TEST_TARGET=gl ./cairo-test-suite -k blur
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.

make's TARGETS environment variable can be used to limit the backends when
running the tests. It should contain a (space-, comma-separated) list of
backends. CAIRO_TESTS environment variable, which is a comma-, space-seperated
lists, can be used to limit the tests run.
For example:

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

make's FORMAT variable can also be used to limit the content formats when
running the tests. It should contain a (space-, comma-separated) list of
content formats to test.
For example:

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

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 environments 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) [e9831ee4fd2e1d0ac54508a548c6a449545eba3f];
      "DejaVu Sans Mono" (DejaVuSansMono.ttf) [25d854fbd0450a372615a26a8ef9a1024bd3efc6];
      "DejaVu Serif" (DejaVuSerif.ttf) [78a81850dc7883969042cf3d6dfd18eea7e43e2f];
      [the DejaVu fonts can be installed from the fonts-dejavu-core 2.34-1 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.06.

  * 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 -r test/output /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
	reference/new-bug.ref.png
	reference/new-bug.xfail.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 while
new-bug.xfail.png contains the current results of the test.

Makefile.sources should be edited by adding new-bug.c to test_sources.
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 need a new-bug.xfail.png file.

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 xfail.png file from git.

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 (as reference/*.xfail.png) 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:

[Newest was closed in 2009.]