[cairo-commit] 2 commits - test/cairo-test-runner.c test/Makefile.am test/scaled-font-zero-matrix.c

Jeff Muizelaar jrmuizel at kemper.freedesktop.org
Thu Dec 18 15:07:41 PST 2008


 test/Makefile.am               |    1 
 test/cairo-test-runner.c       |   12 +++++---
 test/scaled-font-zero-matrix.c |   59 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 4 deletions(-)

New commits:
commit 4567692326daf592ab432670c6d33b49f940dd35
Author: Jeff Muizelaar <jmuizelaar at mozilla.com>
Date:   Thu Dec 18 18:03:40 2008 -0500

    Add test creating a scaled font with a zero ctm matrix

diff --git a/test/Makefile.am b/test/Makefile.am
index db26762..7e067c8 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -150,6 +150,7 @@ test_sources = \
 	scale-offset-image.c				\
 	scale-offset-similar.c				\
 	scale-source-surface-paint.c			\
+	scaled-font-zero-matrix.c			\
 	stroke-ctm-caps.c				\
 	stroke-image.c				        \
 	select-font-face.c				\
diff --git a/test/scaled-font-zero-matrix.c b/test/scaled-font-zero-matrix.c
new file mode 100644
index 0000000..6948f39
--- /dev/null
+++ b/test/scaled-font-zero-matrix.c
@@ -0,0 +1,59 @@
+/*
+ * Copyright © 2008 Mozilla Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Mozilla Corporation not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. Mozilla Corporation makes no representations about the
+ * suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * MOZILLA CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL MOZILLA CORPORATION BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Authors: Jeff Muizelaar
+ */
+
+#include "cairo-test.h"
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+    cairo_font_face_t *font_face;
+    cairo_font_options_t *font_options;
+    cairo_scaled_font_t *scaled_font;
+    cairo_matrix_t identity;
+    cairo_matrix_t zero;
+
+    cairo_matrix_init_identity(&identity);
+
+    zero = identity;
+    cairo_matrix_scale(&zero, 0, 0);
+
+    font_face = cairo_get_font_face (cr);
+    font_options = cairo_font_options_create ();
+    cairo_get_font_options (cr, font_options);
+    scaled_font = cairo_scaled_font_create (font_face,
+	    &identity,
+	    &zero,
+	    font_options);
+    cairo_set_scaled_font (cr, scaled_font);
+    cairo_show_text (cr, "Hello");
+    return cairo_status (cr);
+}
+
+CAIRO_TEST (scaled_font_zero_matrix,
+	    "Test that scaled fonts with a degenerate matrix work",
+	    "zero, matrix, degenerate, scaled-font", /* keywords */
+	    NULL, /* requirements */
+	    0, 0,
+	    NULL, draw)
commit 18054ef00c69f62804e08734fd2c3286373b451f
Author: Jeff Muizelaar <jmuizelaar at mozilla.com>
Date:   Thu Dec 18 18:01:52 2008 -0500

    [test] Quartz doesn't like being forked
    
    When the cairo-test-suite forks CoreFoundation complains with:
    "The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
    When forked so avoid doing it in the test suite for now. In the future we should investigate
    the possibility of a work around.

diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c
index aec90ff..e604d0d 100644
--- a/test/cairo-test-runner.c
+++ b/test/cairo-test-runner.c
@@ -39,7 +39,11 @@
 
 #include <pixman.h> /* for version information */
 
-#if HAVE_FORK && HAVE_WAITPID
+/* Coregraphics doesn't seem to like being forked and reports:
+ * "The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec()."
+ * so we don't for on OS X */
+#define SHOULD_FORK HAVE_FORK && HAVE_WAITPID && !__APPLE__
+#if SHOULD_FORK
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -140,7 +144,7 @@ _list_free (cairo_test_list_t *list)
     }
 }
 
-#if HAVE_FORK && HAVE_WAITPID
+#if SHOULD_FORK
 static cairo_test_status_t
 _cairo_test_wait (pid_t pid)
 {
@@ -169,7 +173,7 @@ static cairo_test_status_t
 _cairo_test_runner_preamble (cairo_test_runner_t *runner,
 			     cairo_test_context_t *ctx)
 {
-#if HAVE_FORK && HAVE_WAITPID
+#if SHOULD_FORK
     if (! runner->foreground) {
 	pid_t pid;
 
@@ -195,7 +199,7 @@ _cairo_test_runner_draw (cairo_test_runner_t *runner,
 			 cairo_bool_t similar,
 			 int device_offset)
 {
-#if HAVE_FORK && HAVE_WAITPID
+#if SHOULD_FORK
     if (! runner->foreground) {
 	pid_t pid;
 


More information about the cairo-commit mailing list