Commit graph

12 commits

Author SHA1 Message Date
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
436c0c8be2 [test] Preparatory work for running under memfault.
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/.
2008-08-13 21:54:59 +01:00
Chris Wilson
0e315b1e60 [test/a8-mask] Perform the stride API checking once.
The stride API is independent of the surface and does not need to be
repeated for every surface.
2008-04-15 13:29:10 +01:00
Chris Wilson
b181f40949 [test/a8-mask] Check negative strides as well.
Check that we also allow surfaces to be created using a negative stride.
2008-03-04 09:31:20 +00:00
Chris Wilson
af88d4d9ae [test/a8-mask] Fix memleak.
Destroy the auxiallary surfaces and contexts.
2008-02-15 13:50:42 +00:00
Carl Worth
13a5624277 Rename cairo_image_surface_stride_for_width to cairo_format_stride_for_width
Thanks for Behdad for the suggested name improvement. Also, make
it more clear that the stride passed to cairo_image_surface_create_for_data
should come from calling cairo_format_stride_for_width with the
same width.
2008-01-28 15:39:39 -08:00
Carl Worth
dc67de3d8b Add cairo_image_surface_stride_for_width
Document this function as a required call to get the correct
stride value before calling cairo_image_surface_create_for_data.
This means that previously-failing calls with non-multiple-of-4
stride values are now documented as errors. Also, we now have
the possibility of moving to more stringent alignment constraints,
(one can imagine doing 64-bit or 128-bit boundaries for example).
2008-01-28 15:39:36 -08:00
Behdad Esfahbod
cf1b23a4c5 Add prototype for draw in each test file and remove it from the header. 2006-07-13 12:58:24 -04:00
Behdad Esfahbod
973d3a3d14 More test suite infrastructure improvements:
- 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-07-11 22:19:39 -04:00
Jeff Muizelaar
8c52b287f3 Give reason for failure. 2005-08-06 15:10:36 +00:00
Carl Worth
5925e3520f Patch memory leaks. 2005-08-05 15:48:42 +00:00
Jeff Muizelaar
53bd9879bb Add a test case for CAIRO_FORMAT_A8 masks that fails with libpixman. 2005-08-05 15:07:45 +00:00