Commit graph

116 commits

Author SHA1 Message Date
Chris Wilson
1affc3192b [test] Add fill-alpha-pattern.
A slight variation on the simple fill-alpha theme is that if Company is
truly seeing a regression where we dither, the error on a constant
background will be small and might be missed by the test suite.
2008-09-08 13:34:45 +01:00
Chris Wilson
ee5e6c821f [test] Add fill-alpha.
Benjamin Otte reported "who broke rgba fills? they look dithered with
recent git."

This commit is the result of a skim through the test-suite which revealed
no single test responsible for checking the basic operation of
"set_rgba(); fill();".
2008-09-08 12:34:36 +01:00
Chris Wilson
7439c45039 [ps] Only use fallback images if the gradient has non-constant alpha.
If the gradient has constant alpha, then we can express it as a flattened
linear gradient. Otherwise, should the opacity vary across the gradient we
need to fallback.
2008-09-07 15:03:47 +01:00
Behdad Esfahbod
5926257770 Revamp the build system.
Quick summary of changes:

  - Move list of cairo source files out of src/Makefile.am and into
    src/Sources.mk,

  - Generate files src/Config.mk and src/Config.mk.win32 that choose
    the right set of source files and headers based on configured
    backends and features.  This drastically simplifies building
    using other build systems.  The src/Makefile.win32 file needs
    to be updated to reflect these changes.

  - Add README files to various directories,

  - Add toplevel HACKING file.
2008-09-02 20:24:08 -04:00
Chris Wilson
17a6d541f8 [test] Explicity save a fail image.
Be explicit about handling cached FAIL images, instead of relying on the
sequences of failed matches as the files are an external resource and we
can not guarantee their individual accessibility.

Note this also changes the filename, so you may want to run:
$ find -name '*-last.*' -print | xargs rm
after this checkout.
2008-08-21 08:45:06 +01:00
Chris Wilson
b9287e6669 [test] Cache last output and compare next time.
Compare the current output against a previous run to determine if there
has been any change since last time, and only run through imagediff if
there has been. For the vector surfaces, we can check the vector output
first and potentially skip the rasterisation. On my machine this reduces
the time for a second run from 6 minutes to 2m30s. As most of the time,
most test output will remain unchanged, so this seems to be a big win. On
unix systems, hard linking is used to reduce the amount of storage space
required - others will see about a three-fold increase in the amount of
disk used.  The directory continues to be a stress test for file selectors.

In order to reduce the changes between runs, the current time is no longer
written to the PNG files (justified by that it only exists as a debugging
aid) and the boilerplate tweaks the PS surface so that the creation date
is fixed. To fully realise the benefits here, we need to strip the
creation time from all the reference images...

The biggest problem with using the caches is that different runs of the
test suite can go through different code paths, introducing potential
Heisenbergs. If you suspect that caching is interfering with the test
results, use 'make -C test clean-caches check'.
2008-08-20 23:56:56 +01:00
Chris Wilson
776844eb9e [boilerplate] Daemonic conversion utility.
In order to achieve substantial speed improvements the external conversion
utilities are rewritten as a daemon that communicates with the test suite
over a local socket. This is faster as it avoids the libtool and dynamic
linker overhead for each invocation, the caches persist between tests and
we no longer require a round trip through libpng.

The daemon is started automatically by the test suite and if communication
cannot be established then it falls back to using a pipe to a normal
conversion utility. The daemon will then persist for 60 seconds waiting
for further connections.

Of course any memory leak (stares at poppler) is exacerbated.
2008-08-19 11:15:12 +01:00
Chris Wilson
322c3ef7f9 [.gitignore] Update list of tests 2008-08-08 10:09:55 +01:00
Behdad Esfahbod
7e57892983 Add toy font constructor and getters
New public API:

	cairo_toy_font_face_create()
	cairo_toy_font_face_get_family()
	cairo_toy_font_face_get_slant()
	cairo_toy_font_face_get_weight()
2008-08-08 03:01:14 -04:00
Behdad Esfahbod
ba62d2d30a Update .gitignore files 2008-06-26 16:20:58 -04:00
Carl Worth
b957beb0df Add large-font test to exercise a cairo-xlib bug.
The original bug report is here:

	corrupt glyph positions with large font
	https://bugzilla.redhat.com/show_bug.cgi?id=448104
