[cairo] [PATCH 2/3] pthread-same-source: Add a reference image generation mode
Bryce W. Harrington
b.harrington at samsung.com
Sat Apr 12 14:59:36 PDT 2014
Reviewed-by: Bryce Harrington <b.harrington at samsung.com>
On Fri, Apr 11, 2014 at 10:48:22AM +0200, Uli Schlachter wrote:
> In this mode, only a single thread is active and calling into cairo at any time.
> Thus, there can be no races between threads. Since this test is supposed to find
> races between threads, the resulting image can be used as a reference image.
>
> Signed-off-by: Uli Schlachter <psychon at znc.in>
> ---
> test/pthread-same-source.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/test/pthread-same-source.c b/test/pthread-same-source.c
> index 5960ca0..9db7332 100644
> --- a/test/pthread-same-source.c
> +++ b/test/pthread-same-source.c
> @@ -28,6 +28,7 @@
> #include <pthread.h>
>
> #define N_THREADS 8
> +#define GENERATE_REFERENCE 0
>
> #define WIDTH 64
> #define HEIGHT 8
> @@ -136,6 +137,9 @@ draw (cairo_t *cr, int width, int height)
> cairo_status_t status;
> int i;
>
> + cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
> + cairo_paint (cr);
> +
> source = create_source (cairo_get_target (cr));
> status = cairo_surface_status (source);
> if (status) {
> @@ -157,18 +161,24 @@ draw (cairo_t *cr, int width, int height)
> test_status = CAIRO_TEST_FAILURE;
> break;
> }
> +#if GENERATE_REFERENCE
> + {
> + cairo_test_status_t status = join_thread (cr, threads[i]);
> + if (status != CAIRO_TEST_SUCCESS)
> + test_status = status;
> + }
> +#endif
> }
>
> cairo_surface_destroy (source);
>
> - cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
> - cairo_paint (cr);
> -
> +#if !GENERATE_REFERENCE
> for (i = 0; i < N_THREADS; i++) {
> cairo_test_status_t status = join_thread (cr, threads[i]);
> if (status != CAIRO_TEST_SUCCESS)
> test_status = status;
> }
> +#endif
>
> return test_status;
> }
> --
> 1.9.1
>
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
More information about the cairo
mailing list