Commit graph

132 commits

Author SHA1 Message Date
Chris Wilson
99c129dd13 test: Add record-extend
Exercise the extend modes with a clipped paint, because once upon a time
we had a bug...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-10 14:53:07 +01:00
Chris Wilson
4236821d11 test: Add unclosed-strokes
Checks that coincident end-points are not converted to joins. It briefly
passed through my mind that was a good thing...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-07 09:02:46 +01:00
Chris Wilson
37e1a1b3ed test: Add a1-sample
Ensures that only a box that covers the centre pixel is filled with
antialiasing disabled.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-07 09:02:46 +01:00
Chris Wilson
61c0f67ee0 test: Add joins-retrace
The complexity in this shape is that the stroke is reversed upon
itself and retraces the same path in the opposite direction.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 11:12:23 +01:00
Chris Wilson
93c9d4cefb test: Add an loopy I-bar stroker test
A second relatively simple closed concave shape, all the better for
debugging with.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 10:29:08 +01:00
Chris Wilson
b280114c5e test: Add join-star, another stroker exercise
A simple convex shape, useful for debugging.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 09:30:54 +01:00
Chris Wilson
3424e91ec7 test: Add a couple of tests to exercise stroking of short tail segments
Are the reference images correct? Discuss.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-05 17:27:59 +01:00
Chris Wilson
dd73fe9262 test: Add world-map from the perf-suite
As we use this a performance benchmark, it behooves us to check that we
are rendering it correctly.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-05 09:59:02 +01:00
Chris Wilson
953a4a2e55 test: Add an test case to exercise overlapping caps between dash segments
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-02 14:36:45 +01:00
Chris Wilson
b231bb0a0b test: Exercise extend modes with recording patterns
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-31 08:12:54 +01:00
Chris Wilson
1b888c4c3a test: Add horizontal clip test
Doesn't actually hit the code path but it should...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-27 19:49:47 +01:00
Chris Wilson
a69335a84e API: map-to-image and create-similar-image
A common requirement is the fast upload of pixel data. In order to
allocate the most appropriate image buffer, we need knowledge of the
destination. The most obvious example is that we could use a
shared-memory region for the image to avoid the transfer cost of
uploading the pixels to the X server. Similarly, gl, win32, quartz...

The other side of the equation is that for manual modification of a
remote surface, it would be more efficient if we can create a similar
image to reduce the transfer costs. This strategy is already followed
for the destination fallbacks and this merely exposes the same
capability for the application fallbacks.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-26 14:55:58 +01:00
Chris Wilson
e4b3f84d4c test: Add clip-intersect
Exercises a bug in the unbounded drawing of an empty polygon...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-24 13:05:24 +01:00
Chris Wilson
4d5c95f629 test: Exercise replaying basic painting paths
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-24 11:50:48 +01:00
Chris Wilson
9ab9ecfdbd test,perf: Another hatching!
This one illustrates the quadratic explosion lurking in the clipping
code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-19 00:32:45 +01:00
Chris Wilson
3a29365713 tests,perf: Add a hatchings clip-test
A benchmark to test how close we get to reducing paint+clip to an ordinary
fill, and to check correctness.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-18 10:31:25 +01:00
Chris Wilson
27692ca759 test: Add random-clips to stress test clipping
Not sure what the right results are, so refs will come later. The output
looks superficially right, but the *code* is known to be buggy...

(And hopefully this has captured a few of those bugs.)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-16 20:45:43 +01:00
Chris Wilson
2055732ffc tests: Add paint-clip-fill
A false reduction bug found by Taekyun Kim.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15 11:05:19 +01:00
Chris Wilson
524809759b tests: Add clip-complex-shape
Contributed by Taekyun Kim to exercise a major bug he found in the
treatment of complex clips.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15 11:05:19 +01:00
Chris Wilson
727a0092d1 test: Test a1 clipping semantics
If I've written the tests correctly, these should produce identical
images as the a1 rasterisation tests.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-13 12:35:51 +01:00
Uli Schlachter
5b8c01ec77 Add a test case that asserts on xcb
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-09 09:42:22 +02:00
Andrea Canciani
ffdfdf2fa9 test: Merge text-antialias-*
The test-antialias-* tests perform the same operation with just a
different antialias flag. Sharing the code ensures that they are kept
in sync and permits adding new flags combinations easily.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=14268
2011-06-25 10:32:45 +02:00
Andrea Canciani
acfc001685 test: Add extended-blend-solid tests
Unify extended-blend* tests and add a solid pattern version, which
crashes on the win32 backend.

