Commit graph

194 commits

Author SHA1 Message Date
Chris Wilson
43edb4dd7b Fix compilation with gcov
We need to add --coverage to LDFLAGS, so create CAIRO_LDFLAGS and use that
to populate AM_LDFLAGS.
2008-12-14 16:44:03 +00:00
Chris Wilson
903b39c304 [test] Make the xlib-fallback use the image refs.
The xlib-fallback is closer to the image than the xlib backend, so prefer
not to use the xlib.ref.png.
2008-12-12 13:43:36 +00:00
Paolo Bonzini
487c708b3b [boilerplate] fix compilation for glitz-agl
As suggested on the list, this splits the cairo-boilerplate-glitz.c
file in three separate files, one for each backend.  Furthermore,
it fixes a few problems in compilation of the AGL backend test harness.
2008-11-25 20:40:37 +08:00
Chris Wilson
a856371bef Add CairoScript backend.
A new meta-surface backend for serialising drawing operations to a
CairoScript file. The principal use (as currently envisaged) is to provide
a round-trip testing mechanism for CairoScript - i.e. we can generate
script files for every test in the suite and check that we can replay them
with perfect fidelity. (Obviously this does not provide complete coverage
of CairoScript's syntax, but should give reasonable coverage over the
operators.)
2008-11-13 11:36:54 +00:00
Chris Wilson
cd2e18ddc6 [test] Fix-up rgb byte packing
Another embarrassing, but thankfully, trivial bug.
2008-11-07 19:35:26 +00:00
Chris Wilson
68309481aa [test] Mark targets with is_meta?
Allow tests to skip targets based on whether they are a meta surface or
not.
2008-11-05 08:36:01 +00:00
Chris Wilson
b3462c5616 [test] Convert a few residual '-out.*'
Catch a few -out.* hiding in boilerplate.
2008-11-03 14:24:39 +00:00
Behdad Esfahbod
81c3009c07 [boilerplate/Makefile.win32] Only build source files, not headers 2008-10-31 16:45:58 -04:00
Chris Wilson
e90073f7dd [test] Build test suite into single binary.
Avoid calling libtool to link every single test case, by building just one
binary from all the sources.

This binary is then given the task of choosing tests to run (based on user
selection and individual test requirement), forking each test into its own
process and accumulating the results.
2008-10-31 12:30:11 +00:00
Chris Wilson
f03d3f9f7f [boilerplate] Remove #if VERSION>1.9.0
Remove the obsolete #if statement.
2008-10-30 19:24:29 +00:00
Chris Wilson
cf072c7203 [sdl] Add new backend.
Add a new backend to allow easy interoperability with the Simple
DirectMedia Layer.
2008-10-30 17:04:53 +00:00
Carl Worth
eed6771764 Disable the svg12 target in boilerplate.
This target was added to the boilerplate during 1.8.1. It currently
shows many failures in the test suite. These failures likely fall
into three different classes:

	* Tests needing new svg12-specific reference images

	* Tests exercising bugs in librsvg

	* Tests exercising existing cairo bugs

We haven't gone through the effort to separate these, but even for
the tests that are exercising actual cairo bugs, these are likely
bugs that existed in the cairo 1.8.0 release and not regressions.

Because of that, in this commit I'm conditionally disabling the
testing of the svg12 target. As soon as we increment the cairo
version to 1.9.0 or higher, this target will get re-enabled
automatically and we can begin the work to separate the tests as
described above and also fix the bugs.
2008-10-28 17:12:15 -07:00
Chris Wilson
786bea48df [boilerplate/directfb] Create ARGB surfaces on demand.
Create an RGB or ARGB surface depending upon the content type of the test
target, with the result that the directfb rgb24 target no longer
unconditionally fails.
2008-10-20 23:20:22 +01:00
Chris Wilson
8e0950ced8 [boilerplate/directfb] Gracefully handle failure to create surface.
Simply return NULL indicating failure to create the target surface rather
than aborting the test (allowing other targets to be tested).
2008-10-19 12:32:41 +01:00
Chris Wilson
fc04a1e0db [boilerplate] Fixup compilation for gliitz.
Convert a few old references to cairo_boilerplate_surface_set_user_data.
2008-10-15 12:13:40 +01:00
Behdad Esfahbod
f8018cf193 [boilerplate] Fix "make dist"
The cairo-boilerplate-ps/pdf/svg.h files where removed in commit
9841d9d58e but the Makefile.sources
listing was not updated.
2008-10-06 11:45:08 -04:00
Behdad Esfahbod
e3f9e40df7 Fix residues of the Makefile.*.config Makefile.*.features renaming
They just don't seem to want to die...
2008-09-29 11:49:50 -04:00
Chris Wilson
3ff86a4510 [test] Disable caching of SVG fail/pass surfaces.
As we use cairo to convert SVG files back to an image, that process is
dependent upon changes within our library and so we cannot skip the
conversion if the SVG file happens to match a previous run. Fortunately,
librsvg is quick enough that this is not a major issue.
2008-09-29 09:08:10 +01:00
Chris Wilson
9841d9d58e Automate error checking for fallback-resolution.
For this we extend the boilerplate get_image() routines to extract a
single page out of a paginated document and then proceed to manually
check each page of the fallback-resolution test.

