summaryrefslogtreecommitdiff
path: root/test/big-trap.c
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2006-11-22 16:52:18 -0800
committerCarl Worth <cworth@cworth.org>2006-11-22 16:52:18 -0800
commit02804773e7ef521adfbd26f90f303879198acde5 (patch)
treed94c1fe12efd44b0d5bba48c56577b8b21a75c87 /test/big-trap.c
parentfdbb820ece5e6ab970cf6a9b756eebf7283c0597 (diff)
downloadcairo-02804773e7ef521adfbd26f90f303879198acde5.tar.gz
give the big-trap test the XFAIL treatment.
We'll need to rewrite this test (and the way cairo is compiled for testing) before it can exercise the bug of interest. In the meantime, let's just give it an "expected failure" status.
Diffstat (limited to 'test/big-trap.c')
-rw-r--r--test/big-trap.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/test/big-trap.c b/test/big-trap.c
index b5e3255d0..e201b9898 100644
--- a/test/big-trap.c
+++ b/test/big-trap.c
@@ -27,9 +27,43 @@
static cairo_test_draw_function_t draw;
+/* This test was originally written to exercise a bug in pixman in
+ * which it would scribble all over memory when given a particular
+ * (and bogus) trapezoid. However, a recent change to
+ * _cairo_fixed_from_double changed the details of the bogus trapezoid
+ * (it overflows in a different way now), so the bug is being masked.
+ *
+ * According to Vladimir, (http://lists.freedesktop.org/archives/cairo/2006-November/008482.html):
+ *
+ * Before the change, the two trapezoids that were generated were:
+ *
+ * Trap[0]: T: 0x80000000 B: 0x80000003
+ * L: [(0x000a0000, 0x80000000) (0x00080000, 0x00080000)]
+ * R: [(0x01360000, 0x80000000) (0x01380000, 0x00080000)]
+ * Trap[1]: T: 0x80000003 B: 0x00080000
+ * L: [(0x000a0000, 0x80000000) (0x00080000, 0x00080000)]
+ * R: [(0x01360000, 0x80000000) (0x01380000, 0x00080000)]
+ *
+ * After the change, the L/R coordinates are identical for both traps, but
+ * the top and bottom change:
+ *
+ * Trap[0]: t: 0x80000000 b: 0xfda80003
+ * l: [(0x000a0000, 0x80000000) (0x00080000, 0x00080000)]
+ * r: [(0x01360000, 0x80000000) (0x01380000, 0x00080000)]
+ * Trap[1]: t: 0xfda80003 b: 0x00080000
+ * l: [(0x000a0000, 0x80000000) (0x00080000, 0x00080000)]
+ * r: [(0x01360000, 0x80000000) (0x01380000, 0x00080000)]
+ *
+ * I think the fix we want here is to rewrite this test to call
+ * directly into pixman with the trapezoid of interest, (which will
+ * require adding a new way to configure cairo for "testing" which
+ * will prevent the hiding of internal library symbols.
+ */
+
cairo_test_t test = {
"big-trap",
- "Test oversize trapezoid with a clip region",
+ "Test oversize trapezoid with a clip region"
+ "\nTest needs to be adjusted to trigger the original bug",
100, 100,
draw
};