Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
pdiff/ | H | 03-May-2022 | - | 2,058 | 1,670 | |
reference/ | H | 03-May-2022 | - | |||
COPYING | H A D | 26-Nov-2020 | 1 KiB | 27 | 19 | |
Makefile.am | H A D | 03-May-2022 | 12.1 KiB | 412 | 318 | |
Makefile.in | H A D | 03-May-2022 | 1.1 MiB | 10,297 | 9,201 | |
Makefile.sources | H A D | 26-Nov-2020 | 11.4 KiB | 464 | 447 | |
Makefile.win32 | H A D | 26-Nov-2020 | 1.6 KiB | 56 | 39 | |
README | H A D | 26-Nov-2020 | 11.7 KiB | 283 | 219 | |
a1-bug.c | H A D | 26-Nov-2020 | 1.9 KiB | 62 | 32 | |
a1-clip.c | H A D | 26-Nov-2020 | 4.7 KiB | 176 | 111 | |
a1-fill.c | H A D | 26-Nov-2020 | 2.2 KiB | 68 | 31 | |
a1-image-sample.c | H A D | 26-Nov-2020 | 2.3 KiB | 74 | 35 | |
a1-mask-sample.c | H A D | 26-Nov-2020 | 2.6 KiB | 84 | 42 | |
a1-mask.c | H A D | 26-Nov-2020 | 5.3 KiB | 203 | 138 | |
a1-rasterisation.c | H A D | 26-Nov-2020 | 3.1 KiB | 102 | 55 | |
a1-sample.c | H A D | 26-Nov-2020 | 1.9 KiB | 60 | 24 | |
a1-traps-sample.c | H A D | 26-Nov-2020 | 2 KiB | 65 | 28 | |
a8-clear.c | H A D | 26-Nov-2020 | 2 KiB | 65 | 29 | |
a8-mask.c | H A D | 26-Nov-2020 | 5.4 KiB | 202 | 134 | |
aliasing.c | H A D | 26-Nov-2020 | 3 KiB | 101 | 60 | |
alpha-similar.c | H A D | 26-Nov-2020 | 2.3 KiB | 75 | 34 | |
any2ppm.c | H A D | 26-Nov-2020 | 20.1 KiB | 899 | 700 | |
api-special-cases.c | H A D | 26-Nov-2020 | 52.1 KiB | 1,990 | 1,544 | |
arc-direction.c | H A D | 26-Nov-2020 | 3.2 KiB | 106 | 64 | |
arc-infinite-loop.c | H A D | 26-Nov-2020 | 2.1 KiB | 62 | 18 | |
arc-looping-dash.c | H A D | 26-Nov-2020 | 2.4 KiB | 80 | 25 | |
big-empty-box.c | H A D | 26-Nov-2020 | 2.1 KiB | 65 | 21 | |
big-empty-triangle.c | H A D | 26-Nov-2020 | 2.3 KiB | 76 | 29 | |
big-line.c | H A D | 26-Nov-2020 | 2.1 KiB | 63 | 30 | |
big-little-box.c | H A D | 26-Nov-2020 | 2.3 KiB | 70 | 22 | |
big-little-triangle.c | H A D | 26-Nov-2020 | 2.4 KiB | 77 | 30 | |
big-trap.c | H A D | 26-Nov-2020 | 3.6 KiB | 93 | 26 | |
bilevel-image.c | H A D | 26-Nov-2020 | 2.1 KiB | 64 | 29 | |
bitmap-font.c | H A D | 26-Nov-2020 | 7.8 KiB | 227 | 158 | |
buffer-diff.c | H A D | 26-Nov-2020 | 8.5 KiB | 263 | 161 | |
buffer-diff.h | H A D | 26-Nov-2020 | 2.5 KiB | 74 | 25 | |
bug-40410.c | H A D | 26-Nov-2020 | 2.4 KiB | 73 | 28 | |
bug-51910.c | H A D | 26-Nov-2020 | 2.6 KiB | 92 | 49 | |
bug-75705.c | H A D | 26-Nov-2020 | 772 | 33 | 23 | |
bug-84115.c | H A D | 26-Nov-2020 | 1.9 KiB | 62 | 28 | |
bug-bo-collins.c | H A D | 26-Nov-2020 | 2.4 KiB | 77 | 43 | |
bug-bo-rectangular.c | H A D | 26-Nov-2020 | 2.1 KiB | 68 | 32 | |
bug-bo-ricotz.c | H A D | 26-Nov-2020 | 2.6 KiB | 75 | 38 | |
bug-extents.c | H A D | 26-Nov-2020 | 2.1 KiB | 60 | 25 | |
bug-seams.c | H A D | 26-Nov-2020 | 3.9 KiB | 121 | 58 | |
bug-source-cu.c | H A D | 26-Nov-2020 | 2.5 KiB | 82 | 46 | |
bug-spline.c | H A D | 26-Nov-2020 | 2.7 KiB | 96 | 58 | |
cairo-test-constructors.c | H A D | 28-Nov-2020 | 49.7 KiB | 1,172 | 1,166 | |
cairo-test-private.h | H A D | 26-Nov-2020 | 2.3 KiB | 73 | 30 | |
cairo-test-runner.c | H A D | 26-Nov-2020 | 25.8 KiB | 1,104 | 919 | |
cairo-test-trace.c | H A D | 26-Nov-2020 | 39.4 KiB | 1,790 | 1,403 | |
cairo-test.c | H A D | 26-Nov-2020 | 47.2 KiB | 1,823 | 1,493 | |
cairo-test.h | H A D | 26-Nov-2020 | 9.6 KiB | 329 | 188 | |
caps-joins-alpha.c | H A D | 26-Nov-2020 | 2.9 KiB | 90 | 47 | |
caps-joins-curve.c | H A D | 26-Nov-2020 | 3.1 KiB | 112 | 65 | |
caps-joins.c | H A D | 26-Nov-2020 | 4 KiB | 151 | 98 | |
caps-sub-paths.c | H A D | 26-Nov-2020 | 2 KiB | 66 | 25 | |
caps-tails-curve.c | H A D | 26-Nov-2020 | 3.5 KiB | 128 | 78 | |
caps.c | H A D | 26-Nov-2020 | 3.6 KiB | 139 | 93 | |
check-refs.sh | H A D | 26-Nov-2020 | 1.9 KiB | 64 | 45 | |
checkerboard.c | H A D | 26-Nov-2020 | 1.7 KiB | 49 | 15 | |
clear-source.c | H A D | 26-Nov-2020 | 4.5 KiB | 170 | 117 | |
clear.c | H A D | 26-Nov-2020 | 2.6 KiB | 87 | 51 | |
clip-all.c | H A D | 26-Nov-2020 | 2.4 KiB | 76 | 37 | |
clip-complex-bug61592.c | H A D | 26-Nov-2020 | 1.9 KiB | 61 | 28 | |
clip-complex-shape.c | H A D | 26-Nov-2020 | 3.5 KiB | 115 | 75 | |
clip-contexts.c | H A D | 26-Nov-2020 | 2.5 KiB | 76 | 29 | |
clip-device-offset.c | H A D | 26-Nov-2020 | 2.5 KiB | 80 | 41 | |
clip-disjoint-hatching.c | H A D | 26-Nov-2020 | 2.7 KiB | 105 | 61 | |
clip-disjoint-quad.c | H A D | 26-Nov-2020 | 2.5 KiB | 84 | 45 | |
clip-disjoint.c | H A D | 26-Nov-2020 | 2.6 KiB | 91 | 48 | |
clip-double-free.c | H A D | 26-Nov-2020 | 3.8 KiB | 88 | 19 | |
clip-draw-unbounded.c | H A D | 26-Nov-2020 | 4.8 KiB | 185 | 132 | |
clip-empty-group.c | H A D | 26-Nov-2020 | 2.1 KiB | 66 | 29 | |
clip-empty-save.c | H A D | 26-Nov-2020 | 2.1 KiB | 69 | 31 | |
clip-empty.c | H A D | 26-Nov-2020 | 2.1 KiB | 65 | 29 | |
clip-fill-no-op.c | H A D | 26-Nov-2020 | 2.2 KiB | 68 | 26 | |
clip-fill-rule-pixel-aligned.c | H A D | 26-Nov-2020 | 2.7 KiB | 91 | 55 | |
clip-fill-rule.c | H A D | 26-Nov-2020 | 2.6 KiB | 88 | 53 | |
clip-fill.c | H A D | 26-Nov-2020 | 2.5 KiB | 79 | 42 | |
clip-group-shapes.c | H A D | 26-Nov-2020 | 5.3 KiB | 189 | 120 | |
clip-image.c | H A D | 26-Nov-2020 | 2.9 KiB | 96 | 52 | |
clip-intersect.c | H A D | 26-Nov-2020 | 2.6 KiB | 95 | 55 | |
clip-mixed-antialias.c | H A D | 26-Nov-2020 | 3.8 KiB | 129 | 66 | |
clip-nesting.c | H A D | 26-Nov-2020 | 3.3 KiB | 110 | 59 | |
clip-operator.c | H A D | 26-Nov-2020 | 5.4 KiB | 189 | 130 | |
clip-polygons.c | H A D | 26-Nov-2020 | 3.1 KiB | 113 | 69 | |
clip-push-group.c | H A D | 26-Nov-2020 | 2.2 KiB | 68 | 26 | |
clip-rectilinear.c | H A D | 26-Nov-2020 | 2.4 KiB | 91 | 49 | |
clip-shape.c | H A D | 26-Nov-2020 | 2.3 KiB | 87 | 46 | |
clip-stroke-no-op.c | H A D | 26-Nov-2020 | 2.3 KiB | 68 | 26 | |
clip-stroke.c | H A D | 26-Nov-2020 | 3.4 KiB | 122 | 74 | |
clip-text.c | H A D | 26-Nov-2020 | 2.7 KiB | 89 | 48 | |
clip-twice-rectangle.c | H A D | 26-Nov-2020 | 2.4 KiB | 71 | 32 | |
clip-twice.c | H A D | 26-Nov-2020 | 2.5 KiB | 75 | 41 | |
clip-unbounded.c | H A D | 26-Nov-2020 | 2.4 KiB | 81 | 38 | |
clip-zero.c | H A D | 26-Nov-2020 | 2.3 KiB | 73 | 34 | |
clipped-group.c | H A D | 26-Nov-2020 | 2.7 KiB | 89 | 43 | |
clipped-surface.c | H A D | 26-Nov-2020 | 2.1 KiB | 64 | 24 | |
close-path-current-point.c | H A D | 26-Nov-2020 | 3.1 KiB | 96 | 54 | |
close-path.c | H A D | 26-Nov-2020 | 2.6 KiB | 79 | 36 | |
composite-integer-translate-over-repeat.c | H A D | 26-Nov-2020 | 2.8 KiB | 85 | 47 | |
composite-integer-translate-over.c | H A D | 26-Nov-2020 | 2.2 KiB | 62 | 29 | |
composite-integer-translate-source.c | H A D | 26-Nov-2020 | 2.1 KiB | 65 | 29 | |
copy-disjoint.c | H A D | 26-Nov-2020 | 2.6 KiB | 88 | 40 | |
copy-path.c | H A D | 26-Nov-2020 | 9 KiB | 315 | 246 | |
coverage.c | H A D | 26-Nov-2020 | 13.3 KiB | 507 | 380 | |
create-for-stream.c | H A D | 26-Nov-2020 | 8.3 KiB | 312 | 220 | |
create-from-broken-png-stream.c | H A D | 26-Nov-2020 | 2.9 KiB | 88 | 47 | |
create-from-png-stream.c | H A D | 26-Nov-2020 | 3.4 KiB | 120 | 69 | |
create-from-png.c | H A D | 26-Nov-2020 | 11.4 KiB | 321 | 254 | |
culled-glyphs.c | H A D | 26-Nov-2020 | 2.3 KiB | 63 | 27 | |
curve-to-as-line-to.c | H A D | 26-Nov-2020 | 3.1 KiB | 96 | 36 | |
dash-caps-joins.c | H A D | 26-Nov-2020 | 3.1 KiB | 105 | 57 | |
dash-curve.c | H A D | 26-Nov-2020 | 2.2 KiB | 67 | 35 | |
dash-infinite-loop.c | H A D | 26-Nov-2020 | 3.1 KiB | 84 | 31 | |
dash-no-dash.c | H A D | 26-Nov-2020 | 2.5 KiB | 88 | 42 | |
dash-offset-negative.c | H A D | 26-Nov-2020 | 3 KiB | 101 | 42 | |
dash-offset.c | H A D | 26-Nov-2020 | 3.1 KiB | 84 | 37 | |
dash-scale.c | H A D | 26-Nov-2020 | 3.5 KiB | 121 | 74 | |
dash-state.c | H A D | 26-Nov-2020 | 2.1 KiB | 65 | 33 | |
dash-zero-length.c | H A D | 26-Nov-2020 | 4 KiB | 111 | 71 | |
degenerate-arc.c | H A D | 26-Nov-2020 | 2.4 KiB | 75 | 36 | |
degenerate-arcs.c | H A D | 26-Nov-2020 | 2 KiB | 58 | 22 | |
degenerate-curve-to.c | H A D | 26-Nov-2020 | 2.9 KiB | 104 | 56 | |
degenerate-dash.c | H A D | 26-Nov-2020 | 2.6 KiB | 91 | 45 | |
degenerate-linear-gradient.c | H A D | 26-Nov-2020 | 2.5 KiB | 82 | 40 | |
degenerate-path.c | H A D | 26-Nov-2020 | 3.8 KiB | 121 | 62 | |
degenerate-pen.c | H A D | 26-Nov-2020 | 3.4 KiB | 106 | 48 | |
degenerate-radial-gradient.c | H A D | 26-Nov-2020 | 2.9 KiB | 94 | 50 | |
degenerate-rel-curve-to.c | H A D | 26-Nov-2020 | 2.9 KiB | 100 | 51 | |
degenerate-solid-dash.c | H A D | 26-Nov-2020 | 2.2 KiB | 70 | 34 | |
device-offset-fractional.c | H A D | 26-Nov-2020 | 2.4 KiB | 73 | 35 | |
device-offset-positive.c | H A D | 26-Nov-2020 | 2.7 KiB | 83 | 42 | |
device-offset-scale.c | H A D | 26-Nov-2020 | 2.8 KiB | 78 | 31 | |
device-offset.c | H A D | 26-Nov-2020 | 2.6 KiB | 83 | 40 | |
drunkard-tails.c | H A D | 26-Nov-2020 | 3.6 KiB | 136 | 81 | |
egl-oversized-surface.c | H A D | 26-Nov-2020 | 3.3 KiB | 118 | 74 | |
egl-surface-source.c | H A D | 26-Nov-2020 | 3.4 KiB | 136 | 89 | |
error-setters.c | H A D | 26-Nov-2020 | 3.3 KiB | 110 | 68 | |
extend-pad-border.c | H A D | 26-Nov-2020 | 3.2 KiB | 96 | 52 | |
extend-pad-similar.c | H A D | 26-Nov-2020 | 2.7 KiB | 83 | 39 | |
extend-pad.c | H A D | 26-Nov-2020 | 2.7 KiB | 82 | 38 | |
extend-reflect-similar.c | H A D | 26-Nov-2020 | 1.5 KiB | 52 | 41 | |
extend-reflect.c | H A D | 26-Nov-2020 | 766 | 30 | 22 | |
extend-repeat-similar.c | H A D | 26-Nov-2020 | 1.5 KiB | 52 | 41 | |
extend-repeat.c | H A D | 26-Nov-2020 | 726 | 28 | 20 | |
extended-blend.c | H A D | 26-Nov-2020 | 7 KiB | 254 | 181 | |
fallback-resolution.c | H A D | 26-Nov-2020 | 13.8 KiB | 518 | 381 | |
fallback.c | H A D | 26-Nov-2020 | 2.4 KiB | 80 | 40 | |
fill-alpha-pattern.c | H A D | 26-Nov-2020 | 3 KiB | 88 | 47 | |
fill-alpha.c | H A D | 26-Nov-2020 | 2.7 KiB | 83 | 42 | |
fill-and-stroke-alpha-add.c | H A D | 26-Nov-2020 | 3.2 KiB | 108 | 59 | |
fill-and-stroke-alpha.c | H A D | 26-Nov-2020 | 3 KiB | 102 | 56 | |
fill-and-stroke.c | H A D | 26-Nov-2020 | 2 KiB | 59 | 27 | |
fill-degenerate-sort-order.c | H A D | 26-Nov-2020 | 2.7 KiB | 78 | 25 | |
fill-disjoint.c | H A D | 26-Nov-2020 | 2 KiB | 64 | 21 | |
fill-empty.c | H A D | 26-Nov-2020 | 2 KiB | 63 | 27 | |
fill-image.c | H A D | 26-Nov-2020 | 2.9 KiB | 84 | 44 | |
fill-missed-stop.c | H A D | 26-Nov-2020 | 2.5 KiB | 84 | 22 | |
fill-rule.c | H A D | 26-Nov-2020 | 4.2 KiB | 128 | 50 | |
filter-bilinear-extents.c | H A D | 26-Nov-2020 | 3.4 KiB | 103 | 48 | |
filter-nearest-offset.c | H A D | 26-Nov-2020 | 3.5 KiB | 110 | 65 | |
filter-nearest-transformed.c | H A D | 26-Nov-2020 | 3.7 KiB | 121 | 72 | |
finer-grained-fallbacks.c | H A D | 26-Nov-2020 | 5.5 KiB | 181 | 102 | |
font-face-get-type.c | H A D | 26-Nov-2020 | 2.8 KiB | 80 | 41 | |
font-matrix-translation.c | H A D | 26-Nov-2020 | 4.6 KiB | 142 | 91 | |
font-options.c | H A D | 26-Nov-2020 | 4.6 KiB | 111 | 65 | |
font-variations.c | H A D | 26-Nov-2020 | 6.9 KiB | 206 | 152 | |
ft-font-create-for-ft-face.c | H A D | 26-Nov-2020 | 7.2 KiB | 229 | 149 | |
ft-show-glyphs-positioning.c | H A D | 26-Nov-2020 | 6.1 KiB | 192 | 133 | |
ft-show-glyphs-table.c | H A D | 26-Nov-2020 | 3.8 KiB | 110 | 52 | |
ft-text-antialias-none.c | H A D | 26-Nov-2020 | 4.5 KiB | 147 | 90 | |
ft-text-vertical-layout-type1.c | H A D | 26-Nov-2020 | 5.3 KiB | 168 | 111 | |
ft-text-vertical-layout-type3.c | H A D | 26-Nov-2020 | 5.2 KiB | 167 | 110 | |
generate_refs.sh | H A D | 26-Nov-2020 | 338 | 13 | 7 | |
get-and-set.c | H A D | 26-Nov-2020 | 4.5 KiB | 160 | 115 | |
get-clip.c | H A D | 26-Nov-2020 | 9.1 KiB | 265 | 207 | |
get-group-target.c | H A D | 26-Nov-2020 | 3.1 KiB | 86 | 33 | |
get-path-extents.c | H A D | 26-Nov-2020 | 17.2 KiB | 444 | 335 | |
get-xrender-format.c | H A D | 26-Nov-2020 | 3.7 KiB | 123 | 75 | |
gl-device-release.c | H A D | 26-Nov-2020 | 5.9 KiB | 183 | 124 | |
gl-oversized-surface.c | H A D | 26-Nov-2020 | 2.8 KiB | 89 | 50 | |
gl-surface-source.c | H A D | 26-Nov-2020 | 2.8 KiB | 112 | 71 | |
glyph-cache-pressure.c | H A D | 26-Nov-2020 | 2.9 KiB | 82 | 26 | |
gradient-alpha.c | H A D | 26-Nov-2020 | 1.9 KiB | 57 | 24 | |
gradient-constant-alpha.c | H A D | 26-Nov-2020 | 2.1 KiB | 62 | 27 | |
gradient-zero-stops-mask.c | H A D | 26-Nov-2020 | 2 KiB | 60 | 20 | |
gradient-zero-stops.c | H A D | 26-Nov-2020 | 2 KiB | 59 | 21 | |
group-clip.c | H A D | 26-Nov-2020 | 2 KiB | 58 | 26 | |
group-paint.c | H A D | 26-Nov-2020 | 1.7 KiB | 49 | 18 | |
group-state.c | H A D | 26-Nov-2020 | 3.1 KiB | 97 | 51 | |
group-unaligned.c | H A D | 26-Nov-2020 | 2 KiB | 61 | 28 | |
half-coverage.c | H A D | 26-Nov-2020 | 4 KiB | 156 | 80 | |
halo.c | H A D | 26-Nov-2020 | 4.4 KiB | 159 | 99 | |
hatchings.c | H A D | 26-Nov-2020 | 3.9 KiB | 154 | 97 | |
horizontal-clip.c | H A D | 26-Nov-2020 | 2.7 KiB | 78 | 39 | |
huge-linear.c | H A D | 26-Nov-2020 | 2.2 KiB | 68 | 31 | |
huge-radial.c | H A D | 26-Nov-2020 | 2.3 KiB | 70 | 31 | |
image-bug-710072.c | H A D | 26-Nov-2020 | 2.7 KiB | 81 | 39 | |
image-surface-source.c | H A D | 26-Nov-2020 | 1.5 KiB | 42 | 13 | |
imagediff.c | H A D | 26-Nov-2020 | 8.3 KiB | 304 | 213 | |
implicit-close.c | H A D | 26-Nov-2020 | 1.8 KiB | 55 | 22 | |
in-fill-empty-trapezoid.c | H A D | 26-Nov-2020 | 3.4 KiB | 110 | 53 | |
in-fill-trapezoid.c | H A D | 26-Nov-2020 | 9.2 KiB | 280 | 217 | |
infinite-join.c | H A D | 26-Nov-2020 | 2.4 KiB | 73 | 28 | |
invalid-matrix.c | H A D | 26-Nov-2020 | 11.7 KiB | 375 | 252 | |
inverse-text.c | H A D | 26-Nov-2020 | 2.4 KiB | 68 | 30 | |
inverted-clip.c | H A D | 26-Nov-2020 | 1.8 KiB | 57 | 21 | |
joins-loop.c | H A D | 26-Nov-2020 | 2.7 KiB | 101 | 57 | |
joins-retrace.c | H A D | 26-Nov-2020 | 3 KiB | 110 | 64 | |
joins-star.c | H A D | 26-Nov-2020 | 2.9 KiB | 100 | 56 | |
joins.c | H A D | 26-Nov-2020 | 3 KiB | 110 | 65 | |
large-clip.c | H A D | 26-Nov-2020 | 1.7 KiB | 51 | 19 | |
large-font.c | H A D | 26-Nov-2020 | 2.5 KiB | 74 | 24 | |
large-source-roi.c | H A D | 26-Nov-2020 | 2.7 KiB | 79 | 36 | |
large-source.c | H A D | 26-Nov-2020 | 3.2 KiB | 101 | 57 | |
large-twin-antialias-mixed.c | H A D | 26-Nov-2020 | 3.2 KiB | 98 | 58 | |
leaky-dash.c | H A D | 26-Nov-2020 | 2.1 KiB | 65 | 25 | |
leaky-dashed-rectangle.c | H A D | 26-Nov-2020 | 3.1 KiB | 87 | 42 | |
leaky-dashed-stroke.c | H A D | 26-Nov-2020 | 6.2 KiB | 167 | 124 | |
leaky-polygon.c | H A D | 26-Nov-2020 | 2.9 KiB | 86 | 24 | |
line-width-large-overlap.c | H A D | 26-Nov-2020 | 4.5 KiB | 150 | 94 | |
line-width-overlap.c | H A D | 26-Nov-2020 | 4.4 KiB | 150 | 94 | |
line-width-scale.c | H A D | 26-Nov-2020 | 5 KiB | 179 | 99 | |
line-width-tolerance.c | H A D | 26-Nov-2020 | 2.3 KiB | 67 | 20 | |
line-width-zero.c | H A D | 26-Nov-2020 | 2.5 KiB | 72 | 31 | |
line-width.c | H A D | 26-Nov-2020 | 2.4 KiB | 78 | 43 | |
linear-gradient-extend.c | H A D | 26-Nov-2020 | 2.7 KiB | 93 | 49 | |
linear-gradient-large.c | H A D | 26-Nov-2020 | 2.4 KiB | 69 | 31 | |
linear-gradient-one-stop.c | H A D | 26-Nov-2020 | 2.7 KiB | 91 | 48 | |
linear-gradient-reflect.c | H A D | 26-Nov-2020 | 2 KiB | 68 | 30 | |
linear-gradient-subset.c | H A D | 26-Nov-2020 | 3.9 KiB | 128 | 72 | |
linear-gradient.c | H A D | 26-Nov-2020 | 3.9 KiB | 133 | 77 | |
linear-step-function.c | H A D | 26-Nov-2020 | 2.1 KiB | 61 | 26 | |
linear-uniform.c | H A D | 26-Nov-2020 | 2.2 KiB | 64 | 29 | |
long-dashed-lines.c | H A D | 26-Nov-2020 | 2.2 KiB | 67 | 30 | |
long-lines.c | H A D | 26-Nov-2020 | 2.8 KiB | 86 | 46 | |
make-cairo-test-constructors.py | H A D | 26-Nov-2020 | 1.2 KiB | 38 | 28 | |
make-cairo-test-constructors.sh | H A D | 26-Nov-2020 | 490 | 32 | 18 | |
map-to-image.c | H A D | 26-Nov-2020 | 4.7 KiB | 159 | 110 | |
mask-alpha.c | H A D | 26-Nov-2020 | 2.8 KiB | 83 | 38 | |
mask-ctm.c | H A D | 26-Nov-2020 | 2.5 KiB | 81 | 37 | |
mask-glyphs.c | H A D | 26-Nov-2020 | 4.9 KiB | 188 | 135 | |
mask-surface-ctm.c | H A D | 26-Nov-2020 | 2.2 KiB | 72 | 31 | |
mask-transformed-image.c | H A D | 26-Nov-2020 | 3.1 KiB | 97 | 45 | |
mask-transformed-similar.c | H A D | 26-Nov-2020 | 3.1 KiB | 99 | 47 | |
mask.c | H A D | 26-Nov-2020 | 6.6 KiB | 247 | 172 | |
mesh-pattern-accuracy.c | H A D | 26-Nov-2020 | 3.3 KiB | 100 | 43 | |
mesh-pattern-conical.c | H A D | 26-Nov-2020 | 3.8 KiB | 136 | 86 | |
mesh-pattern-control-points.c | H A D | 26-Nov-2020 | 4 KiB | 115 | 60 | |
mesh-pattern-fold.c | H A D | 26-Nov-2020 | 2.7 KiB | 83 | 38 | |
mesh-pattern-overlap.c | H A D | 26-Nov-2020 | 2.5 KiB | 77 | 34 | |
mesh-pattern-transformed.c | H A D | 26-Nov-2020 | 3.6 KiB | 108 | 54 | |
mesh-pattern.c | H A D | 26-Nov-2020 | 3.3 KiB | 95 | 48 | |
meson.build | H A D | 26-Nov-2020 | 14.1 KiB | 628 | 580 | |
mime-data.c | H A D | 26-Nov-2020 | 8.4 KiB | 296 | 200 | |
mime-surface-api.c | H A D | 26-Nov-2020 | 4.4 KiB | 152 | 106 | |
mime-unique-id.c | H A D | 26-Nov-2020 | 14.8 KiB | 512 | 357 | |
miter-precision.c | H A D | 26-Nov-2020 | 2.5 KiB | 73 | 35 | |
move-to-show-surface.c | H A D | 26-Nov-2020 | 2.6 KiB | 79 | 28 | |
multi-page.c | H A D | 26-Nov-2020 | 5.5 KiB | 199 | 121 | |
negative-stride-image.c | H A D | 26-Nov-2020 | 2.3 KiB | 72 | 34 | |
new-sub-path.c | H A D | 26-Nov-2020 | 2.3 KiB | 75 | 32 | |
nil-surface.c | H A D | 26-Nov-2020 | 5.5 KiB | 171 | 78 | |
operator-alpha-alpha.c | H A D | 26-Nov-2020 | 5 KiB | 167 | 97 | |
operator-alpha.c | H A D | 26-Nov-2020 | 2.1 KiB | 66 | 31 | |
operator-clear.c | H A D | 26-Nov-2020 | 5.7 KiB | 197 | 138 | |
operator-source.c | H A D | 26-Nov-2020 | 7 KiB | 251 | 180 | |
operator.c | H A D | 26-Nov-2020 | 2.1 KiB | 66 | 31 | |
outline-tolerance.c | H A D | 26-Nov-2020 | 1.8 KiB | 53 | 20 | |
over-above-source.c | H A D | 26-Nov-2020 | 2.4 KiB | 73 | 28 | |
over-around-source.c | H A D | 26-Nov-2020 | 2.8 KiB | 84 | 35 | |
over-below-source.c | H A D | 26-Nov-2020 | 2.4 KiB | 73 | 28 | |
over-between-source.c | H A D | 26-Nov-2020 | 2.8 KiB | 84 | 35 | |
overlapping-boxes.c | H A D | 26-Nov-2020 | 2.7 KiB | 97 | 49 | |
overlapping-dash-caps.c | H A D | 26-Nov-2020 | 2.1 KiB | 68 | 30 | |
overlapping-glyphs.c | H A D | 26-Nov-2020 | 4 KiB | 124 | 76 | |
paint-clip-fill.c | H A D | 26-Nov-2020 | 3.4 KiB | 107 | 68 | |
paint-repeat.c | H A D | 26-Nov-2020 | 2.3 KiB | 62 | 27 | |
paint-source-alpha.c | H A D | 26-Nov-2020 | 2.2 KiB | 64 | 28 | |
paint-with-alpha-group-clip.c | H A D | 26-Nov-2020 | 2 KiB | 61 | 24 | |
paint-with-alpha.c | H A D | 26-Nov-2020 | 4.5 KiB | 149 | 93 | |
paint.c | H A D | 26-Nov-2020 | 1.6 KiB | 49 | 18 | |
partial-clip-text.c | H A D | 26-Nov-2020 | 3.1 KiB | 121 | 74 | |
partial-coverage.c | H A D | 26-Nov-2020 | 19 KiB | 681 | 487 | |
pass-through.c | H A D | 26-Nov-2020 | 2.6 KiB | 92 | 56 | |
path-append.c | H A D | 26-Nov-2020 | 2.7 KiB | 82 | 47 | |
path-currentpoint.c | H A D | 26-Nov-2020 | 2.6 KiB | 90 | 50 | |
path-precision.c | H A D | 26-Nov-2020 | 3.4 KiB | 112 | 66 | |
path-stroke-twice.c | H A D | 26-Nov-2020 | 1.9 KiB | 55 | 20 | |
pattern-get-type.c | H A D | 26-Nov-2020 | 2.9 KiB | 80 | 43 | |
pattern-getters.c | H A D | 26-Nov-2020 | 7.4 KiB | 280 | 201 | |
pdf-features.c | H A D | 26-Nov-2020 | 4.9 KiB | 149 | 96 | |
pdf-isolated-group.c | H A D | 26-Nov-2020 | 2.4 KiB | 74 | 27 | |
pdf-mime-data.c | H A D | 26-Nov-2020 | 5.4 KiB | 188 | 131 | |
pdf-surface-source.c | H A D | 26-Nov-2020 | 1.9 KiB | 54 | 22 | |
pdf-tagged-text.c | H A D | 26-Nov-2020 | 11.9 KiB | 410 | 327 | |
pdf2png.c | H A D | 26-Nov-2020 | 3.1 KiB | 104 | 61 | |
pixman-downscale.c | H A D | 26-Nov-2020 | 6.4 KiB | 204 | 140 | |
pixman-rotate.c | H A D | 26-Nov-2020 | 2.8 KiB | 93 | 51 | |
png-flatten.c | H A D | 26-Nov-2020 | 2.4 KiB | 78 | 40 | |
png.c | H A D | 26-Nov-2020 | 5.6 KiB | 176 | 126 | |
ps-eps.c | H A D | 26-Nov-2020 | 9.3 KiB | 355 | 270 | |
ps-features.c | H A D | 26-Nov-2020 | 5.7 KiB | 167 | 111 | |
ps-surface-source.c | H A D | 26-Nov-2020 | 1.9 KiB | 54 | 22 | |
ps2png.c | H A D | 26-Nov-2020 | 3.5 KiB | 114 | 73 | |
pthread-same-source.c | H A D | 26-Nov-2020 | 5.6 KiB | 193 | 138 | |
pthread-show-text.c | H A D | 26-Nov-2020 | 4 KiB | 143 | 88 | |
pthread-similar.c | H A D | 26-Nov-2020 | 3 KiB | 107 | 64 | |
push-group-color.c | H A D | 26-Nov-2020 | 4.4 KiB | 142 | 86 | |
push-group-path-offset.c | H A D | 26-Nov-2020 | 2.5 KiB | 78 | 30 | |
push-group.c | H A D | 26-Nov-2020 | 3.9 KiB | 114 | 65 | |
quartz-surface-source.c | H A D | 26-Nov-2020 | 1.6 KiB | 43 | 14 | |
radial-gradient-extend.c | H A D | 26-Nov-2020 | 2.7 KiB | 93 | 49 | |
radial-gradient.c | H A D | 26-Nov-2020 | 7.1 KiB | 257 | 152 | |
radial-outer-focus.c | H A D | 26-Nov-2020 | 2.2 KiB | 73 | 36 | |
random-clips.c | H A D | 26-Nov-2020 | 5.1 KiB | 233 | 147 | |
random-intersections-curves-eo.c | H A D | 26-Nov-2020 | 2.7 KiB | 85 | 49 | |
random-intersections-curves-nz.c | H A D | 26-Nov-2020 | 2.7 KiB | 86 | 49 | |
random-intersections-eo.c | H A D | 26-Nov-2020 | 2.4 KiB | 79 | 42 | |
random-intersections-nonzero.c | H A D | 26-Nov-2020 | 2.4 KiB | 80 | 42 | |
raster-source.c | H A D | 26-Nov-2020 | 4.2 KiB | 148 | 96 | |
record-extend.c | H A D | 26-Nov-2020 | 7.9 KiB | 289 | 206 | |
record-mesh.c | H A D | 26-Nov-2020 | 4.9 KiB | 167 | 101 | |
record-neg-extents.c | H A D | 26-Nov-2020 | 6.8 KiB | 218 | 141 | |
record-replay-extend.c | H A D | 26-Nov-2020 | 7.3 KiB | 228 | 161 | |
record.c | H A D | 26-Nov-2020 | 13.6 KiB | 503 | 364 | |
record1414x.c | H A D | 26-Nov-2020 | 13.5 KiB | 499 | 360 | |
record2x.c | H A D | 26-Nov-2020 | 13.2 KiB | 494 | 356 | |
record90.c | H A D | 26-Nov-2020 | 13.3 KiB | 496 | 358 | |
recordflip.c | H A D | 26-Nov-2020 | 19.6 KiB | 734 | 562 | |
recording-ink-extents.c | H A D | 26-Nov-2020 | 4.6 KiB | 173 | 113 | |
recording-surface-extend.c | H A D | 26-Nov-2020 | 5.3 KiB | 175 | 118 | |
recording-surface-pattern.c | H A D | 26-Nov-2020 | 5 KiB | 163 | 105 | |
rectangle-rounding-error.c | H A D | 26-Nov-2020 | 2.2 KiB | 65 | 26 | |
rectilinear-dash-scale.c | H A D | 26-Nov-2020 | 5.6 KiB | 197 | 116 | |
rectilinear-dash.c | H A D | 26-Nov-2020 | 5.1 KiB | 177 | 98 | |
rectilinear-fill.c | H A D | 26-Nov-2020 | 2.5 KiB | 85 | 40 | |
rectilinear-grid.c | H A D | 26-Nov-2020 | 2.8 KiB | 93 | 42 | |
rectilinear-miter-limit.c | H A D | 26-Nov-2020 | 2.7 KiB | 73 | 28 | |
rectilinear-stroke.c | H A D | 26-Nov-2020 | 4.4 KiB | 140 | 68 | |
reflected-stroke.c | H A D | 26-Nov-2020 | 2.7 KiB | 92 | 54 | |
rel-path.c | H A D | 26-Nov-2020 | 3.7 KiB | 130 | 85 | |
rgb24-ignore-alpha.c | H A D | 26-Nov-2020 | 2 KiB | 61 | 25 | |
rotate-image-surface-paint.c | H A D | 26-Nov-2020 | 5.4 KiB | 173 | 104 | |
rotate-stroke-box.c | H A D | 26-Nov-2020 | 1.7 KiB | 50 | 20 | |
rotated-clip.c | H A D | 26-Nov-2020 | 3.5 KiB | 111 | 64 | |
rounded-rectangle-fill.c | H A D | 26-Nov-2020 | 2.3 KiB | 66 | 30 | |
rounded-rectangle-stroke.c | H A D | 26-Nov-2020 | 2.3 KiB | 65 | 29 | |
run-cairo-test-suite.sh | H A D | 26-Nov-2020 | 359 | 19 | 11 | |
sample.c | H A D | 26-Nov-2020 | 3.4 KiB | 118 | 69 | |
scale-down-source-surface-paint.c | H A D | 26-Nov-2020 | 2.4 KiB | 66 | 29 | |
scale-offset-image.c | H A D | 26-Nov-2020 | 4.2 KiB | 144 | 92 | |
scale-offset-similar.c | H A D | 26-Nov-2020 | 4.2 KiB | 144 | 93 | |
scale-source-surface-paint.c | H A D | 26-Nov-2020 | 2.2 KiB | 61 | 27 | |
scaled-font-zero-matrix.c | H A D | 26-Nov-2020 | 2.3 KiB | 64 | 32 | |
select-font-face.c | H A D | 26-Nov-2020 | 2.3 KiB | 66 | 30 | |
select-font-no-show-text.c | H A D | 26-Nov-2020 | 2 KiB | 60 | 16 | |
self-copy-overlap.c | H A D | 26-Nov-2020 | 2.1 KiB | 55 | 17 | |
self-copy.c | H A D | 26-Nov-2020 | 2.8 KiB | 85 | 37 | |
self-intersecting.c | H A D | 26-Nov-2020 | 3.2 KiB | 88 | 32 | |
set-source.c | H A D | 26-Nov-2020 | 2.6 KiB | 82 | 46 | |
shape-general-convex.c | H A D | 26-Nov-2020 | 2.5 KiB | 89 | 46 | |
shape-sierpinski.c | H A D | 26-Nov-2020 | 2.3 KiB | 86 | 44 | |
show-glyphs-advance.c | H A D | 26-Nov-2020 | 3.1 KiB | 108 | 61 | |
show-glyphs-many.c | H A D | 26-Nov-2020 | 5.4 KiB | 177 | 82 | |
show-text-current-point.c | H A D | 26-Nov-2020 | 2.1 KiB | 60 | 26 | |
simple.c | H A D | 26-Nov-2020 | 9.6 KiB | 348 | 267 | |
skew-extreme.c | H A D | 26-Nov-2020 | 3.2 KiB | 119 | 54 | |
smask-fill.c | H A D | 26-Nov-2020 | 2.6 KiB | 74 | 39 | |
smask-image-mask.c | H A D | 26-Nov-2020 | 3 KiB | 86 | 49 | |
smask-mask.c | H A D | 26-Nov-2020 | 3.4 KiB | 97 | 58 | |
smask-paint.c | H A D | 26-Nov-2020 | 3 KiB | 82 | 46 | |
smask-stroke.c | H A D | 26-Nov-2020 | 2.6 KiB | 74 | 39 | |
smask-text.c | H A D | 26-Nov-2020 | 3 KiB | 84 | 48 | |
smask.c | H A D | 26-Nov-2020 | 4.5 KiB | 124 | 80 | |
smp-glyph.c | H A D | 26-Nov-2020 | 2 KiB | 57 | 22 | |
solid-pattern-cache-stress.c | H A D | 26-Nov-2020 | 5.3 KiB | 213 | 147 | |
source-clip-scale.c | H A D | 26-Nov-2020 | 2.8 KiB | 83 | 38 | |
source-clip.c | H A D | 26-Nov-2020 | 2.5 KiB | 78 | 35 | |
source-surface-scale-paint.c | H A D | 26-Nov-2020 | 2.2 KiB | 60 | 27 | |
spline-decomposition.c | H A D | 26-Nov-2020 | 11.4 KiB | 472 | 351 | |
stride-12-image.c | H A D | 26-Nov-2020 | 2.3 KiB | 72 | 34 | |
stroke-clipped.c | H A D | 26-Nov-2020 | 1.7 KiB | 55 | 24 | |
stroke-ctm-caps.c | H A D | 26-Nov-2020 | 2.6 KiB | 79 | 33 | |
stroke-image.c | H A D | 26-Nov-2020 | 2.6 KiB | 74 | 36 | |
stroke-open-box.c | H A D | 26-Nov-2020 | 1.8 KiB | 52 | 20 | |
stroke-pattern.c | H A D | 26-Nov-2020 | 2.1 KiB | 69 | 31 | |
subsurface-image-repeat.c | H A D | 26-Nov-2020 | 2.7 KiB | 71 | 34 | |
subsurface-modify-child.c | H A D | 26-Nov-2020 | 3.5 KiB | 99 | 54 | |
subsurface-modify-parent.c | H A D | 26-Nov-2020 | 2.8 KiB | 79 | 38 | |
subsurface-outside-target.c | H A D | 26-Nov-2020 | 5.7 KiB | 178 | 109 | |
subsurface-pad.c | H A D | 26-Nov-2020 | 2.7 KiB | 77 | 38 | |
subsurface-reflect.c | H A D | 26-Nov-2020 | 2.7 KiB | 77 | 38 | |
subsurface-repeat.c | H A D | 26-Nov-2020 | 2.7 KiB | 77 | 38 | |
subsurface-scale.c | H A D | 26-Nov-2020 | 3.1 KiB | 94 | 54 | |
subsurface-similar-repeat.c | H A D | 26-Nov-2020 | 3 KiB | 87 | 46 | |
subsurface.c | H A D | 26-Nov-2020 | 2.8 KiB | 86 | 48 | |
surface-finish-twice.c | H A D | 26-Nov-2020 | 2.7 KiB | 80 | 29 | |
surface-pattern-big-scale-down.c | H A D | 26-Nov-2020 | 3.7 KiB | 126 | 68 | |
surface-pattern-operator.c | H A D | 26-Nov-2020 | 3.8 KiB | 120 | 74 | |
surface-pattern-scale-down-extend.c | H A D | 26-Nov-2020 | 4.2 KiB | 121 | 71 | |
surface-pattern-scale-down.c | H A D | 26-Nov-2020 | 3 KiB | 89 | 51 | |
surface-pattern-scale-up.c | H A D | 26-Nov-2020 | 3.2 KiB | 94 | 51 | |
surface-pattern.c | H A D | 26-Nov-2020 | 3.1 KiB | 91 | 51 | |
surface-source.c | H A D | 26-Nov-2020 | 5.4 KiB | 171 | 112 | |
svg-clip.c | H A D | 26-Nov-2020 | 4.7 KiB | 153 | 81 | |
svg-surface-source.c | H A D | 26-Nov-2020 | 1.9 KiB | 55 | 23 | |
svg-surface.c | H A D | 26-Nov-2020 | 3.8 KiB | 137 | 80 | |
svg2png.c | H A D | 26-Nov-2020 | 2.7 KiB | 86 | 45 | |
text-antialias-subpixel.c | H A D | 26-Nov-2020 | 4 KiB | 124 | 77 | |
text-antialias.c | H A D | 26-Nov-2020 | 3.5 KiB | 107 | 66 | |
text-cache-crash.c | H A D | 26-Nov-2020 | 3.4 KiB | 94 | 22 | |
text-glyph-range.c | H A D | 26-Nov-2020 | 4.3 KiB | 126 | 56 | |
text-pattern.c | H A D | 26-Nov-2020 | 2.3 KiB | 74 | 36 | |
text-rotate.c | H A D | 26-Nov-2020 | 6.3 KiB | 190 | 81 | |
text-subpixel.c | H A D | 26-Nov-2020 | 2.3 KiB | 69 | 35 | |
text-transform.c | H A D | 26-Nov-2020 | 3.1 KiB | 105 | 57 | |
text-unhinted-metrics.c | H A D | 26-Nov-2020 | 2.5 KiB | 74 | 35 | |
text-zero-len.c | H A D | 26-Nov-2020 | 7.6 KiB | 204 | 139 | |
thin-lines.c | H A D | 26-Nov-2020 | 2.9 KiB | 96 | 54 | |
tiger.c | H A D | 26-Nov-2020 | 2.4 KiB | 86 | 54 | |
tiger.inc | H A D | 26-Nov-2020 | 114.9 KiB | 2,317 | 2,316 | |
tighten-bounds.c | H A D | 26-Nov-2020 | 4.4 KiB | 173 | 116 | |
toy-font-face.c | H A D | 26-Nov-2020 | 6.2 KiB | 150 | 104 | |
transforms.c | H A D | 26-Nov-2020 | 2.7 KiB | 113 | 70 | |
translate-show-surface.c | H A D | 26-Nov-2020 | 2.6 KiB | 80 | 32 | |
trap-clip.c | H A D | 26-Nov-2020 | 5.8 KiB | 214 | 157 | |
twin-antialias-gray.c | H A D | 26-Nov-2020 | 2.4 KiB | 72 | 35 | |
twin-antialias-mixed.c | H A D | 26-Nov-2020 | 3.2 KiB | 98 | 58 | |
twin-antialias-none.c | H A D | 26-Nov-2020 | 2.4 KiB | 72 | 35 | |
twin-antialias-subpixel.c | H A D | 26-Nov-2020 | 2.4 KiB | 72 | 35 | |
twin.c | H A D | 26-Nov-2020 | 2 KiB | 62 | 29 | |
unaligned-box.c | H A D | 26-Nov-2020 | 2.2 KiB | 74 | 35 | |
unantialiased-shapes.c | H A D | 26-Nov-2020 | 3.1 KiB | 99 | 54 | |
unbounded-operator.c | H A D | 26-Nov-2020 | 5.4 KiB | 186 | 128 | |
unclosed-strokes.c | H A D | 26-Nov-2020 | 2.5 KiB | 84 | 44 | |
user-data.c | H A D | 26-Nov-2020 | 3.1 KiB | 111 | 65 | |
user-font-mask.c | H A D | 26-Nov-2020 | 7.9 KiB | 254 | 171 | |
user-font-proxy.c | H A D | 26-Nov-2020 | 7 KiB | 223 | 151 | |
user-font-rescale.c | H A D | 26-Nov-2020 | 10.7 KiB | 369 | 270 | |
user-font.c | H A D | 26-Nov-2020 | 8.1 KiB | 268 | 178 | |
white-in-noop.c | H A D | 26-Nov-2020 | 1.7 KiB | 53 | 19 | |
world-map.c | H A D | 26-Nov-2020 | 3.8 KiB | 152 | 109 | |
world-map.h | H A D | 26-Nov-2020 | 428.5 KiB | 197 | 180 | |
xcb-huge-image-shm.c | H A D | 26-Nov-2020 | 2.3 KiB | 68 | 28 | |
xcb-huge-subimage.c | H A D | 26-Nov-2020 | 2.7 KiB | 82 | 40 | |
xcb-snapshot-assert.c | H A D | 26-Nov-2020 | 2.4 KiB | 76 | 33 | |
xcb-stress-cache.c | H A D | 26-Nov-2020 | 4.1 KiB | 119 | 49 | |
xcb-surface-source.c | H A D | 26-Nov-2020 | 4 KiB | 150 | 99 | |
xcomposite-projection.c | H A D | 26-Nov-2020 | 3.4 KiB | 110 | 50 | |
xlib-expose-event.c | H A D | 26-Nov-2020 | 5.5 KiB | 197 | 133 | |
xlib-surface-source.c | H A D | 26-Nov-2020 | 2.9 KiB | 101 | 60 | |
xlib-surface.c | H A D | 26-Nov-2020 | 8.7 KiB | 354 | 253 | |
zero-alpha.c | H A D | 26-Nov-2020 | 3.3 KiB | 96 | 39 | |
zero-mask.c | H A D | 26-Nov-2020 | 5.8 KiB | 199 | 132 |
README
1Regression test suite for cairo. 2 3How to use cairo's test suite 4============================= 5Using this test should be as simple as running: 6 7 make test 8 9assuming that the cairo distribution in the directory above has been 10configured and built. The test suite here goes through some effort to 11run against the locally compiled library rather than any installed 12version, but those efforts may fall short depending on the level of your 13libtool madness. 14 15The results of the test suite run are summarized in an index.html 16file, which, when viewed in a web browser makes it quite easy to 17visually see any failed renderings alongside the corresponding 18reference image, (and a diff image as well). 19 20The test suite needs to be run before any code is committed and before 21any release. See below for hints and rules governing the use of the suite. 22 23The test suite is built as a single binary, which allows you to choose 24individual or categories of tests to run. For example, to run specific tests: 25 ./cairo-test-suite record-neg-extents-unbounded record-neg-extents-bounded 26Or if you want to run all paint.* related tests you can use: 27 ./cairo-test-suite paint 28Or if you want to check the current status of known failures: 29 ./cairo-test-suite XFAIL 30Or to run a subset of tests, use the -k option to run only the tests 31that include the given keyword: 32 ./cairo-test-suite -k downscale 33The binary also permits controlling which backend is used via the 34CAIRO_TEST_TARGET environment variable, so for instance: 35 CAIRO_TEST_TARGET=gl ./cairo-test-suite -k blur 36This binary should be backwards-compatible with all library versions, 37allowing you to compare current versus past behaviour for any test. 38 39Tailoring tests running 40----------------------- 41There are some mechanisms to limit the tests run during "make test". 42These come very handy when doing development, but should not be used 43to circumvent the "pass" requirements listed below. 44 45make's TARGETS environment variable can be used to limit the backends when 46running the tests. It should contain a (space-, comma-separated) list of 47backends. CAIRO_TESTS environment variable, which is a comma-, space-seperated 48lists, can be used to limit the tests run. 49For example: 50 51 CAIRO_TESTS="zero-alpha" make test TARGETS=image,ps 52 53make's FORMAT variable can also be used to limit the content formats when 54running the tests. It should contain a (space-, comma-separated) list of 55content formats to test. 56For example: 57 58 CAIRO_TESTS="zero-alpha" make test TARGETS=image,ps FORMAT="rgb,rgba" 59 60Another very handy mechanism when trying to fix bugs is: 61 62 make retest 63 64This will re-run the test suite, but only on tests that failed on the 65last run. So this is a much faster way of checking if changes actually 66fix bugs rather than running the entire test suite again. 67 68The test suite first compares the output from the current run against the 69previous in order to skip more expensive image comparisons . If you think 70this is interfering with the results, you can clear the cached results using: 71 72 make clean-caches 73 74Running tests under modified environments or tools 75------------------------------------------------- 76To run tests under a tool like gdb, one can use the run target and 77the TOOL variable. For example: 78 79 CAIRO_TESTS=user-font make run TOOL=gdb TARGETS=pdf 80 81If you want to run under valgrind, there is a specific target for that 82that also sets a bunch of useful valgrind options. Try: 83 84 CAIRO_TESTS=user-font make check-valgrind 85 86You can run tests under a modified environment you can use the ENV 87make variable. However, that environment will also affect the libtool 88wrapper of the tests. To only affect the actual test binaries, pass 89such environment as TOOL: 90 91 CAIRO_TESTS=user-font make run TOOL="LD_PRELOAD=/path/to/something.so" 92 93Getting the elusive zero failures 94--------------------------------- 95It's generally been very difficult to achieve a test run with zero 96failures. The difficulties stem from the various versions of the many 97libraries that the test suite depends on, (it depends on a lot more 98than cairo itself), as well as fonts and other system-specific 99settings. If your system differs significantly from the system on 100which the reference images were generated, then you will likely see 101the test suite reporting "failures", (even if cairo is working just 102fine). 103 104We are constantly working to reduce the number of variables that need 105to be tweaked to get a clean run, (for example, by bundling fonts with 106the test suite itself), and also working to more carefully document 107the software configuration used to generate the reference images. 108 109Here are some of the relevant details: 110 111 * Your system must have a copy of the DejaVu font, the sha1sum of 112 the version used are listed in [...]. These are 113 "DejaVu Sans" (DejaVuSans.ttf) [e9831ee4fd2e1d0ac54508a548c6a449545eba3f]; 114 "DejaVu Sans Mono" (DejaVuSansMono.ttf) [25d854fbd0450a372615a26a8ef9a1024bd3efc6]; 115 "DejaVu Serif" (DejaVuSerif.ttf) [78a81850dc7883969042cf3d6dfd18eea7e43e2f]; 116 [the DejaVu fonts can be installed from the fonts-dejavu-core 2.34-1 Debian package] 117 and also 118 "Nimbus Sans L" (n019003l.pfb) 119 [which can be found in the gsfonts Debian package]. 120 121 * Currently, you must be using a build of cairo using freetype 122 (cairo-ft) as the default font backend. Otherwise all tests 123 involving text are likely to fail. 124 125 * To test the pdf backend, you will want the very latest version of 126 poppler as made available via git: 127 128 git clone git://anongit.freedesktop.org/git/poppler/poppler 129 130 As of this writing, no released version of poppler contains all 131 the fixes you will need to avoid false negatives from the test 132 suite. 133 134 * To test the ps backend, you will need ghostscript version 9.06. 135 136 * Testing the xlib backend is problematic since many X server 137 drivers have bugs that are exercised by the test suite. (Or, if 138 not actual bugs, differ slightly in their output in such a way 139 that the test suite will report errors.) This can be quite handy 140 if you want to debug an X server driver, but since most people 141 don't want to do that, another option is to run against a headless 142 X server that uses only software for all rendering. One such X 143 server is Xvfb which can be started like this: 144 145 Xvfb -screen 0 1680x1024x24 -ac -nolisten tcp :2 146 147 after which the test suite can be run against it like so: 148 149 DISPLAY=:2 make test 150 151 We have been using Xvfb for testing cairo releases and ensuring 152 that all tests behave as expected with this X server. 153 154What if I can't make my system match? 155------------------------------------- 156For one reason or another, you may be unable to get a clean run of the 157test suite even if cairo is working properly, (for example, you might 158be on a system without freetype). In this case, it's still useful to 159be able to determine if code changes you make to cairo result in any 160regressions to the test suite. But it's hard to notice regressions if 161there are many failures both before and after your changes. 162 163For this scenario, you can capture the output of a run of the test 164suite before your changes, and then use the CAIRO_REF_DIR environment 165variable to use that output as the reference images for a run after 166your changes. The process looks like this: 167 168 # Before code change there may be failures we don't care about 169 make test 170 171 # Let's save those output images 172 mkdir /some/directory/ 173 cp -r test/output /some/directory/ 174 175 # hack, hack, hack 176 177 # Now to see if nothing changed: 178 CAIRO_REF_DIR=/some/directory/ make test 179 180Best practices for cairo developers 181=================================== 182If we all follow the guidelines below, then both the test suite and 183cairo itself will stay much healthier, and we'll all have a lot more 184fun hacking on cairo. 185 186Before committing 187----------------- 188All tests should return a result of PASS or XFAIL. The XFAIL results 189indicate known bugs. The final message should be one of the following: 190 191 All XX tests behaved as expected (YY expected failures) 192 All XX tests passed 193 194If any tests have a status of FAIL, then the new code has caused a 195regression error which should be fixed before the code is committed. 196 197When a new bug is found 198----------------------- 199A new test case should be added by imitating the style of an existing 200test. This means adding the following files: 201 202 new-bug.c 203 reference/new-bug.ref.png 204 reference/new-bug.xfail.png 205 206Where new-bug.c is a minimal program to demonstrate the bug, following 207the style of existing tests. The new-bug.ref.png image should contain 208the desired result of new-bug.c if the bug were fixed while 209new-bug.xfail.png contains the current results of the test. 210 211Makefile.sources should be edited by adding new-bug.c to test_sources. 212And last but not least, don't forget to "git add" the new files. 213 214When a new feature is added 215--------------------------- 216It's important for the regression suite to keep pace with development 217of the library. So a new test should be added for each new feature. 218The work involved is similar the work described above for new bugs. 219The only distinction is that the test is expected to pass so it 220should not need a new-bug.xfail.png file. 221 222While working on a test 223----------------------- 224Before a bugfix or feature is ready, it may be useful to compare 225output from different builds. For convenience, you can set 226CAIRO_REF_DIR to point at a previous test directory, relative 227to the current test directory, and any previous output will be 228used by preference as reference images. 229 230When a bug is fixed 231------------------- 232The fix should be verified by running the test suite which should 233result in an "unexpected pass" for the test of interest. Rejoice as 234appropriate, then remove the relevant xfail.png file from git. 235 236Before releasing 237---------------- 238All tests should return a result of PASS for all supported (those enabled by 239default) backends, meaning all known bugs are fixed, resulting in the happy 240message: 241 242 All XX tests passed 243 244Some notes on limitations in poppler 245==================================== 246One of the difficulties of our current test infrastructure is that we 247rely on external tools to convert cairo's vector output (PDF, 248PostScript, and SVG), into an image that can be used for the image 249comparison. This means that any bugs in that conversion tool will 250result in false negatives in the test suite. 251 252We've identified several such bugs in the poppler library which is 253used to convert PDF to an image. This is particularly discouraging 254because 1) poppler is free software that will be used by *many* cairo 255users, and 2) poppler calls into cairo for its rendering so it should 256be able to do a 100% faithful conversion. 257 258So we have an interest in ensuring that these poppler bugs get fixed 259sooner rather than later. As such, we're trying to be good citizens by 260reporting all such poppler bugs that we identify to the poppler 261bugzilla. Here's a tracking bug explaining the situation: 262 263 Poppler does not yet handle everything in the cairo test suite 264 https://bugs.freedesktop.org/show_bug.cgi?id=12143 265 266Here's the rule: If a cairo-pdf test reports a failure, but viewing 267the resulting PDF file with acroread suggests that the PDF itself is 268correct, then there's likely a bug in poppler. In this case, we can 269simply report the poppler bug, (making it block 12143 above), post the 270PDF result from the test suite, and list the bug in this file. Once 271we've done this, we can capture poppler's buggy output as a 272pdf-specific reference image (as reference/*.xfail.png) so that the 273test suite will regard the test as passing, (and we'll ensure there 274is no regression). 275 276Once the poppler bug gets fixed, the test suite will start reporting a 277false negative again, and this will be easy to fix by simply removing 278the pdf-specific reference image. 279 280Here are the reported poppler bugs and the tests they affect: 281 282[Newest was closed in 2009.] 283