[cairo] [PATCH] Don't mention XFAIL_TESTS anymore

Uli Schlachter psychon at znc.in
Sun Sep 15 05:24:12 PDT 2013

The variable XFAIL_TESTS is not used anymore since commit e90073f7ddc.

Instead, we now have special reference images that show the wrong output and the
test suite fails a test if it does not match the expected, wrong output.

Signed-off-by: Uli Schlachter <psychon at znc.in>
 test/Makefile.am | 73 --------------------------------------------------------
 test/README      | 19 +++++++--------
 2 files changed, 9 insertions(+), 83 deletions(-)

diff --git a/test/Makefile.am b/test/Makefile.am
index a9495dc..547e5d2 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -142,79 +142,6 @@ surface-source.c	\
 testtable.js		\

-# 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)		\
 # Any test that doesn't generate a log file goes here
 fallback-resolution		\
diff --git a/test/README b/test/README
index 3f19a5c..e8e7189 100644
--- a/test/README
+++ b/test/README
@@ -192,16 +192,16 @@ A new test case should be added by imitating the style of
an existing
 test. This means adding the following files:

-	new-bug-ref.png
+	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.
+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.am should be edited, adding new-bug.c to both the TESTS and
-XFAIL_TESTS lists and new-bug-ref.png to EXTRA_DIST. Add new-bug to
-.gitignore, and last but not least, don't forget to "git add" the new
+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
@@ -209,7 +209,7 @@ It's important for the regression suite to keep pace with
 of the library. So a new test should be added for each new feature.
 The work involved is similar the work described above for new bugs.
 The only distinction is that the test is expected to pass so it
-should not be added to the XFAIL_TESTS list.
+should not need a new-bug.xfail.png file.

 While working on a test
@@ -223,8 +223,7 @@ When a bug is fixed
 The fix should be verified by running the test suite which should
 result in an "unexpected pass" for the test of interest. Rejoice as
-appropriate, then remove the relevant file name from the XFAIL_TESTS
-variable in Makefile.am.
+appropriate, then remove the relevant xfail.png file from git.

 Before releasing

Bruce Schneier can read and understand Perl programs.

More information about the cairo mailing list