Commit graph

98 commits

Author SHA1 Message Date
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
Chris Wilson
c0dee7964c test: Add a1-rasterisation
Check the rounding criteria when rasterising.
2010-06-17 08:55:19 +01:00
Chris Wilson
56d06b088b test: Add an aliasing test case.
Just a simple test in drawing neighbouring edges and looking for the
effects of aliasing.
2010-06-14 22:58:38 +01:00
Chris Wilson
4b39f02bf7 test: Add halo
halo uses text_path + stroke + (fill | show_text)  to generate a "halo"
around the string. This is to try to replicate a bug described by Ian
Britten in the PDF backend where the rendering of the show_text looked
distorted compared to the stroke.
2010-06-14 20:40:56 +01:00
Chris Wilson
cf426bce8e test: Add a simple coverage test.
This test case should be much clearer than half-coverage over what it
purports to actually test. In each pixel, it draws a single geometric
primitive that coverages a known percentage of the pixel and then we
measure how close the rasterisers are to that ideal.
2010-06-11 10:05:09 +01:00
Chris Wilson
1349728d1e test: Add partial coverage.
Another experiment in measuring consistency of rasterisation stratagems
across the backends.
2010-06-10 13:13:12 +01:00
Chris Wilson
85af0ec374 test: Add half-coverage to exercise the rasteriser with subpixel geometry. 2010-06-09 10:34:06 +01:00
Andrea Canciani
9b88b5dce5 test: add degenerate gradient and single stop tests
Add tests for degeneratate linear gradients (with start point equal
to the end point), degenerate radial gradients (start radius and end
radius equal to zero, same start and end circle) and gradients (both
linear and radial) with just a single stop.
2010-06-08 16:37:01 +02:00
Andrea Canciani
e8bc25fdb2 test: add linear-gradient-extend and radial-gradient-extend
Check that constant gradient to solid color optimization are only
applied if the extents permit it.
2010-05-14 22:26:40 +02:00
Benjamin Otte
ee32dfb3de test: Add a test for various zero mask operations 2010-05-13 12:11:05 +02:00
Chris Wilson
2e3acee410 test: Add gl-surface-source
Exercise using GL sources.
2010-05-06 14:38:55 +01:00
Chris Wilson
bf83bf00a7 test: Add subsurface-image-repeat
Test handling of source clipping with an image - principally to check
handling of mime types and zero-copy image snapshotting in the vector
surfaces and ensure that they work with subsurface patterns as well.
2010-05-06 10:53:48 +01:00
Chris Wilson
c6d7d054ca test: Add radial-gradient-mask
Exercise using radial gradients as a mask.
2010-05-05 10:44:43 +01:00
Chris Wilson
4dd92ef2bc test: Add subsurface-pad
Round out the subsurface tests with PAD.
2010-05-04 18:53:03 +01:00
Chris Wilson
85e3cffde1 test: Add subsurface-modify-{child,parent}
Add tests to ensure that modifications to the subsurface via the
original surface are tracked by the subsurface, i.e. that any snapshots
are detached upon modification of the parent as well as modification of
itself and vice versa.
2010-05-04 18:53:03 +01:00
Chris Wilson
8ded35fd69 ps: Enable native encoding of subsurface patterns.
Carefully handle subsurfaces of a recording surface through the analysis
and paginated surfaces so that we can generate a native pattern for the
vector backends, demonstrated by the PostScript backend.

Nothing remarkable, just a lot of bookkeeping to track the wrapped
surface types and to apply the correct offsets when generating the
subsurface pattern.
2010-04-30 10:16:24 +01:00
Benjamin Otte
1391403956 test: run xlib-expose-event test unconditionally 2010-04-28 13:15:09 +02:00
Chris Wilson
241ce933f8 test: Add clip-shape
cu found a bug when using clipping and fills with the image backend, but
it turns out to be the lost sign bug afflicting everything...

To trigger the bug requires evaluating the clip surface prior to using
in with _cairo_clip_combine_with_surface(). Which is taken along a
particular path when using a clip mask with non-pixel geometry on image,
but more easily hit by the fallback code.

