summaryrefslogtreecommitdiff
path: root/test/mask.c
AgeCommit message (Collapse)AuthorFilesLines
2009-06-02Add a generic cow-snapshotting frameworkChris Wilson1-1/+11
Provide a mechanism for backends to attach and remove snapshots. This can be used by backends to provide a cache for _cairo_surface_clone_similar(), or by the meta-surfaces to only emit a single pattern for each unique snapshot. In order to prevent stale data being returned upon a snapshot operation, if the surface is modified (via the 5 high level operations, and on notification of external modification) we break the association with any current snapshot of the surface and thus preserve the current data for their use.
2008-10-31[test] Build test suite into single binary.Chris Wilson1-15/+8
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-18[test/mask] Propagate error from secondary context.Chris Wilson1-5/+1
Reset the source every time so that the error is propagate from the secondary context using cairo_get_target().
2008-10-18[test/mask] Propagate error from secondary context.Chris Wilson1-4/+2
Use cairo_get_target() to infect the primary context with any errors raised whilst drawing the mask.
2008-08-13[test] Preparatory work for running under memfault.Chris Wilson1-11/+12
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/.
2007-12-20[test/*] Create new surfaces using the group target.Chris Wilson1-2/+2
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).
2006-12-14Optimize gradient computationsDavid Turner1-3/+3
We update the test suite reference images where needed, (pdiff avoided a few, but most still needed updating). We take advantage of the need for new reference images to shrink some of the giant tests to speed them up a bit. This optimization provides a 2x improvement in linear gradient generation performance (numbers from an x86 laptop): image-rgb paint_linear_rgba_source-512 26.13 -> 11.13: 2.35x speedup █▍ image-rgb paint_linear_rgba_source-256 6.47 -> 2.76: 2.34x speedup █▍ image-rgba paint_linear_rgb_over-256 6.51 -> 2.86: 2.28x speedup █▎ image-rgb paint_linear_rgba_over-512 28.62 -> 13.70: 2.09x speedup █▏ image-rgba fill_linear_rgb_over-256 3.24 -> 1.94: 1.66x speedup ▋ image-rgb stroke_linear_rgba_over-256 5.68 -> 4.10: 1.39x speedup ▍
2006-08-08Eliminate most compiler warnings from the test suiteCarl Worth1-1/+1
2006-07-13Add prototype for draw in each test file and remove it from the header.Behdad Esfahbod1-0/+2
2006-07-11More test suite infrastructure improvements:Behdad Esfahbod1-3/+4
- 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.
2006-06-06Remove extraneous whitespace from "blank" lines.Carl Worth1-4/+4
This patch was produced with the following (GNU) sed script: sed -i -r -e 's/^[ \t]+$//' run on all *.[ch] files within cairo.
2006-04-27Use CLEAR operator in mask.c in order to not trig image fallbackEmmanuel Pacaud1-2/+1
for polygon masking. (cherry picked from 30b2d1c5df9d1c6b536838a6a3407fdfa7198e29 commit)
2006-04-18Clear completely the temporary surface between each subtest in mask.cEmmanuel Pacaud1-5/+3
That helps SVG backend to pass this test, since CAIRO_OPERATOR_CLEAR on a part of a surface use "comp-op" element which is not supported with current librsvg.
2005-07-18Note some progress.Carl Worth1-1/+1
New helper function to help create an image surface from a PNG file, while taking the srcdir environment variable into consideration. Rename the pattern creating helper function to match. Use new cairo_test_create_surface_from_png so that non-srcdir builds work. Track change in cairo_test_create_pattern_from_png.
2005-07-15Fix a few memory leaks (missing cairo_pattern_destroy in 3 places).Carl Worth1-1/+4
2005-07-08Give enum tags an underscore prefix to match the style of the struct tags. ↵Carl Worth1-2/+2
Add new cairo_content_t and change cairo_surface_create_similar to accept a cairo_content_t rather than a cairo_format_t. Change surface backend create_similar call to accept a cairo_content_t rather than a cairo_format_t. Fix all calls into create_similar to pass a cairo_content_t rather than a cairo_format_t.
2005-05-06Eliminate the following deprecated functions from cairo's interface:Carl Worth1-4/+4
cairo_copy cairo_get_path cairo_get_path_flat cairo_matrix_create cairo_matrix_destroy cairo_matrix_copy cairo_matrix_get_affine cairo_surface_set_repeat cairo_surface_set_matrix cairo_surface_get_matrix cairo_surface_set_filter cairo_surface_get_filter Also, eliminate all support for compiling against, or running with old, deprecated names for functions. Deal with all of the removals.
2005-05-06Rename and re-order the cairo_operator_t enum to names that abbreviate less ↵Carl Worth1-2/+2
and are easier to understand, (eg. CAIRO_OPERATOR_DEST_OVER instead of CAIRO_OPEERATOR_OVER_REVERSE).
2005-05-06Remove cairo_set_target_surface and all other backend-specific ↵Carl Worth1-6/+4
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).
2005-05-06src/cairo.[ch] doc/public/cairo-sections.txt: Add cairo_paint_with_alpha().Owen Taylor1-0/+7
Fix segfault when mask == NULL. test/mask.c test/mask-ref.png: Add testing of cairo_paint_with_alpha(). test/coverage.c test/coverage-ref.png: Remove ... it's not testing anything that mask doesn't test better.
2005-05-02src/cairo.[ch] src/cairo-gstate.c: Add cairo_mask() and cairo_mask_surface().Owen Taylor1-0/+241
test/maks.c tests/Makefile.am tests/mask-ref.png: Add a comprehensive tests for cairo_mask(). Updated