(Well that's the theory, in practice SVG doesn't support multiple pages
and so we just generate a new surface for each resolution. But the
infrastructure is in place so that we can automate other tests,
e.g. test/multi-pages.)
2008-09-28 14:57:12 +01:00
Chris Wilson
e0f2147107 [boilerplate] Add a PS 2 target.
Ensure that we can generate PS2 output when required by creating a PS
level 2 target and using GhostScript for conformance testing.
2008-09-26 17:26:25 +01:00
Chris Wilson
0c030d3b76 [boilerplate] Add svg-1.2 target.
SVG 1.2 is sufficiently different from 1.1 that it has separate code
paths within cairo-svg-surface and so justifies its own boilerplate
target.
2008-09-26 17:11:51 +01:00
Chris Wilson
48099af9fe [boilerplate] Retry conversion in process if first attempt fails.
One possibility for a read failure whilst converting the image is if the
external utility crashed. This information is important for the test suite
as knowing input that causes the converter to crash is just as vital as
identifying a crash within the library.
2008-09-26 13:42:28 +01:00
Chris Wilson
f2c484d73c [test/any2ppm] Handle short reads/writes.
No excuse other than simple laziness - it manifested itself with random
"error whilst reading" failures.
2008-09-26 13:42:28 +01:00
Behdad Esfahbod
e84ef3c54e [.gitignore] Remove Makefile.*.config
I renamed those generated files to Makefile.*.features but forgot to
update ignore lists.  Carl already added the new ones, but didn't
remove the old ones.
2008-09-24 20:00:30 -04:00
Carl Worth
9335ad313f Ignore generated files.
I know that I didn't create these Makefile.win32.features files,
so I assume that they are the result of Behdad's build magic and
that he just forgot to add them to .gitignore.
2008-09-24 16:20:35 -07:00
Behdad Esfahbod
ebb5eb57b7 Generate build/Makefile.win32.features 2008-09-22 22:24:38 -04:00
Behdad Esfahbod
0ac7a242f8 [build] Add Makefile.win32.common 2008-09-22 20:11:38 -04:00
Behdad Esfahbod
23b9767bb3 Rename Makefile.*.config to Makefile.*.features as they should not be modified
The .config naming was giving people the impression that they can modify it.
That's not the case.
2008-09-22 17:34:36 -04:00
Behdad Esfahbod
1de35c04e0 Revert "[Makefile.am] Add CAIRO_LIBS to check-link."
This reverts commit a341cb5a98.
The change introduced in that commit should not be needed and libtool
should just do the right thing.  I cannot reproduce the problem
Chris was having no matter how hard I tried.
2008-09-17 02:11:38 -04:00
Chris Wilson
a341cb5a98 [Makefile.am] Add CAIRO_LIBS to check-link.
With --enable-gcov, make check aborts with gcov errors on check-link - it
appears that -lgcov is magic and requires explicit invovation on the
command-line.
2008-09-16 23:06:53 +01:00
Behdad Esfahbod
eb749d7563 [.gitignore] Update 2008-09-16 03:58:21 -04:00
Behdad Esfahbod
a908fc04a7 [boilerplate/Makefile.am] Distribute Makefile.win32.config 2008-09-16 03:58:21 -04:00
Behdad Esfahbod
8151c50670 [*/Makefile.win32] Use Makefile.win32.config 2008-09-16 03:58:21 -04:00
Behdad Esfahbod
20daa425d8 [configure.ac] Generate boilerplate/Makefile.am.config
Same scheme as in src/
2008-09-16 03:58:19 -04:00
Chris Wilson
2617d68a7b [boilerplate] Restrict number of retries to create an error surface.
Sometimes we just cannot get what we want, so give up - it's only an error
surface after all!
2008-09-15 17:11:36 +01:00
Behdad Esfahbod
66d6cb642c [Makefile.am.common] Unify more common rules 2008-09-11 18:06:57 -04:00
Behdad Esfahbod
171a5edbff [boilerplate/Makefile.am] Add unneeded rule
The check target by default depends on $(check_PROGRAMS).
2008-09-11 17:53:30 -04:00
Behdad Esfahbod
de5b8bce37 Makefile.am cleanup
Use a common build/Makefile.am.common file.
2008-09-11 15:49:09 -04:00
Chris Wilson
7709f51e13 [boilerplate] Include cairo-compiler-private.h
Actually use the compiler specific diverts and defines.
2008-09-10 18:30:45 +01:00
Behdad Esfahbod
87dfceb9ec [Makefile.am] Rename INCLUDES to AM_CPPFLAGS
Fixes automake warnings
2008-09-08 15:13:07 -04:00
Behdad Esfahbod
0e01534bf0 [boilerplate] Rename xmalloc.[ch] to boilerplate namespace 2008-09-04 15:53:33 -04:00
Behdad Esfahbod
097c4ac022 [Makefile.am] Use check_PROGRAMS 2008-09-03 20:52:17 -04:00
Behdad Esfahbod
cf212ddaca Also test linking when cross-compiling
We build the test.  Just don't run it.
2008-09-02 22:05:06 -04:00
Behdad Esfahbod
78127c7fb4 [boilerplate/check-link.c] Oops. Add it. 2008-09-02 22:03:05 -04:00
Behdad Esfahbod
0234fb9197 [boilerplate/check-link.c] Check that we can link to the built boilerplate 2008-09-02 22:00:05 -04:00
Behdad Esfahbod
7e45937e21 [boilerplate] Add cairo_boilerplate_version[_string]() functions 2008-09-02 21:56:37 -04:00
Behdad Esfahbod
b4cee2bd88 [boilerplate] Remove obsolete reference to pixman 2008-09-02 21:36:20 -04:00
Behdad Esfahbod
e3d190c92f [boilerplate] Cleanup 2008-09-02 21:35:18 -04: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
92fcb9d2f7 [configure.in] Autoconf strikes back
Need to disable references to *.cpp to convince autoconf
not to use the g++ linker (and fail miserably).
2008-08-26 23:02:10 +01:00