Reported-by: <cairouser@yahoo.com>
2010-04-25 09:45:41 +01:00
Chris Wilson
567e485f28 test: Add clip-empty-group
Exercise a bug reported by Jeff Muizelaar whereby cairo_push_group() was
broken by everything being clipped out.
2010-04-23 14:47:51 +01:00
Benjamin Otte
5fed41ee2b test: Add test checking that all setters properly check surface->status
In particular, make sure that the setters when called on a const nil
surface don't try to set surface->status.
2010-04-14 22:45:18 +02:00
Chris Wilson
557016a86a test: Add clip-contexts
This should exercise a bug found by Jeff Muizelaar that
cairo-surface-clipper was mistakenly thinking that clip operations on a
second context was a no-op as the topmost clip path matched that of the
previous context.
2010-04-10 16:03:14 +01:00
Chris Wilson
697094488c test: Add inverse text
This is exercising a bug that I have introduced either in the xcb
backend or in the driver in my experimental branches. So simple, yet so
wrong.
2010-04-02 08:51:03 +01:00
Andrea Canciani
01e1821942 test: Add gradient-zero-stops-mask
Add a test to check that gradient with no stops are not considered
opaque by gstate (and thus masking with them is not optimized to
paint).
2010-03-31 12:14:25 +02:00
Chris Wilson
473e006ad6 test: Add a1-mask-sample
Test sampling positions with a NEAREST mask.
2010-03-06 18:12:36 +00:00
M Joonas Pihlaja
260d7f8ace test: Test downscaling and extending a surface pattern.
Franz Schmid reported a regression in 1.9.6 when downscaling
and using EXTEND_REPEAT for an image surface pattern.  This
patch adds such tests for every extend mode.
2010-02-27 17:41:28 +02:00
M Joonas Pihlaja
ebadc2ed08 test: Add tests covering more clip fast paths in groups.
The clip-group-shapes-* tests check that it doesn't
matter whether the clip path is set before or after
pushing a group using specific types of clip paths
(aligned/unaligned rectangles and general paths.)
2010-02-27 03:28:59 +02:00
Benjamin Otte
1897156d96 test: Add bug-bo-rectangular
Exercises a bug found in the special case rectangular tessellator with
colinear eo edges.
2010-02-23 08:54:39 +00:00
Chris Wilson
51047483f4 test: Add clip-twice-rectangle
Jeff Muizeelar found another bug with clipping whereby the clip was
been incorrectly discarded.
2010-02-12 12:24:01 +00:00
Chris Wilson
a4793d1331 test: Add linear-gradient-subset
It was observed that we never actually test the condition that the
gradient is only defined for a portion of its range, i.e. the starting
offset is >0 and the ending offset is <0. By definition the colour
between 0 and start offset is the start color, so check that this
behaviour is followed by all backends.
2010-02-07 19:27:32 +00:00
Chris Wilson
2a59220aa4 test: Add linear-step-function
Another bug identified by Jeff Muizelaar was that the bounds for a
zero-length (i.e. it started and stopped at the same point) were
miscomputed. This test case exercises that bug.

Note: I believe the output is wrong here when padding a zero-length
gradient. On the left it should be red, and on the right it should be
blue.
2010-02-02 16:31:36 +00:00
Chris Wilson
7dc464bb2b test: Add clip-empty-save
Jeff Muizelaar found a bug in _cairo_clip_init_copy() which was not
correctly propagating the all-clipped status when an empty clip was
saved in the gstate. This test case exercises that bug.
2010-02-02 16:31:36 +00:00
Benjamin Otte
58980b4ad6 build: Remove glitz surface
glitz is unmaintained and the GL surface is far superior anyway.
2010-01-27 09:56:14 +01:00
Chris Wilson
ca02b51ef6 test: Add an xcb surface source test 2010-01-22 23:01:51 +00:00
Chris Wilson
2edd2adafc test: Exercise scan converters with large rounded rectangles.
Having added a specialised scan converter on the premise that it should
be better at handling rounded rectangles, ensure that they are indeed
rendered correctly.
2010-01-22 23:01:51 +00:00
Chris Wilson
dc8290814c Add subsurface.
A subsurface is a region of another surface that may be used either to
restrict the writable area of a context or the readable extents of a
source. Whilst writing, access to the exterior of the subsurface is
prevented via clipping and when used as a source reads from the exterior
of the subsurface are governed via the extend mechanism of the pattern.
2010-01-22 23:01:50 +00:00