Bug pointed out by Peter Frentrup <peter_frentrup@gmx.de> in
http://lists.cairographics.org/archives/cairo/2011-April/021908.html
2011-06-25 10:19:36 +02:00
Chris Wilson
1b33552a6d test: Add unaligned-box
Test the handling of the various pixel-alignment boundary points of
rectangles.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-01 18:09:48 +01:00
Andrea Canciani
4369255961 test: Add stroke-open-box
Add a new test to check that the stroking of a 3-sided box is not
"optimized" to a 4-sided box.

Test case based on the code by Simon Kellner in
https://bugs.freedesktop.org/show_bug.cgi?id=34560
2011-03-18 10:30:25 +01:00
Andrea Canciani
db04ab8f63 test: Add show-glyphs-advance
This new test (based on show-glyphs-many) checks that the glyphs
advances are respected along both axes.

9c0d761bfc introduced a bug which
regresses this test in quartz.

Thanks to Jeff Muizelaar for the report!
2011-03-18 09:41:55 +01:00
Benjamin Otte
0fc65a1008 Revert accidental checkin in last commit
Today is not my day...
2011-02-18 19:57:22 +01:00
Benjamin Otte
e46dc9e17a arc: Handle radius == 0 the same no matter the arc direction
Commit a0ea0b63fd fixed cairo_arc() but
did not apply the same patch to cairo_arc_negative(). This patch fixes
that oversight.
2011-02-18 19:51:44 +01:00
Benjamin Otte
303f56a2d3 test: Add line-width-overlap
Test case taken from the WebKit test suite, failure originally reported
by Zan Dobersek <zandobersek@gmail.com>. WebKit test is
LayoutTests/canvas/philip/tests/2d.path.rect.selfintersect.html
2011-02-17 18:17:08 +01:00
Benjamin Otte
4d4056872d tests: Add line-width-tolerance
Test case taken from the WebKit test suite, failure originally reported
by Zan Dobersek <zandobersek@gmail.com> at
https://bugs.webkit.org/show_bug.cgi?id=54471
2011-02-15 20:41:04 +01:00
Chris Wilson
fda784793e test: Attempt to capture out-of-bounds spans compositing bug
Attempt to provoke out-of-bounds accesses as demonstrated by
https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/710072

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-06 18:12:08 +00:00
Andrea Canciani
e0b741de90 test: Add group-state
The interaction between the group and the state API is currently
untested and buggy. This test tries to use them incorrectly and check
that cairo notices the problem and marks the cr object with an error
status.
2011-01-22 11:59:38 +01:00
Uli Schlachter
44095f3dde Add a test case for a bug in the xcb backend
This was found via cairo-perf-micro which sometimes triggered this bug in its
mask-similar_image-* test.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-17 22:21:20 +01:00
Andrea Canciani
2af0b0f5da test: Add white-in-noop
Exercise an incorrect optimization in cairo-surface.c. It replaces
with a noop any region-based fill with solid white source and an IN
operator.
2011-01-17 10:59:33 +01:00
Andrea Canciani
ada6057b8c test: New radial-gradient tests
The old radial gradient tests were actually drawing the same gradients
with different operators (OVER/SOURCE) and operations (paint/mask).

It is possible to refactor them to share the gradient construction
code. This makes it easy to change the gradient shape in all of them
to test more interesting combinations.

Instead of testing 16 generic positions we are now testing just 7
cases, which correspond to every possible combination of the relative
size and position of the two circles defining the gradient. In
particular we are now testing a constant radius gradient and gradients
with tangent circles.
2011-01-02 18:31:35 +01:00
Adrian Johnson
a8344f98e7 test: Add tests for mesh patterns
mesh-pattern tests a mesh pattern with non-opaque two overlapping
patches.

mesh-pattern-accuracy tests the accuracy of the color computed in each
point of a patch. It can point out defects in rasterizers which rely
on mesh subdivision only use the mesh shape instead of both shape and
color to decide when the tensor-product patches can be approximated
with Gouraud-shaded triangles.