2008-05-23 08:05:18 -07:00
Behdad Esfahbod
17f21ea307 [cairo-user-font] Implement user fonts 2008-05-10 01:21:45 +02:00
Chris Wilson
ff596c64fb [test] Add degenerate-arc
This test case is to exercise the divide-by-zero error reported by
Luiz Americo Pereira Camara <luizmed@oi.com.br>,
http://lists.cairographics.org/archives/cairo/2008-May/014054.html.
2008-05-06 14:31:02 +01:00
Chris Wilson
8742429c79 [test] Add test case for a leaky dashed rectangle.
Franz Schmid reported on the mailing list,
http://lists.cairographics.org/archives/cairo/2008-April/013912.html,
an issue with drawing a dashed rubber band in Scribus. The problem
appears when segments of the dashed rectangle are outside the image,
with the errant dash connecting the ends of the visible segments.
2008-04-29 15:19:40 +01:00
Chris Wilson
28a1dabed8 [test] Add a regression test for bug 10921
This bug first was fixed in 40558cb15e,
but then reintroduced in 9cfd82e87b, which
became part of the 1.6.2 quick release.

As penance to make sure I never repeat this same bug again, I offer this
test case which exercises the XSetClipMask(NULL) path and hopefully
simulates some 'typical' usage of cairo by GUI toolkits.
2008-04-11 23:57:01 +01:00
Chris Wilson
089bf98df1 [test] Add group-paint
The experience of running the entire test suite under cairo_push_group()
did at least reveal that there was a potential bug in the pdf backend.
This test is just the simplest of drawing operations - simply filling
the similar surface with solid blue, and then blitting that surface to
the destination.
2008-04-08 20:17:42 +01:00
Chris Wilson
33c54ed240 [test] Add large-source to exercise handling of massive images.
This test exercises https://bugzilla.mozilla.org/show_bug.cgi?id=424333.

The test is expected to fail due to issues with pixman, but cairo
should fail gracefully and neither crash nor cause XErrors.
2008-04-08 07:52:47 +01:00
Carl Worth
89567f9278 Add new filter-bilinear-extents test
This test exercises code that computes the extents of a surface
pattern with CAIRO_FILTER_BILINEAR, (where the filtering
effectively increases the extents of the pattern).

The original bug was reported by Owen Taylor here:

    bad clipping with EXTEND_NONE
    http://bugs.freedesktop.org/show_bug.cgi?id=15349
