[cairo-commit] 3 commits - boilerplate/cairo-boilerplate.c RELEASING test/README

Carl Worth cworth at kemper.freedesktop.org
Tue Oct 28 17:20:03 PDT 2008


 RELEASING                       |    5 +++++
 boilerplate/cairo-boilerplate.c |    5 +++++
 test/README                     |   17 +++++++++++++++++
 3 files changed, 27 insertions(+)

New commits:
commit cec689eab628b59ee1d69e241c5d336760304ea0
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Oct 28 17:18:34 2008 -0700

    RELEASING: Suggest running 'make distcheck' against Xvfb.
    
    This avoids hitting driver-specific bugs in the X server, and is
    better than doing 'DISPLAY= make distcheck' which simply disables
    all xlib testing completely.

diff --git a/RELEASING b/RELEASING
index 58f2317..ae70ae6 100644
--- a/RELEASING
+++ b/RELEASING
@@ -20,6 +20,11 @@ Here are the steps to follow to create a new cairo release:
 	(But the tar file isn't actually ready yet, as we still have
 	some more steps to follow).
 
+	Note that it's allowed (and perhaps recommended) to run the
+	"make distcheck" step against an all-software X server such as
+	Xvfb to avoid getting tripped up by any	X-server-driver-specific
+	bugs. See test/README for details
+
 	If you get errors about local PLT entries, you get the list of
 	cairo entries with the error.  For each of these, a call to
 	slim_hidden_def and slim_hidden_proto is needed in the cairo
commit 0ca6ba18e398db7ed8f8bca5faa93d48aa3a4878
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Oct 28 17:15:42 2008 -0700

    Add note to test/README on running with Xvfb.
    
    This X server has been tested to run through the test suite with
    no unexpected failures, and it avoids hitting any X-driver-specific
    bugs.

diff --git a/test/README b/test/README
index 44a1117..57abef2 100644
--- a/test/README
+++ b/test/README
@@ -107,6 +107,23 @@ Here are some of the relevant details:
 
   * To test the ps backend, you will need ghostscript version 8.62.
 
+  * Testing the xlib backend is problematic since many X server
+    drivers have bugs that are exercised by the test suite. (Or, if
+    not actual bugs, differ slightly in their output in such a way
+    that the test suite will report errors.) This can be quite handy
+    if you want to debug an X server driver, but since most people
+    don't want to do that, another option is to run against a headless
+    X server that uses only software for all rendering. One such X
+    server is Xvfb which can be started like this:
+
+	Xfvb -screen 0 1280x1024x24 -ac -nolisten tcp :2
+
+    after which the test suite can be run against it like so:
+
+	DISPLAY=:2 make test
+
+    We have been using Xvfb for testing cairo releases and ensuring
+    that all tests behave as expected with this X server.
 
 What if I can't make my system match?
 -------------------------------------
commit eed67717649c343e42ce102a4d78a245dba48925
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Oct 28 17:12:15 2008 -0700

    Disable the svg12 target in boilerplate.
    
    This target was added to the boilerplate during 1.8.1. It currently
    shows many failures in the test suite. These failures likely fall
    into three different classes:
    
    	* Tests needing new svg12-specific reference images
    
    	* Tests exercising bugs in librsvg
    
    	* Tests exercising existing cairo bugs
    
    We haven't gone through the effort to separate these, but even for
    the tests that are exercising actual cairo bugs, these are likely
    bugs that existed in the cairo 1.8.0 release and not regressions.
    
    Because of that, in this commit I'm conditionally disabling the
    testing of the svg12 target. As soon as we increment the cairo
    version to 1.9.0 or higher, this target will get re-enabled
    automatically and we can begin the work to separate the tests as
    described above and also fix the bugs.

diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c
index 34b9133..13b14eb 100644
--- a/boilerplate/cairo-boilerplate.c
+++ b/boilerplate/cairo-boilerplate.c
@@ -525,6 +525,10 @@ static cairo_boilerplate_target_t targets[] =
       _cairo_boilerplate_svg_surface_write_to_png,
       _cairo_boilerplate_svg_cleanup,
       NULL, TRUE },
+/* Disable the svg12 testing for the 1.8.2 release, but in a way that it
+ * will come back on immediately afterward even if we forget to remove
+ * this condition. */
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 9, 0)
     { "svg12", NULL, CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1,
       _cairo_boilerplate_svg12_create_surface,
       _cairo_boilerplate_svg_force_fallbacks,
@@ -542,6 +546,7 @@ static cairo_boilerplate_target_t targets[] =
       _cairo_boilerplate_svg_cleanup,
       NULL, TRUE },
 #endif
+#endif
 #if CAIRO_HAS_BEOS_SURFACE
     /* BeOS sometimes produces a slightly different image. Perhaps this
      * is related to the fact that it doesn't use premultiplied alpha...


More information about the cairo-commit mailing list