mesh-pattern-conical is an example of how a conical gradient can be
approximated with a mesh pattern.

mesh-pattern-control-points tests a mesh pattern with control points
in non-default position to verify that their position affects the
color as expected.

mesh-pattern-fold tests a mesh pattern with a patch which folds along
both sides.

mesh-pattern-overlap tests a mesh pattern with a patch which folds
along just one side.

mesh-pattern-transformed tests a mesh pattern with non-identity
transform matrix.
2011-01-01 13:05:14 +01:00
Andrea Canciani
19b840a904 Keep makefiles in alphabetical order
Recording surfaces were at first called meta surfaces. When the name
was changed, makefiles were not updated to keep alphabetical order.
2011-01-01 13:05:12 +01:00
Andrea Canciani
65040d3e3f test: Add bug-extents
Add a test for the computation of approximate extents used by most
backends to esimate the region affected by drawing operations.

Based on:
http://lists.cairographics.org/archives/cairo/2010-December/021331.html
2010-12-14 22:18:27 +01:00
Andrea Canciani
17fef8c437 test: Add arc-infinite-loop
The handling of angles above 2pi in cairo_arc is not very solid and is
basically untested.

This test should ensure that huge inputs don't hang cairo.
2010-12-09 17:33:12 +01:00
Andrea Canciani
670eb260eb test: Add arc-looping-dash
The handling of angles above 2pi in cairo_arc is not very solid and is
basically untested.

This test should ensure that changes in the behavior will be noticed
by the testsuite.
2010-12-09 17:33:12 +01:00
Andrea Canciani
1038973083 test: Add rectilinear-grid
The rectilinear scan converter assumes disjoint rects as input, but
cairo-image passes intersecting rectangles to it.

This test shows that image and any backends passing through it for the
rasterization (fallbacks, vector backends whose renderer is
cairo-based) fail in compute the corners of intersecting rectangles
correctly.
2010-11-28 15:42:08 +01:00
Chris Wilson
05faebd584 test: Add a8-clear
Reported-by: Jeremy Moles <jeremy@emperorlinux.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-09-29 13:57:04 +01:00
Benjamin Otte
f54c51e75c test: Add subsurface-outside-target
This test defines the behavior of subsurfaces when they are created to
be bigger than their target.
2010-09-01 03:16:22 +02:00
Krzysztof Kosiński
a7762e3d65 tests: Add linear-gradient-large test
Shows large rounding errors in Pixman when computing gradients. Added as
a test to Cairo to catch similar issues in other backends.

https://bugs.freedesktop.org/show_bug.cgi?id=29470
2010-08-10 18:38:59 +02:00
Andrea Canciani
8f38d2aa29 test: improve clip-*-unbounded tests
Merge clip-*-unbounded tests and add self-intersections to the paths
that are drawn. This exposes a bug in the unbounded fixup code in quartz.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-08-06 19:36:37 +02:00
Chris Wilson
8546a87788 test: Add partial-clip-text
This exercises a bug found by Igor Nikitin:

  https://bugs.freedesktop.org/show_bug.cgi?id=29008
2010-07-12 16:33:38 +01:00
Benjamin Otte
cf0245c120 tests: Add a testcase that checks APIs work consistently
In particular, it checks that finished and surfaces in an error state do
not do bad things, like cause crashes.
So far this test only checks surface APIs, but it should be extended to
cover all APIs.

Please update this test when new APIs get added.

Motivated by https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/600622
2010-07-05 18:38:28 +02:00
Benjamin Otte
a9b8d1a94e test: Add a new test for a bug with device-offset tests
All the credit for this one goes to make distcheck
2010-06-25 13:48:04 +02:00
Soeren Sandmann
5c7e1dd690 test: Add an example of seams.
A pair of perfectly conjoint quads should not produce a seam when
accumulating into a temporary mask. Yet here is an example of where they
do!
2010-06-24 10:13:22 +01:00
Chris Wilson
f2645fa361 test: Add a1-bug
Capture a bug report from "cairouser" where a1 rasterisation is now
broken.
2010-06-17 15:46:50 +01:00