2008-04-04 18:28:23 -07:00
Chris Wilson
a4f94624b2 [test] Add bilevel image test case.
Add a simple test to exercise the embedding of an image with a bilevel
alpha channel into a postscript level 3 document.
2008-04-04 15:56:22 +01:00
Chris Wilson
a74db7e7bc [test] Exercise "soft" masks.
PDF has a concept of "soft" masks, for which it is able to construct a
mask out of PDF drawing operations. These tests exercise constructing
various masks using the high level drawing operations.
2008-04-04 13:40:37 +01:00
Carl Worth
8a78760f15 Add new ft-show-glyphs-table test to exercise recent glyph positioning bug fix
Interestingly, this test case does demonstrate that cairo-pdf
is fixed, (where without commit f6509933a4 the Y positions
of the glyphs were inverted); however, cairo-ps is failing
with this test, (all the glyphs are ending up on top of each
other).
2008-04-03 17:12:14 -07:00
Chris Wilson
7901eb29ef [test] Add a1-mask.
Add a variant of the a8-mask test case that exercises the FORMAT_A1 code
paths instead.
2008-04-03 15:41:31 +01:00
Chris Wilson
048160d44c [.gitignore] Add test/stroke-image 2008-04-03 15:41:31 +01:00
Carl Worth
ee3981fb92 Add new text-transform test
Previously, the test suite wasn't supplying any coverage of transformed
text rendering.
2008-03-24 16:26:28 -07:00
Adrian Johnson
179ab7d286 Add finer-grained-fallbacks test
This reproduces the bug in PS/PDF/Win32-printing where an unsupported
operation that is off the page causes an unsupported operation
assertion in the backend.
2008-03-24 11:43:29 +10:30
Adrian Johnson
8348668452 Add ft-show-glyphs-positioning test
This demonstrates the glyph positioning bug in the PS backend.
2008-03-21 16:14:56 +10:30
Adrian Johnson
8238a9fd4f Add stroke-ctm-caps to .gitignore 2008-03-15 22:08:52 +10:30
Chris Wilson
11a2444ec8 [cairo-png] Support generating CAIRO_FORMAT_RGB24 from PNGs.
If the PNG does not have an alpha channel, then create an opaque image.
2008-03-04 09:31:21 +00:00
Larry Ewing
307a7448ea Add big-line test showing a 24.8 failure 2008-02-28 15:02:23 -08:00
Carl Worth
c84ec58512 Add some missing .gitignore entries 2008-02-27 16:24:10 -08:00
Chris Wilson
65a8a27943 [test] Add reflected-stroke to exercise stroking with a reflected ctm.
Parts of the stroker depend upon whether we have in effect a reflection
matrix (one whose determinant < 0). This test incopororates the same
drawing under the a couple of reflections to exercise stroking under
matrices with both positive and negative determinants.
2008-02-26 17:06:18 +00:00
Chris Wilson
76f0613e5f [test] Add long-dashed-lines to exercise _cairo_box_intersects_line_segment().
Draw a few rectangles whose vertices are outside the bounds of the
surface, but whose segments cross the surface. This exercises the new
dashed stroker optimisation which tries to determine whether the line
segment is visible.
2008-02-26 17:05:28 +00:00
Chris Wilson
a4c960a93c [test] Add tests using each backend as a source.
Inspired by bug 7362 (painting a glitz surface onto an xlib surface
crashes cairo) and the lack of coverage for
_cairo_paginated_surface_acquire_source_image(), these tests attempt
to use each backend as a source surface for all the other backends.
For example, this checks that one can construct a PS file ready for
printing and then copy that surface to an image/xlib for previewing.
2008-02-15 13:50:41 +00:00
Carl Worth
d7fd3bd536 Add get-xrender-format test to test cairo_xlib_surface_get_xrender_format 2008-01-28 15:39:40 -08:00
Carl Worth
32efcc9462 Add new rectilinear-miter-limit test to demonstrate bug
We're failing to respect the miter limit in the rectilinear
stroke optimization code.
2008-01-21 16:32:48 -08:00
Carl Worth
50d0767c8b Add a1-image-sample and a1-traps-sample tests
Both of these currently fail due to bugs in the way pixman does
its sampling.
2008-01-18 12:41:57 -08:00
Chris Wilson
0086db893c [cairo-font-options] Treat NULL as a default cairo_font_options_t
Interpret a NULL cairo_font_options_t as the default values - i.e
as if it were a fresh pointer returned by cairo_font_options_create().
2008-01-17 22:38:02 +00:00
Chris Wilson
630536f176 [test/extend-*] Add various cairo_pattern_set_extend() test cases.
Add various test cases to exercise
_cairo_pattern_acquire_surface_for_surface(), most notably using similar
source surfaces to provide coverage of the non-image surface branch.
2008-01-17 17:45:17 +00:00
Chris Wilson
da9c43329a [test/in-fill-trapezoid] Add test to exercise _cairo_trap_contains().
A simple test to provide coverage of _cairo_trap_contains(), though
not yet seeking boundary conditions.
2008-01-17 11:50:51 +00:00
Chris Wilson
2621a323a0 [test/dash-curve] Add a new test case for dashes along splines.
Modify the dash-state test case and use curves instead of lines -
exercises _cairo_stroker_curve_to_dashed() and degenerate splines.
2008-01-16 23:24:41 +00:00
Chris Wilson
973d5fa8a5 [test] Sort TESTS
A couple of tests were out of order, causing a bit of confusion in the
user.
2008-01-12 11:04:03 +00:00
Keith Packard
81e029edda Add new miter-precision test. Checks miter joins at many scales.
This demonstrates an error in cairo where miter joins are replaced with
bevels at high scale factors due to a test added to eliminate wild miters
drawn when the line faces are nearly parallel.
2008-01-03 18:24:24 -08:00
Chris Wilson
6a7a07adf9 [test] Update distribution list of ref images.
Add missing *-ps-rgb24-ref.png images, and a couple of tests to .gitignore.
2008-01-03 17:35:06 +00:00
Vladimir Vukicevic
2c25033e14 [quartz] Handle creating 0x0 surfaces
Make all 0x0 surfaces be no-ops when used in a rendering operation.
2007-12-04 13:50:49 -08:00
Carl Worth
5e76f65284 Add degenerate-pen test case.
This demonstrates the assertion failure pointed out by
Benjamin Otte here:

	[cairo] Assertion 'i < pen->num_vertices' failed in 1.4.10
	http://lists.cairographics.org/archives/cairo/2007-August/011282.html
2007-10-30 17:00:33 -07:00
Chris Wilson
01eb169773 [test/.gitignore] Add *.exe.so
Ignore these winegcc output files.
2007-10-18 20:09:54 +01:00
Adrian Johnson
ff35ffd2a7 Add meta-surface-pattern test 2007-10-13 22:09:04 +09:30
Adrian Johnson
59dd59ce8d Add mask-alpha test 2007-09-20 16:00:34 -07:00
Carl Worth
0682b9a9c1 Add rgb24-ignore-alpha test
This test demonstrates a bug when compositing an rgb24 image over an argb32
image, (the implementation appears to be examining the alpha channel
rather than ignoring it).
2007-09-05 14:38:21 -07:00
Carl Worth
463493af73 Remove svg2pdf and pdf2svg programs from test directory
These are useful programs, but they don't belong in test/.
They are never used in the test suite at all. Instead, these
should exist in some demo package, or as applications in their
own right.

(The motivation for the removal is that someone just encountered
a build error with one of these. And I'm not interested in debugging
build errors for unused components.)
2007-08-27 10:40:06 -07:00