cairo/test/Makefile.am
Chris Wilson 4aa0991a11 [test] Mark fallback-resolution as XFAIL.
There appears to be no simple solution here, as it seems to be a
fundamental flaw in the design of the meta-surface wrt to replaying into
a fallback image. (I may be wrong, but if Carl found no easy solution then
I feel no shame for my own failure ;-)
2008-10-06 12:02:29 +01:00

1228 lines
40 KiB
Makefile

include $(top_srcdir)/build/Makefile.am.common
SUBDIRS=pdiff .
# Here are all the tests that are run unconditionally
TESTS += \
a1-image-sample$(EXEEXT) \
a1-mask$(EXEEXT) \
a1-traps-sample$(EXEEXT) \
a8-mask$(EXEEXT) \
alpha-similar$(EXEEXT) \
big-line$(EXEEXT) \
big-trap$(EXEEXT) \
bilevel-image$(EXEEXT) \
caps-joins$(EXEEXT) \
caps-joins-alpha$(EXEEXT) \
caps-sub-paths$(EXEEXT) \
clip-all$(EXEEXT) \
clip-empty$(EXEEXT) \
clip-fill-rule$(EXEEXT) \
clip-fill-rule-pixel-aligned$(EXEEXT) \
clip-nesting$(EXEEXT) \
clip-operator$(EXEEXT) \
clip-push-group$(EXEEXT) \
clip-twice$(EXEEXT) \
clip-zero$(EXEEXT) \
clipped-group$(EXEEXT) \
close-path$(EXEEXT) \
composite-integer-translate-source$(EXEEXT) \
composite-integer-translate-over$(EXEEXT) \
composite-integer-translate-over-repeat$(EXEEXT) \
copy-path$(EXEEXT) \
create-for-stream$(EXEEXT) \
create-from-png$(EXEEXT) \
create-from-png-stream$(EXEEXT) \
dash-caps-joins$(EXEEXT) \
dash-curve$(EXEEXT) \
dash-no-dash$(EXEEXT) \
dash-offset-negative$(EXEEXT) \
dash-scale$(EXEEXT) \
dash-state$(EXEEXT) \
dash-zero-length$(EXEEXT) \
degenerate-arc$(EXEEXT) \
degenerate-path$(EXEEXT) \
degenerate-pen$(EXEEXT) \
device-offset$(EXEEXT) \
device-offset-fractional$(EXEEXT) \
device-offset-positive$(EXEEXT) \
device-offset-scale$(EXEEXT) \
extend-pad$(EXEEXT) \
extend-reflect$(EXEEXT) \
extend-reflect-similar$(EXEEXT) \
extend-repeat$(EXEEXT) \
extend-repeat-similar$(EXEEXT) \
fill-alpha$(EXEEXT) \
fill-alpha-pattern$(EXEEXT) \
fill-and-stroke$(EXEEXT) \
fill-and-stroke-alpha$(EXEEXT) \
fill-and-stroke-alpha-add$(EXEEXT) \
fill-degenerate-sort-order$(EXEEXT) \
fill-missed-stop$(EXEEXT) \
fill-rule$(EXEEXT) \
filter-bilinear-extents$(EXEEXT) \
filter-nearest-offset$(EXEEXT) \
finer-grained-fallbacks$(EXEEXT) \
font-face-get-type$(EXEEXT) \
font-matrix-translation$(EXEEXT) \
font-options$(EXEEXT) \
glyph-cache-pressure$(EXEEXT) \
get-and-set$(EXEEXT) \
get-clip$(EXEEXT) \
get-group-target$(EXEEXT) \
get-path-extents$(EXEEXT) \
gradient-alpha$(EXEEXT) \
gradient-constant-alpha$(EXEEXT) \
gradient-zero-stops$(EXEEXT) \
group-paint$(EXEEXT) \
image-surface-source$(EXEEXT) \
infinite-join$(EXEEXT) \
in-fill-empty-trapezoid$(EXEEXT) \
in-fill-trapezoid$(EXEEXT) \
invalid-matrix$(EXEEXT) \
large-clip$(EXEEXT) \
large-font$(EXEEXT) \
large-source$(EXEEXT) \
leaky-dash$(EXEEXT) \
leaky-dashed-rectangle$(EXEEXT) \
leaky-polygon$(EXEEXT) \
line-width$(EXEEXT) \
line-width-scale$(EXEEXT) \
line-width-zero$(EXEEXT) \
linear-gradient$(EXEEXT) \
linear-gradient-reflect$(EXEEXT) \
long-dashed-lines$(EXEEXT) \
long-lines$(EXEEXT) \
mask$(EXEEXT) \
mask-alpha$(EXEEXT) \
mask-ctm$(EXEEXT) \
mask-surface-ctm$(EXEEXT) \
mask-transformed-image$(EXEEXT) \
mask-transformed-similar$(EXEEXT) \
meta-surface-pattern$(EXEEXT) \
miter-precision$(EXEEXT) \
move-to-show-surface$(EXEEXT) \
new-sub-path$(EXEEXT) \
nil-surface$(EXEEXT) \
operator$(EXEEXT) \
operator-alpha$(EXEEXT) \
operator-clear$(EXEEXT) \
operator-source$(EXEEXT) \
over-above-source$(EXEEXT) \
over-around-source$(EXEEXT) \
over-below-source$(EXEEXT) \
over-between-source$(EXEEXT) \
paint$(EXEEXT) \
paint-repeat$(EXEEXT) \
paint-source-alpha$(EXEEXT) \
paint-with-alpha$(EXEEXT) \
pattern-get-type$(EXEEXT) \
pattern-getters$(EXEEXT) \
pixman-rotate$(EXEEXT) \
png$(EXEEXT) \
push-group$(EXEEXT) \
radial-gradient$(EXEEXT) \
random-intersections$(EXEEXT) \
rectangle-rounding-error$(EXEEXT) \
rectilinear-fill$(EXEEXT) \
rectilinear-miter-limit$(EXEEXT) \
rectilinear-stroke$(EXEEXT) \
reflected-stroke$(EXEEXT) \
rel-path$(EXEEXT) \
rgb24-ignore-alpha$(EXEEXT) \
rotate-image-surface-paint$(EXEEXT) \
scale-down-source-surface-paint$(EXEEXT) \
scale-source-surface-paint$(EXEEXT) \
stroke-ctm-caps$(EXEEXT) \
stroke-image$(EXEEXT) \
select-font-face$(EXEEXT) \
select-font-no-show-text$(EXEEXT) \
self-copy$(EXEEXT) \
self-copy-overlap$(EXEEXT) \
self-intersecting$(EXEEXT) \
set-source$(EXEEXT) \
show-glyphs-many$(EXEEXT) \
show-text-current-point$(EXEEXT) \
skew-extreme$(EXEEXT) \
smask$(EXEEXT) \
smask-fill$(EXEEXT) \
smask-image-mask$(EXEEXT) \
smask-mask$(EXEEXT) \
smask-paint$(EXEEXT) \
smask-stroke$(EXEEXT) \
smask-text$(EXEEXT) \
solid-pattern-cache-stress$(EXEEXT) \
source-clip$(EXEEXT) \
source-clip-scale$(EXEEXT) \
source-surface-scale-paint$(EXEEXT) \
surface-finish-twice$(EXEEXT) \
surface-pattern$(EXEEXT) \
surface-pattern-big-scale-down$(EXEEXT) \
surface-pattern-scale-down$(EXEEXT) \
surface-pattern-scale-up$(EXEEXT) \
text-antialias-gray$(EXEEXT) \
text-antialias-none$(EXEEXT) \
text-antialias-subpixel$(EXEEXT) \
text-cache-crash$(EXEEXT) \
text-pattern$(EXEEXT) \
text-rotate$(EXEEXT) \
text-transform$(EXEEXT) \
text-zero-len$(EXEEXT) \
toy-font-face$(EXEEXT) \
transforms$(EXEEXT) \
translate-show-surface$(EXEEXT) \
trap-clip$(EXEEXT) \
truetype-tables$(EXEEXT) \
unantialiased-shapes$(EXEEXT) \
unbounded-operator$(EXEEXT) \
user-data$(EXEEXT) \
user-font$(EXEEXT) \
user-font-proxy$(EXEEXT) \
user-font-rescale$(EXEEXT) \
zero-alpha$(EXEEXT)
# XXX: Here are some existing tests that are currently disabled for
# one reason or another. They can still be built and run (manually)
# but we don't currently run them as part of 'make check' to avoid
# inflicting some particularly nasty problems on the user of the test
# suite (described below).
#
# It would definitely be worthwhile to address these problems so that
# these tests can get back into the test suite proper, (since the
# problems do indicated bugs somewhere and we're less likely to get
# those bugs fixed without the attention due to having these tests in
# the suite).
#
# The reasons for disabling the tests are as follows:
#
# extend-reflect - Triggers an infinite (or near-infinite) bug in some
# X servers in some circumstances. Details and cause unknown.
#
# text-glyph-range - This test triggers the following assertion in cairo:
#
# lt-text-glyph-range: cairo-scaled-font-subsets.c:350:
# _cairo_sub_font_collect: Assertion `collection->num_glyphs ==
# collection->max_glyph + 1' failed.
#
# And as a result causes a failure to be recorded by the test
# suite, (in spite of the XFAIL status of the test). So maybe
# that's just a bug in the test rig that should just consider
# the abort an XFAIL like any other.
DISABLED_TESTS = \
text-glyph-range$(EXEEXT)
# Then we have a collection of tests that are only run if certain
# features are compiled into cairo
if HAVE_PTHREAD
TESTS += pthread-show-text$(EXEEXT)
endif
if CAIRO_HAS_FT_FONT
TESTS += bitmap-font$(EXEEXT)
TESTS += ft-font-create-for-ft-face$(EXEEXT)
TESTS += ft-show-glyphs-positioning$(EXEEXT)
TESTS += ft-show-glyphs-table$(EXEEXT)
TESTS += ft-text-vertical-layout-type1$(EXEEXT)
TESTS += ft-text-vertical-layout-type3$(EXEEXT)
TESTS += ft-text-antialias-none$(EXEEXT)
endif
# Need to add win32-surface-source, quartz-surface-source
if CAIRO_HAS_GLITZ_SURFACE
TESTS += glitz-surface-source$(EXEEXT)
endif
if CAIRO_HAS_PDF_SURFACE
TESTS += pdf-features$(EXEEXT)
TESTS += pdf-surface-source$(EXEEXT)
endif
if CAIRO_HAS_PS_SURFACE
TESTS += ps-features$(EXEEXT)
TESTS += ps-surface-source$(EXEEXT)
endif
if CAIRO_HAS_SVG_SURFACE
TESTS += svg-surface$(EXEEXT)
TESTS += svg-clip$(EXEEXT)
TESTS += svg-surface-source$(EXEEXT)
endif
if CAIRO_HAS_XLIB_SURFACE
TESTS += xlib-expose-event$(EXEEXT)
TESTS += xlib-surface$(EXEEXT)
TESTS += xlib-surface-source$(EXEEXT)
endif
if CAIRO_HAS_XLIB_XRENDER_SURFACE
TESTS += get-xrender-format$(EXEEXT)
endif
if CAIRO_HAS_MULTI_PAGE_SURFACES
TESTS += multi-page$(EXEEXT)
endif
# Include fallback-resolution (once!) if we have any of the vector surfaces
if CAIRO_HAS_SVG_SURFACE
test = fallback-resolution$(EXEEXT)
endif
if CAIRO_HAS_PDF_SURFACE
test = fallback-resolution$(EXEEXT)
endif
if CAIRO_HAS_PS_SURFACE
test = fallback-resolution$(EXEEXT)
endif
TESTS += $(test)
# All tests which have a reference image go here.
REFERENCE_IMAGES = \
a1-image-sample-ref.png \
a1-mask-ref.png \
a1-traps-sample-ref.png \
a8-mask-ref.png \
alpha-similar-ref.png \
alpha-similar-rgb24-ref.png \
big-line-ref.png \
big-line-rgb24-ref.png \
big-line-ps2-ref.png \
big-line-ps3-ref.png \
big-line-ps2-rgb24-ref.png \
big-line-ps3-rgb24-ref.png \
big-line-quartz-ref.png \
big-line-quartz-rgb24-ref.png \
bilevel-image-ref.png \
bitmap-font-ref.png \
bitmap-font-rgb24-ref.png \
caps-joins-alpha-quartz-ref.png \
caps-joins-alpha-ref.png \
caps-joins-alpha-svg12-ref.png \
caps-joins-alpha-svg11-ref.png \
caps-joins-ref.png \
caps-joins-ps2-ref.png \
caps-joins-ps3-ref.png \
caps-sub-paths-ref.png \
clip-all-ref.png \
clip-empty-ref.png \
clip-fill-rule-pixel-aligned-ref.png \
clip-fill-rule-pixel-aligned-rgb24-ref.png \
clip-fill-rule-ps2-argb32-ref.png \
clip-fill-rule-ps3-argb32-ref.png \
clip-fill-rule-ps2-rgb24-ref.png \
clip-fill-rule-ps3-rgb24-ref.png \
clip-fill-rule-ref.png \
clip-fill-rule-rgb24-ref.png \
clip-nesting-ps2-argb32-ref.png \
clip-nesting-ps3-argb32-ref.png \
clip-nesting-ps2-rgb24-ref.png \
clip-nesting-ps3-rgb24-ref.png \
clip-nesting-quartz-ref.png \
clip-nesting-quartz-rgb24-ref.png \
clip-nesting-ref.png \
clip-nesting-rgb24-ref.png \
clip-operator-ref.png \
clip-operator-pdf-argb32-ref.png \
clip-operator-pdf-rgb24-ref.png \
clip-operator-ps2-rgb24-ref.png \
clip-operator-ps3-rgb24-ref.png \
clip-operator-ps3-ref.png \
clip-operator-rgb24-ref.png \
clip-operator-quartz-ref.png \
clip-operator-quartz-rgb24-ref.png \
clip-push-group-ps2-argb32-ref.png \
clip-push-group-ps3-argb32-ref.png \
clip-push-group-ps2-rgb24-ref.png \
clip-push-group-ps3-rgb24-ref.png \
clip-push-group-quartz-ref.png \
clip-push-group-ref.png \
clip-twice-ps2-argb32-ref.png \
clip-twice-ps3-argb32-ref.png \
clip-twice-ps2-rgb24-ref.png \
clip-twice-ps3-rgb24-ref.png \
clip-twice-quartz-ref.png \
clip-twice-quartz-rgb24-ref.png \
clip-twice-ref.png \
clip-twice-rgb24-ref.png \
clipped-group-ref.png \
clipped-group-ps2-ref.png \
clipped-group-ps3-ref.png \
close-path-ref.png \
close-path-ps2-ref.png \
close-path-ps3-ref.png \
composite-integer-translate-over-ref.png \
composite-integer-translate-over-repeat-ref.png \
composite-integer-translate-source-ref.png \
copy-path-ps2-ref.png \
copy-path-ps3-ref.png \
copy-path-ref.png \
create-from-png-ref.png \
create-from-png-alpha-ref.png \
create-from-png-gray-ref.png \
create-from-png-gray-alpha-ref.png \
create-from-png-indexed-ref.png \
create-from-png-indexed-alpha-ref.png \
create-from-png-stream-ref.png \
dash-caps-joins-ps2-argb32-ref.png \
dash-caps-joins-ps3-argb32-ref.png \
dash-caps-joins-ps2-rgb24-ref.png \
dash-caps-joins-ps3-rgb24-ref.png \
dash-caps-joins-quartz-ref.png \
dash-caps-joins-ref.png \
dash-curve-ref.png \
dash-curve-ps2-ref.png \
dash-curve-ps3-ref.png \
dash-curve-quartz-ref.png \
dash-no-dash-ref.png \
dash-offset-negative-ref.png \
dash-scale-ps2-argb32-ref.png \
dash-scale-ps3-argb32-ref.png \
dash-scale-ps2-rgb24-ref.png \
dash-scale-ps3-rgb24-ref.png \
dash-scale-quartz-ref.png \
dash-scale-ref.png \
dash-state-ps2-ref.png \
dash-state-ps3-ref.png \
dash-state-ref.png \
dash-state-quartz-ref.png \
dash-zero-length-ps2-ref.png \
dash-zero-length-ps3-ref.png \
dash-zero-length-ps2-rgb24-ref.png \
dash-zero-length-ps3-rgb24-ref.png \
dash-zero-length-ref.png \
dash-zero-length-rgb24-ref.png \
degenerate-arc-ref.png \
degenerate-arc-ps2-ref.png \
degenerate-arc-ps3-ref.png \
degenerate-pen-ref.png \
degenerate-pen-ps2-ref.png \
degenerate-pen-ps3-ref.png \
degenerate-pen-quartz-ref.png \
degenerate-path-ps2-argb32-ref.png \
degenerate-path-ps2-rgb24-ref.png \
degenerate-path-ps3-argb32-ref.png \
degenerate-path-ps3-rgb24-ref.png \
degenerate-path-ref.png \
degenerate-path-rgb24-ref.png \
degenerate-path-quartz-ref.png \
degenerate-path-quartz-rgb24-ref.png \
device-offset-fractional-ref.png \
device-offset-fractional-pdf-ref.png \
device-offset-fractional-ps2-ref.png \
device-offset-fractional-ps3-ref.png \
device-offset-positive-ref.png \
device-offset-positive-rgb24-ref.png \
device-offset-ref.png \
device-offset-rgb24-ref.png \
device-offset-scale-ref.png \
extend-pad-ref.png \
extend-reflect-ref.png \
extend-reflect-similar-ref.png \
extend-reflect-similar-ps2-ref.png \
extend-reflect-similar-ps3-ref.png \
extend-reflect-ps2-ref.png \
extend-reflect-ps3-ref.png \
extend-repeat-ref.png \
extend-repeat-similar-ref.png \
fallback-resolution-ppi37.5-ref.png \
fallback-resolution-ppi72-ref.png \
fallback-resolution-ppi75-ref.png \
fallback-resolution-ppi150-ref.png \
fallback-resolution-ppi300-ref.png \
fallback-resolution-ppi600-ref.png \
fill-alpha-ref.png \
fill-alpha-pattern-ref.png \
fill-alpha-pattern-pdf-argb32-ref.png \
fill-alpha-pattern-pdf-rgb24-ref.png \
fill-alpha-pattern-ps3-ref.png \
fill-and-stroke-alpha-add-quartz-ref.png \
fill-and-stroke-alpha-add-ref.png \
fill-and-stroke-alpha-quartz-ref.png \
fill-and-stroke-alpha-ref.png \
fill-and-stroke-ps2-argb32-ref.png \
fill-and-stroke-ps3-argb32-ref.png \
fill-and-stroke-ps2-rgb24-ref.png \
fill-and-stroke-ps3-rgb24-ref.png \
fill-and-stroke-quartz-ref.png \
fill-and-stroke-quartz-rgb24-ref.png \
fill-and-stroke-ref.png \
fill-and-stroke-rgb24-ref.png \
fill-degenerate-sort-order-quartz-ref.png \
fill-degenerate-sort-order-quartz-rgb24-ref.png \
fill-degenerate-sort-order-ref.png \
fill-degenerate-sort-order-rgb24-ref.png \
fill-missed-stop-ps2-argb32-ref.png \
fill-missed-stop-ps3-argb32-ref.png \
fill-missed-stop-ps2-rgb24-ref.png \
fill-missed-stop-ps3-rgb24-ref.png \
fill-missed-stop-ref.png \
fill-missed-stop-rgb24-ref.png \
fill-rule-ps2-argb32-ref.png \
fill-rule-ps3-argb32-ref.png \
fill-rule-ps2-rgb24-ref.png \
fill-rule-ps3-rgb24-ref.png \
fill-rule-quartz-ref.png \
fill-rule-quartz-rgb24-ref.png \
fill-rule-ref.png \
fill-rule-rgb24-ref.png \
filter-bilinear-extents-ref.png \
filter-bilinear-extents-pdf-ref.png \
filter-bilinear-extents-ps2-ref.png \
filter-bilinear-extents-ps3-ref.png \
filter-nearest-offset-ref.png \
filter-nearest-offset-pdf-ref.png \
filter-nearest-offset-ps2-ref.png \
filter-nearest-offset-ps3-ref.png \
filter-nearest-offset-svg11-ref.png \
filter-nearest-offset-svg12-ref.png \
finer-grained-fallbacks-ref.png \
finer-grained-fallbacks-rgb24-ref.png \
finer-grained-fallbacks-ps2-argb32-ref.png \
finer-grained-fallbacks-ps3-argb32-ref.png \
finer-grained-fallbacks-ps2-rgb24-ref.png \
finer-grained-fallbacks-ps3-rgb24-ref.png \
font-matrix-translation-ps2-argb32-ref.png \
font-matrix-translation-ps3-argb32-ref.png \
font-matrix-translation-ps2-rgb24-ref.png \
font-matrix-translation-ps3-rgb24-ref.png \
font-matrix-translation-ref.png \
font-matrix-translation-svg12-ref.png \
font-matrix-translation-svg11-ref.png \
font-matrix-translation-quartz-ref.png \
ft-text-antialias-none-ps2-argb32-ref.png \
ft-text-antialias-none-ps3-argb32-ref.png \
ft-text-antialias-none-ref.png \
ft-show-glyphs-positioning-ref.png \
ft-show-glyphs-positioning-pdf-ref.png \
ft-show-glyphs-positioning-ps2-ref.png \
ft-show-glyphs-positioning-ps3-ref.png \
ft-show-glyphs-positioning-svg12-ref.png \
ft-show-glyphs-positioning-svg11-ref.png \
ft-show-glyphs-table-ref.png \
ft-show-glyphs-table-ps2-ref.png \
ft-show-glyphs-table-ps3-ref.png \
ft-text-vertical-layout-type1-pdf-ref.png \
ft-text-vertical-layout-type1-ps2-ref.png \
ft-text-vertical-layout-type1-ps3-ref.png \
ft-text-vertical-layout-type1-ref.png \
ft-text-vertical-layout-type1-svg12-ref.png \
ft-text-vertical-layout-type1-svg11-ref.png \
ft-text-vertical-layout-type3-pdf-ref.png \
ft-text-vertical-layout-type3-ps2-ref.png \
ft-text-vertical-layout-type3-ps3-ref.png \
ft-text-vertical-layout-type3-ref.png \
ft-text-vertical-layout-type3-svg12-ref.png \
ft-text-vertical-layout-type3-svg11-ref.png \
get-group-target-ref.png \
glitz-surface-source-ref.png \
glyph-cache-pressure-ref.png \
glyph-cache-pressure-ps2-ref.png \
glyph-cache-pressure-ps3-ref.png \
glyph-cache-pressure-quartz-ref.png \
gradient-alpha-pdf-argb32-ref.png \
gradient-alpha-pdf-rgb24-ref.png \
gradient-alpha-ps2-argb32-ref.png \
gradient-alpha-ps3-argb32-ref.png \
gradient-alpha-ps2-rgb24-ref.png \
gradient-alpha-ps3-rgb24-ref.png \
gradient-alpha-ref.png \
gradient-alpha-rgb24-ref.png \
gradient-constant-alpha-pdf-argb32-ref.png \
gradient-constant-alpha-pdf-rgb24-ref.png \
gradient-constant-alpha-ps3-ref.png \
gradient-constant-alpha-ps3-rgb24-ref.png \
gradient-constant-alpha-ref.png \
gradient-constant-alpha-rgb24-ref.png \
gradient-zero-stops-ref.png \
gradient-zero-stops-rgb24-ref.png \
group-paint-ref.png \
image-surface-source-ref.png \
infinite-join-ref.png \
infinite-join-ps2-ref.png \
infinite-join-ps3-ref.png \
large-clip-ref.png \
large-font-ref.png \
large-source-ref.png \
leaky-dash-ps2-argb32-ref.png \
leaky-dash-ps3-argb32-ref.png \
leaky-dash-ps2-rgb24-ref.png \
leaky-dash-ps3-rgb24-ref.png \
leaky-dash-quartz-ref.png \
leaky-dash-ref.png \
leaky-dashed-rectangle-ref.png \
leaky-dashed-rectangle-ps2-ref.png \
leaky-dashed-rectangle-ps3-ref.png \
leaky-polygon-ref.png \
leaky-polygon-ps2-ref.png \
leaky-polygon-ps3-ref.png \
linear-gradient-reflect-ref.png \
linear-gradient-reflect-pdf-argb32-ref.png \
linear-gradient-reflect-pdf-rgb24-ref.png \
linear-gradient-reflect-ps3-ref.png \
linear-gradient-reflect-quartz-ref.png \
linear-gradient-pdf-ref.png \
linear-gradient-ps3-ref.png \
linear-gradient-quartz-ref.png \
linear-gradient-ref.png \
linear-gradient-svg12-ref.png \
linear-gradient-svg11-ref.png \
line-width-ref.png \
line-width-scale-ps2-ref.png \
line-width-scale-ps3-ref.png \
line-width-scale-quartz-ref.png \
line-width-scale-ref.png \
long-dashed-lines-ref.png \
long-dashed-lines-ps2-ref.png \
long-dashed-lines-ps3-ref.png \
long-dashed-lines-quartz-ref.png \
long-lines-ref.png \
mask-alpha-ref.png \
mask-alpha-svg11-argb32-ref.png \
mask-alpha-svg12-argb32-ref.png \
mask-alpha-rgb24-ref.png \
mask-alpha-quartz-argb32-ref.png \
mask-ctm-ref.png \
mask-ctm-rgb24-ref.png \
mask-ctm-svg11-argb32-ref.png \
mask-ctm-svg12-argb32-ref.png \
mask-ref.png \
mask-rgb24-ref.png \
mask-pdf-argb32-ref.png \
mask-pdf-rgb24-ref.png \
mask-quartz-ref.png \
mask-quartz-rgb24-ref.png \
mask-surface-ctm-ref.png \
mask-surface-ctm-rgb24-ref.png \
mask-surface-ctm-svg11-argb32-ref.png \
mask-surface-ctm-svg12-argb32-ref.png \
mask-svg11-rgb24-ref.png \
mask-svg11-argb32-ref.png \
mask-svg12-rgb24-ref.png \
mask-svg12-argb32-ref.png \
mask-transformed-image-ref.png \
mask-transformed-similar-ref.png \
mask-transformed-similar-pdf-ref.png \
mask-transformed-similar-svg12-ref.png \
mask-transformed-similar-svg11-ref.png \
meta-surface-pattern-ref.png \
meta-surface-pattern-rgb24-ref.png \
meta-surface-pattern-pdf-ref.png \
meta-surface-pattern-pdf-rgb24-ref.png \
meta-surface-pattern-ps2-argb32-ref.png \
meta-surface-pattern-ps2-rgb24-ref.png \
meta-surface-pattern-ps3-argb32-ref.png \
meta-surface-pattern-ps3-rgb24-ref.png \
meta-surface-pattern-quartz-ref.png \
meta-surface-pattern-quartz-rgb24-ref.png \
meta-surface-pattern-svg11-argb32-ref.png \
meta-surface-pattern-svg11-rgb24-ref.png \
meta-surface-pattern-svg12-argb32-ref.png \
meta-surface-pattern-svg12-rgb24-ref.png \
miter-precision-ref.png \
miter-precision-ps2-ref.png \
miter-precision-ps3-ref.png \
move-to-show-surface-ref.png \
new-sub-path-ps2-argb32-ref.png \
new-sub-path-ps3-argb32-ref.png \
new-sub-path-ps2-rgb24-ref.png \
new-sub-path-ps3-rgb24-ref.png \
new-sub-path-quartz-ref.png \
new-sub-path-quartz-rgb24-ref.png \
new-sub-path-ref.png \
new-sub-path-rgb24-ref.png \
nil-surface-ref.png \
nil-surface-rgb24-ref.png \
operator-ref.png \
operator-rgb24-ref.png \
operator-alpha-ref.png \
operator-alpha-rgb24-ref.png \
operator-clear-quartz-ref.png \
operator-clear-quartz-rgb24-ref.png \
operator-clear-ref.png \
operator-clear-rgb24-ref.png \
operator-clear-pdf-argb32-ref.png \
operator-clear-pdf-rgb24-ref.png \
operator-source-pdf-argb32-ref.png \
operator-source-pdf-rgb24-ref.png \
operator-source-ref.png \
operator-source-rgb24-ref.png \
operator-source-quartz-ref.png \
operator-source-quartz-rgb24-ref.png \
over-above-source-ps2-argb32-ref.png \
over-above-source-ps3-argb32-ref.png \
over-above-source-quartz-ref.png \
over-above-source-quartz-rgb24-ref.png \
over-above-source-ref.png \
over-above-source-rgb24-ref.png \
over-around-source-ps2-argb32-ref.png \
over-around-source-ps3-argb32-ref.png \
over-around-source-ps2-rgb24-ref.png \
over-around-source-ps3-rgb24-ref.png \
over-around-source-quartz-ref.png \
over-around-source-quartz-rgb24-ref.png \
over-around-source-ref.png \
over-around-source-rgb24-ref.png \
over-below-source-ps2-argb32-ref.png \
over-below-source-ps3-argb32-ref.png \
over-below-source-ref.png \
over-below-source-rgb24-ref.png \
over-between-source-ps2-argb32-ref.png \
over-between-source-ps3-argb32-ref.png \
over-between-source-quartz-ref.png \
over-between-source-quartz-rgb24-ref.png \
over-between-source-ref.png \
over-between-source-rgb24-ref.png \
paint-ref.png \
paint-repeat-ref.png \
paint-source-alpha-pdf-argb32-ref.png \
paint-source-alpha-ref.png \
paint-source-alpha-svg12-ref.png \
paint-source-alpha-svg11-ref.png \
paint-with-alpha-ref.png \
paint-with-alpha-svg12-ref.png \
paint-with-alpha-svg11-ref.png \
paint-source-alpha-pdf-ref.png \
paint-with-alpha-pdf-ref.png \
pattern-getters-ref.png \
pdf-surface-source-ref.png \
pixman-rotate-ref.png \
pixman-rotate-rgb24-ref.png \
ps-surface-source-ref.png \
push-group-pdf-ref.png \
push-group-pdf-rgb24-ref.png \
push-group-ref.png \
push-group-rgb24-ref.png \
push-group-svg11-argb32-ref.png \
push-group-svg12-argb32-ref.png \
radial-gradient-ref.png \
radial-gradient-pdf-ref.png \
radial-gradient-quartz-ref.png \
radial-gradient-svg12-ref.png \
radial-gradient-svg11-ref.png \
random-intersections-ref.png \
random-intersections-ps2-ref.png \
random-intersections-ps3-ref.png \
random-intersections-quartz-ref.png \
rgb24-ignore-alpha-ref.png \
rectangle-rounding-error-ref.png \
rectilinear-fill-ref.png \
rectilinear-miter-limit-ref.png \
rectilinear-miter-limit-ps2-ref.png \
rectilinear-miter-limit-ps3-ref.png \
rectilinear-stroke-ref.png \
reflected-stroke-ref.png \
reflected-stroke-ps2-ref.png \
reflected-stroke-ps3-ref.png \
reflected-stroke-quartz-ref.png \
rel-path-quartz-ref.png \
rel-path-quartz-rgb24-ref.png \
rel-path-ps2-rgb24-ref.png \
rel-path-ps3-rgb24-ref.png \
rel-path-ref.png \
rel-path-rgb24-ref.png \
rotate-image-surface-paint-pdf-rgb24-ref.png \
rotate-image-surface-paint-ps2-ref.png \
rotate-image-surface-paint-ps3-ref.png \
rotate-image-surface-paint-pdf-argb32-ref.png \
rotate-image-surface-paint-quartz-ref.png \
rotate-image-surface-paint-ref.png \
rotate-image-surface-paint-svg12-ref.png \
rotate-image-surface-paint-svg11-ref.png \
scale-down-source-surface-paint-ref.png \
scale-source-surface-paint-pdf-argb32-ref.png \
scale-source-surface-paint-ref.png \
scale-source-surface-paint-rgb24-ref.png \
scale-source-surface-paint-svg11-argb32-ref.png \
scale-source-surface-paint-svg11-rgb24-ref.png \
scale-source-surface-paint-svg12-argb32-ref.png \
scale-source-surface-paint-svg12-rgb24-ref.png \
scale-source-surface-paint-pdf-rgb24-ref.png \
stroke-ctm-caps-ref.png \
stroke-ctm-caps-quartz-ref.png \
select-font-face-ref.png \
select-font-face-ps2-ref.png \
select-font-face-ps3-ref.png \
select-font-face-quartz-ref.png \
self-copy-ref.png \
self-copy-ps2-ref.png \
self-copy-ps3-ref.png \
self-copy-overlap-ref.png \
self-copy-overlap-rgb24-ref.png \
self-intersecting-ref.png \
self-intersecting-rgb24-ref.png \
set-source-ref.png \
set-source-rgb24-ref.png \
set-source-svg11-argb32-ref.png \
set-source-svg12-argb32-ref.png \
show-glyphs-many-ref.png \
show-text-current-point-ref.png \
show-text-current-point-ps2-ref.png \
show-text-current-point-ps3-ref.png \
show-text-current-point-quartz-ref.png \
skew-extreme-ref.png \
skew-extreme-ps2-ref.png \
skew-extreme-ps3-ref.png \
smask-ref.png \
smask-pdf-ref.png \
smask-ps2-ref.png \
smask-ps3-ref.png \
smask-svg12-ref.png \
smask-svg11-ref.png \
smask-fill-ref.png \
smask-fill-pdf-ref.png \
smask-fill-svg12-ref.png \
smask-fill-svg11-ref.png \
smask-image-mask-ref.png \
smask-image-mask-pdf-ref.png \
smask-mask-ref.png \
smask-mask-pdf-ref.png \
smask-mask-svg12-ref.png \
smask-mask-svg11-ref.png \
smask-paint-ref.png \
smask-paint-pdf-ref.png \
smask-paint-svg12-ref.png \
smask-paint-svg11-ref.png \
smask-stroke-ref.png \
smask-stroke-pdf-ref.png \
smask-text-ref.png \
smask-text-pdf-ref.png \
smask-text-ps2-ref.png \
smask-text-ps3-ref.png \
smask-text-svg12-ref.png \
smask-text-svg11-ref.png \
stroke-image-ref.png \
stroke-image-pdf-ref.png \
stroke-image-ps2-ref.png \
stroke-image-ps3-ref.png \
stroke-image-quartz-ref.png \
solid-pattern-cache-stress-ref.png \
source-clip-ref.png \
source-clip-scale-quartz-ref.png \
source-clip-scale-ps2-argb32-ref.png \
source-clip-scale-ps3-argb32-ref.png \
source-clip-scale-ps2-rgb24-ref.png \
source-clip-scale-ps3-rgb24-ref.png \
source-clip-scale-ref.png \
source-clip-scale-svg12-ref.png \
source-clip-scale-svg11-ref.png \
source-clip-scale-pdf-ref.png \
source-surface-scale-paint-ref.png \
source-surface-scale-paint-rgb24-ref.png \
stroke-ctm-caps-ps2-ref.png \
stroke-ctm-caps-ps3-ref.png \
surface-pattern-big-scale-down-ref.png \
surface-pattern-pdf-argb32-ref.png \
surface-pattern-ps2-argb32-ref.png \
surface-pattern-ps3-argb32-ref.png \
surface-pattern-ref.png \
surface-pattern-scale-down-pdf-argb32-ref.png \
surface-pattern-scale-down-ps2-argb32-ref.png \
surface-pattern-scale-down-ps3-argb32-ref.png \
surface-pattern-scale-down-ref.png \
surface-pattern-scale-down-quartz-ref.png \
surface-pattern-scale-up-pdf-argb32-ref.png \
surface-pattern-scale-up-ps2-argb32-ref.png \
surface-pattern-scale-up-ps3-argb32-ref.png \
surface-pattern-scale-up-ref.png \
surface-pattern-svg12-ref.png \
surface-pattern-svg11-ref.png \
svg-surface-source-ref.png \
text-antialias-gray-ref.png \
text-antialias-gray-quartz-ref.png \
text-antialias-none-ref.png \
text-antialias-none-quartz-ref.png \
text-antialias-subpixel-ref.png \
text-antialias-subpixel-quartz-ref.png \
text-glyph-range-ref.png \
text-glyph-range-rgb24-ref.png \
text-pattern-ps3-argb32-ref.png \
text-pattern-ps3-rgb24-ref.png \
text-pattern-ref.png \
text-pattern-rgb24-ref.png \
text-pattern-svg11-argb32-ref.png \
text-pattern-svg11-rgb24-ref.png \
text-pattern-svg12-argb32-ref.png \
text-pattern-svg12-rgb24-ref.png \
text-pattern-pdf-argb32-ref.png \
text-pattern-pdf-rgb24-ref.png \
text-pattern-quartz-ref.png \
text-pattern-quartz-rgb24-ref.png \
text-rotate-ref.png \
text-rotate-pdf-ref.png \
text-rotate-ps2-ref.png \
text-rotate-ps3-ref.png \
text-rotate-svg12-ref.png \
text-rotate-svg11-ref.png \
text-rotate-quartz-ref.png \
text-transform-ref.png \
text-transform-pdf-ref.png \
text-transform-ps2-ref.png \
text-transform-ps3-ref.png \
transforms-ref.png \
transforms-ps2-ref.png \
transforms-ps3-ref.png \
translate-show-surface-ref.png \
trap-clip-quartz-ref.png \
trap-clip-quartz-rgb24-ref.png \
trap-clip-ps3-argb32-ref.png \
trap-clip-ps3-rgb24-ref.png \
trap-clip-ref.png \
trap-clip-rgb24-ref.png \
trap-clip-pdf-argb32-ref.png \
trap-clip-pdf-rgb24-ref.png \
unantialiased-shapes-ref.png \
unantialiased-shapes-quartz-ref.png \
unbounded-operator-ref.png \
unbounded-operator-rgb24-ref.png \
user-font-ref.png \
user-font-ps2-ref.png \
user-font-ps3-ref.png \
user-font-svg12-ref.png \
user-font-svg11-ref.png \
user-font-proxy-ref.png \
user-font-proxy-pdf-ref.png \
user-font-proxy-ps2-ref.png \
user-font-proxy-ps3-ref.png \
user-font-proxy-svg12-ref.png \
user-font-proxy-svg11-ref.png \
user-font-rescale-ref.png \
user-font-rescale-ps2-ref.png \
user-font-rescale-ps3-ref.png \
user-font-rescale-svg12-ref.png \
user-font-rescale-svg11-ref.png \
unbounded-operator-quartz-ref.png \
unbounded-operator-quartz-rgb24-ref.png \
xlib-expose-event-ref.png \
xlib-surface-source-ref.png \
zero-alpha-ref.png
EXTRA_DIST += \
6x13.pcf \
make-html.pl \
romedalen.png \
surface-source.c \
$(REFERENCE_IMAGES)
# Any test for which the code committed to CVS is expected to fail
# should be listed here.
#
# This way, we can avoid being bothered by reports of bugs we are
# aware of, but users can still report when tests start behaving in
# unexpected ways on their system.
#
# Of course, before any "release" of cairo we should eliminate
# everything from this list by fixing the bugs. (We don't necessarily
# have to be that strict for "snapshots" though.)
#
# Analysis of XFAIL errors:
# alpha-similar - discrepancy between backends in applying color
# components of a pure alpha surface
# big-line - range overflow of fixed-point
# big-trap - range overflow of fixed-point
# degenerate-path - undefined behaviour in PS, needs path editing to
# convert degenerate segments into circles/rectangles
# as expected by cairo
# device-offset-scale - complication of pre-multiplying device_offset
# into the pattern_matrix and then requiring futher
# manipulation for SVG
# extend-pad - lacks implementation in pixman and consequently used
# as an excuse for lack of support in other backends
# fallback-resolution - The essential problem here is that the meta-surface
# has recorded a sequence of operations with one device
# transformation, and we attempt to replay it with
# another (basically a scale-factor for the falback
# resolution). Carl begun to look at this with his
# chain-of-bugs, but the can of worms is much bigger.
# It appears to be a design flaw in the meta-surface
# that may spread further...
# My solution would be to lock Behad and Adrian in a
# room, with Carl as a moderator and not let them out
# until they have come up with an interface and
# semantics that actually work. :-)
# long-lines - range overflow of fixed-point
# self-copy-overlap - vector surfaces take snapshot of patterns in contrast
# to the raster backends which don't. One solution
# would be to clone overlapping areas of dst/source, so
# patterns were effectively snapshotted across all
# backends.
# self-intersecting - incremental trapezoidation of strokes can generate
# overlapping traps. Needs self-intersection analysis
# on cairo_traps_t after strokes.
# Test case should also be expanded to hit special-case
# tessellators as well.
# surface-pattern* - old bugs in pixman, but fails PS/PDF due to lack of
# /Interpolate support - which causes a half-pixel
# shift in GS (and consequently virtually every
# image/fallback-image using test to FAIL).
XFAIL_TESTS = \
alpha-similar$(EXEEXT) \
big-line$(EXEEXT) \
big-trap$(EXEEXT) \
degenerate-path$(EXEEXT) \
device-offset-scale$(EXEEXT) \
extend-pad$(EXEEXT) \
fallback-resolution$(EXEEXT) \
long-lines$(EXEEXT) \
self-copy-overlap$(EXEEXT) \
self-intersecting$(EXEEXT) \
surface-pattern$(EXEEXT) \
surface-pattern-big-scale-down$(EXEEXT) \
surface-pattern-scale-down$(EXEEXT) \
surface-pattern-scale-up$(EXEEXT)
# Any test that doesn't generate a log file goes here
NOLOG_TESTS = \
fallback-resolution \
font-options \
multi-page \
pdf-features \
png \
ps-features \
svg-clip \
svg-surface \
toy-font-face \
user-data
# A hook that summarises the failures
# We need to both force make to keep going after failures and to disable the
# jobserver (parallel builds).
check: AM_MAKEFLAGS+=-k -j1
check-local:
@FAILED_TESTS=""; \
for t in $(TESTS:$(EXEEXT)=.log); do \
if grep -e '\<FAIL\>' $$t >/dev/null 2>&1; then \
FAILED_TESTS="$$FAILED_TESTS $${t%.log}"; \
fi; \
done; \
if test -n "$$FAILED_TESTS"; then \
echo "Failed tests:"; \
surfaces=""; \
for t in $$FAILED_TESTS; do \
echo -n " $$t: "; \
grep -e '\<FAIL\>' $$t.log | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq | tr '\n' ' '; \
echo; \
for s in `grep -e '\<FAIL\>' $$t.log | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq`; do \
ss=`echo $$s | tr '-' '_'`; \
tt=`echo $$t | tr '-' '_'`; \
eval $$ss=\""$${!ss} $$tt"\"; \
echo $$surfaces | grep $$ss >/dev/null || surfaces="$$surfaces $$ss"; \
done; \
done; \
echo -n "Failures per surface - "; \
first=""; \
for s in $$surfaces; do \
ss=`echo $$s | tr '_' '-'`; \
test -n "$$first" && echo -n ", "; \
cnt=`echo $${!s} | wc -w`; \
echo -n "$$ss: $$cnt"; \
first="false"; \
done; \
echo "."; \
for s in $$surfaces; do \
ss=`echo $$s | tr '_' '-'`; \
cnt=`echo $${!s} | wc -w`; \
echo -n " $$ss [$$cnt]: "; \
echo $${!s} | tr '_' '-'; \
done; \
fi
AM_CPPFLAGS = \
-I$(srcdir) \
-I$(srcdir)/pdiff \
-I$(top_srcdir)/boilerplate \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
$(CAIRO_CFLAGS)
EXTRA_LTLIBRARIES += libcairotest.la
libcairotest_la_SOURCES =\
buffer-diff.c \
buffer-diff.h \
cairo-test.c \
cairo-test.h
libcairotest_la_LIBADD =\
$(top_builddir)/test/pdiff/libpdiff.la \
$(top_builddir)/boilerplate/libcairoboilerplate.la \
$(top_builddir)/src/libcairo.la \
$(CAIRO_LDADD)
LDADD = $(CAIRO_LDADD) libcairotest.la
$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
$(top_builddir)/src/libcairo.la:
cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
$(top_builddir)/test/pdiff/libpdiff.la:
cd $(top_builddir)/test/pdiff && $(MAKE) $(AM_MAKEFLAGS) libpdiff.la
if HAVE_PTHREAD
LDADD += -lpthread
endif
check_PROGRAMS += imagediff png-flatten
if BUILD_ANY2PPM
check_PROGRAMS += any2ppm
any2ppm_CFLAGS = $(POPPLER_CFLAGS) $(LIBRSVG_CFLAGS)
# add LDADD, so poppler/librsvg uses "our" cairo
any2ppm_LDFLAGS = $(CAIRO_TEST_UNDEFINED_LDFLAGS)
any2ppm_LDADD = $(LDADD) $(POPPLER_LIBS) $(LIBRSVG_LIBS)
endif
if CAIRO_CAN_TEST_PDF_SURFACE
check_PROGRAMS += pdf2png
pdf2png_CFLAGS = $(POPPLER_CFLAGS)
# add LDADD, so poppler uses "our" cairo
pdf2png_LDFLAGS = $(CAIRO_TEST_UNDEFINED_LDFLAGS)
pdf2png_LDADD = $(LDADD) $(POPPLER_LIBS)
endif
if CAIRO_CAN_TEST_SVG_SURFACE
check_PROGRAMS += svg2png
svg2png_CFLAGS = $(LIBRSVG_CFLAGS)
# add LDADD, so librsvg uses "our" cairo
svg2png_LDFLAGS = $(CAIRO_TEST_UNDEFINED_LDFLAGS)
svg2png_LDADD = $(LDADD) $(LIBRSVG_LIBS)
endif
EXTRA_PROGRAMS += $(TESTS) $(DISABLED_TESTS)
# Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
# one can limit tested targets both through CAIRO_TEST_TARGET env var
# and TARGETS make var on the command line. Same for the rest.
TARGETS = $(CAIRO_TEST_TARGET)
TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE)
NUM_THREADS = $(CAIRO_TEST_NUM_THREADS)
# Same about ENV vs CAIRO_TEST_ENV. ENV is used with "make run" only
ENV = $(CAIRO_TEST_ENV)
TESTS_ENVIRONMENT = CAIRO_XFAIL_TESTS="$(XFAIL_TESTS:$(EXEEXT)=)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)" CAIRO_TEST_NUM_THREADS="$(NUM_THREADS)" $(ENV)
EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
VALGRIND_FLAGS = \
--tool=memcheck --suppressions=$(srcdir)/.valgrind-suppressions \
--leak-check=yes --show-reachable=yes $(EXTRA_VALGRIND_FLAGS)
CLEANFILES += \
valgrind-log \
index.html \
ref.hash \
png-test.png \
svg-surface-source.svg \
pdf-surface-source.pdf \
ps-surface-source.ps \
$(NULL)
# This used to be a simple 'echo ${RM} *.ps *.pdf *.svg *.etc', but
# most systems cannot handle all of our clean files together.
# Then it became a fancy find using many GNU extensions, but then the ugly
# reality of portability was raised and it became....
clean-local: clean-caches
-${FIND} . -name '*-out.*' -print | ${XARGS} ${RM}
-${FIND} . -name '*-diff.png' -print | ${XARGS} ${RM}
-${FIND} . -name '*.log' -print | ${XARGS} ${RM}
-${FIND} . -name '*.[is]' -print | ${XARGS} ${RM}
clean-caches:
-${FIND} . -name '*-pass.*' -print | ${XARGS} ${RM}
-${FIND} . -name '*-fail.*' -print | ${XARGS} ${RM}
# The following definitions both should work.
#FAILED_TESTS = `grep -l '\<FAIL\>' $(TESTS:$(EXEEXT)=.log) 2>/dev/null | sed -e 's/[.]log$$//' | xargs echo`
FAILED_TESTS = `grep -l '\<FAIL\>' $(TESTS:$(EXEEXT)=.log) 2>/dev/null | tr '\n' ' ' | sed -e 's/[.]log */ /g; s/^ //; s/ $$//'`
recheck = check TESTS="$(FAILED_TESTS)"
# Re-checks all failed tests, i.e. tests with a log file that has a failure
recheck:
@echo Re-checking failed tests
@$(MAKE) $(AM_MAKEFLAGS) $(recheck)
# Checks tests and creates index.html.
# Target doesn't fail if tests fail.
test:
@$(MAKE) $(AM_MAKEFLAGS) check; \
$(MAKE) $(AM_MAKEFLAGS) html
# Re-checks tests and creates index.html.
# Target doesn't fail if tests fail.
retest:
@TESTS="$(FAILED_TESTS)"; \
$(MAKE) $(AM_MAKEFLAGS) TESTS="$$TESTS" check; \
$(MAKE) $(AM_MAKEFLAGS) TESTS="$$TESTS" html
# Make index.html with no dependency tracking.
html-local:
@echo Creating index.html
@perl $(srcdir)/make-html.pl $(TESTS:$(EXEEXT)=.log) > index.html
# Make index.html with no dependency tracking, containing only the failed tests.
rehtml:
@$(MAKE) $(AM_MAKEFLAGS) TESTS="$(FAILED_TESTS)" html
# Run tests under a tool specified by TOOL. For example, make run TOOL=gdb
run:
$(MAKE) $(AM_MAKEFLAGS) check TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) $(top_builddir)/libtool --mode=execute env $(TOOL)'
# Check tests under valgrind. Saves log to valgrind-log
check-valgrind:
$(MAKE) $(AM_MAKEFLAGS) check TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) $(top_builddir)/libtool --mode=execute valgrind $(VALGRIND_FLAGS)' 2>&1 | tee valgrind-log
$(TESTS): $(check_PROGRAMS)
%.log: % $(check_PROGRAMS)
-./$<
NOLOG_TESTS_LOG = $(NOLOG_TESTS:=.log)
$(NOLOG_TESTS_LOG):
@echo dummy > $@
index.html: $(srcdir)/make-html.pl $(TESTS:$(EXEEXT)=.log)
@echo Creating index.html
@perl $^ > $@
# Identify identical reference images
check-ref-dups:
@LANG=C; \
( cd "$(scrdir)" && sha1sum *-ref.png | sort ) > ref.hash; \
join ref.hash ref.hash | grep -v -E '( .*-ref.png).*\1' | cut -d' ' -f 1-2 | sort -u
# Not exactly the best script in the world...
check-ref-missing:
@cd "$(srcdir)"; \
REFS=`git ls-files "*-ref.png"`; \
test x = "x$$REFS" && REFS=`ls *-ref.png`; \
ret=true; \
missing=""; \
for i in $$REFS; do \
echo "" $(REFERENCE_IMAGES) "" | grep -sq " $$i " || missing="$$missing $$i" ; \
done ; \
if test -n "$$missing"; then \
echo "*** Error: Sanity check failed"; \
echo "Some reference files are not included in the distribution."; \
echo "You probably need to add these to Makefile.am's REFERENCE_IMAGES."; \
echo "Missing: $$missing"; \
ret=false; \
fi >&2; \
missing=""; \
for i in $(REFERENCE_IMAGES); do \
echo "" $$REFS "" | grep -sq " $$i " || missing="$$missing $$i" ; \
done ; \
if test -n "$$missing"; then \
echo "*** Error: Sanity check failed"; \
echo "Some reference files included in the distribution do not exist"; \
echo "or are not in git. You probably want to add these to git first."; \
echo "Missing: $$missing"; \
ret=false; \
fi >&2; \
$$ret
release-verify-sane-tests: check-ref-missing
.PHONY: check-valgrind test recheck retest rehtml check-ref-dups check-ref-missing release-verify-sane-tests
EXTRA_DIST += Makefile.win32