summaryrefslogtreecommitdiff
path: root/test/clip-nesting.c
Commit message (Collapse)AuthorAgeFilesLines
* test: fix include order for AIX, bug#89354Michael Haubenwallner2015-03-051-1/+1
|
* [test/clip-nesting] Propagate status from sub-context.Chris Wilson2008-12-121-0/+16
| | | | | Use cairo_path_append() to propagate an error status from a child context to it parent so that it is properly reported under memfault.
* [test] Build test suite into single binary.Chris Wilson2008-10-311-14/+6
| | | | | | | | | 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.
* [test] Preparatory work for running under memfault.Chris Wilson2008-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | In order to run under memfault, the framework is first extended to handle running concurrent tests - i.e. multi-threading. (Not that this is a requirement for memfault, instead it shares a common goal of storing per-test data). To that end all the global data is moved into a per-test context and the targets are adjusted to avoid overlap on shared, global resources (such as output files and frame buffers). In order to preserve the simplicity of the standard draw routines, the context is not passed explicitly as a parameter to the routines, but is instead attached to the cairo_t via the user_data. For the masochist, to enable the tests to be run across multiple threads simply set the environment variable CAIRO_TEST_NUM_THREADS to the desired number. In the long run, we can hope the need for memfault (runtime testing of error paths) will be mitigated by static analysis. A promising candidate for this task would appear to be http://hal.cs.berkeley.edu/cil/.
* [test/*] Create new surfaces using the group target.Chris Wilson2007-12-201-1/+1
| | | | | | | | | | cairo_get_target() returns the original surface passed to cairo_create(), and not the current destination as required when testing drawing to the same surface using multiple contexts. For completeness we also use the group target when creating similar surfaces within the tests (to check that similar surfaces of similar surfaces also work).
* Add prototype for draw in each test file and remove it from the header.Behdad Esfahbod2006-07-131-0/+2
|
* More test suite infrastructure improvements:Behdad Esfahbod2006-07-111-2/+3
| | | | | | | | | | | | | | | | | - Remove cairo_test_expect_failure. cairo-test.c now checks env var CAIRO_XFAIL_TESTS to see if the running test is expected to fail. The reason for expected failure is appended to the test description. - Test description is written out. - Failed/crashed tests also write a line out to stderr (in red), so one can now redirect stdout to /dev/null to only see failures. - cairo_test() has been changed to not take the draw function anymore, instead, draw function is now part of the test struct. - "make check" doesn't allow limiting backends to test using env var anymore. To limit backends to test, one should use the TARGETS variable on the make command line. - "make check-valgrind" now writes its log to valgrind-log instead of valgrind.log, to not interfere with test log file processing.
* Remove extraneous whitespace from "blank" lines.Carl Worth2006-06-061-2/+2
| | | | | | | | This patch was produced with the following (GNU) sed script: sed -i -r -e 's/^[ \t]+$//' run on all *.[ch] files within cairo.
* Remove cairo_set_target_surface and all other backend-specific ↵Carl Worth2005-05-061-6/+3
| | | | | | | cairo_set_target functions. Require a cairo_surface_t* to call cairo_create. Port to use new cairo_create interface. Rewrite all tests that were using cairo_set_target_surface to instead create a temporary cairo_t, (eventually to be replaced with cairo_begin_group).
* src/cairo-surface.c src/cairoint.h: Add _cairo_surface_begin/end to save and ↵Owen Taylor2005-05-021-0/+101
restore the clip state of a surface. Copy and store clip regions set on a surface so that we can save and restore them. Add a CAIRO_STATUS_BAD_NESTING error for interleaved use of two cairo_t's on the same surface. Also, add a skeleton doc comment for cairo_status_t. src/cairo.c src/cairo-gstate.c src/cairoint.h: Use _cairo_surface_begin/end to replace _cairo_gstate_restore_external_state. Use _cairo_surface_begin/end to save the state of a surface when we start drawing at it and restore it at the end. Check that the save level of the surface is what we expect on drawing operations and fail with CAIRO_STATUS_BAD_NESTING otherwise. src/cairo-pattern.c src/cairoint.h (_cairo_pattern_acquire_surface_for_surface) (_cairo_pattern_release_surface): Surround use of pattern->surface with _cairo_surface->begin/end so we don't clip surfaces used as sources. test/clip-nesting.c test/Makefile.am: Test of destinatin clipping with the nested creation of cairo_t's for the same context. test/source-clip.c test/Makefile.am: Test that clipping on a source as a destination doesn't affect use of it as a source. XFAIL test for copying from a surface as a source to itself as a destination with a clip.