diff --git a/test/Makefile.am b/test/Makefile.am index a9495dc5b..547e5d28e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -142,79 +142,6 @@ surface-source.c \ testtable.js \ reference -# 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-dash - needs path editing in PS to convert degenerate -# end-caps into the shapes as expected by cairo -# (Or maybe PS is the correct behaviour?) -# 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 further -# 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 recording-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 recording-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. :-) -# in-fill-empty-trapezoid The cairo_in_fill () function can sometimes -# produce false positives when the tessellator -# produces empty trapezoids and the query -# point lands exactly on a trapezoid edge. -# long-lines - range overflow of fixed-point -# scale-offset-image - loss of precision converting a cairo matrix to -# scale-offset-similar pixman's fixed point format. -# 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-big...- Strange, unexplained results for SVG/PS. -XFAIL_TESTS = \ -alpha-similar$(EXEEXT) \ -big-line$(EXEEXT) \ -big-trap$(EXEEXT) \ -degenerate-dash$(EXEEXT) \ -degenerate-path$(EXEEXT) \ -device-offset-scale$(EXEEXT) \ -extend-pad$(EXEEXT) \ -fallback-resolution$(EXEEXT) \ -in-fill-empty-trapezoid$(EXEEXT) \ -long-lines$(EXEEXT) \ -self-copy-overlap$(EXEEXT) \ -self-intersecting$(EXEEXT) \ -surface-pattern-big-scale-down$(EXEEXT) \ -$(NULL) - # Any test that doesn't generate a log file goes here NOLOG_TESTS = \ fallback-resolution \ diff --git a/test/alpha-similar.c b/test/alpha-similar.c index a9411d119..86c6ae39d 100644 --- a/test/alpha-similar.c +++ b/test/alpha-similar.c @@ -60,6 +60,10 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* + * XFAIL: discrepancy between backends in applying color components of a pure + * alpha surface + */ CAIRO_TEST (alpha_similar, "Tests creation of similar alpha surfaces" "\nApplication of a pure-alpha similar source is inconsistent across backends.", diff --git a/test/big-trap.c b/test/big-trap.c index 507e0e5ef..5e11237a8 100644 --- a/test/big-trap.c +++ b/test/big-trap.c @@ -82,6 +82,7 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* XFAIL: range overflow of fixed-point */ CAIRO_TEST (big_trap, "Test oversize trapezoid with a clip region" "\nTest needs to be adjusted to trigger the original bug", diff --git a/test/degenerate-dash.c b/test/degenerate-dash.c index c13792f52..12cd0c7ed 100644 --- a/test/degenerate-dash.c +++ b/test/degenerate-dash.c @@ -77,6 +77,11 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* + * XFAIL: needs path editing in PS to convert degenerate + * end-caps into the shapes as expected by cairo (Or maybe PS is the correct + * behaviour?) + */ CAIRO_TEST (degenerate_dash, "Tests the behaviour of dashed segments that end on a off-on transition", "dash, degenerate", /* keywords */ diff --git a/test/degenerate-path.c b/test/degenerate-path.c index c6907300d..db53cbbdd 100644 --- a/test/degenerate-path.c +++ b/test/degenerate-path.c @@ -108,6 +108,10 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* + * XFAIL: undefined behaviour in PS, needs path editing to convert degenerate + * segments into circles/rectangles as expected by cairo + */ CAIRO_TEST (degenerate_path, "Tests the behaviour of degenerate paths with different cap types", "degenerate", /* keywords */ diff --git a/test/device-offset-scale.c b/test/device-offset-scale.c index 3df3d38f9..33784fa8b 100644 --- a/test/device-offset-scale.c +++ b/test/device-offset-scale.c @@ -65,6 +65,10 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* + * XFAIL: complication of pre-multiplying device_offset into the pattern_matrix + * and then requiring further manipulation for SVG + */ CAIRO_TEST (device_offset_scale, "Test that the device-offset transform is transformed by the ctm.", "device-offset", /* keywords */ diff --git a/test/in-fill-empty-trapezoid.c b/test/in-fill-empty-trapezoid.c index 2b345cb98..0797399c5 100644 --- a/test/in-fill-empty-trapezoid.c +++ b/test/in-fill-empty-trapezoid.c @@ -96,6 +96,11 @@ preamble (cairo_test_context_t *ctx) return ret; } +/* + * XFAIL: The cairo_in_fill () function can sometimes produce false positives + * when the tessellator produces empty trapezoids and the query point lands + * exactly on a trapezoid edge. + */ CAIRO_TEST (in_fill_empty_trapezoid, "Test that the tessellator isn't producing obviously empty trapezoids", "in, trap", /* keywords */ diff --git a/test/long-lines.c b/test/long-lines.c index 79fc98fba..69b64e9c4 100644 --- a/test/long-lines.c +++ b/test/long-lines.c @@ -74,6 +74,7 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* XFAIL: range overflow of fixed-point */ CAIRO_TEST (long_lines, "Test long lines" "\nLong lines are not drawn due to the limitations of the internal 16.16 fixed-point coordinates", diff --git a/test/scale-offset-image.c b/test/scale-offset-image.c index a6e575a0a..7243a0669 100644 --- a/test/scale-offset-image.c +++ b/test/scale-offset-image.c @@ -133,6 +133,7 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* XFAIL: loss of precision converting a cairo matrix to */ CAIRO_TEST (scale_offset_image, "Tests drawing surfaces under various scales and transforms", "surface, scale-offset", /* keywords */ diff --git a/test/self-copy-overlap.c b/test/self-copy-overlap.c index 2f49ab088..6e3b39c91 100644 --- a/test/self-copy-overlap.c +++ b/test/self-copy-overlap.c @@ -40,6 +40,11 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } +/* + * XFAIL: 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. + */ CAIRO_TEST (self_copy_overlap, "Tests painting to itself using itself as the source" "\nBackends treat this case inconsistently---vector backends are creating snapshots.",