diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-06-13 10:22:37 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-06-13 10:25:49 +0100 |
commit | 0693af2328606a4c7e4c888d2a1cd346e6bef405 (patch) | |
tree | 11fb81e417b5f667f1cd46b0ff5e6560c0c9290e /test/cairo-test.c | |
parent | ffc3a39c95e918fa2fcd14c1b1063b9a9acceebf (diff) |
test: Move all output below test/output/
make distcheck complains of remanents being left under test/ after a
clean, notably the files used to check the capabilities of a similar
surface and the fallback-resolution output.
Diffstat (limited to 'test/cairo-test.c')
-rw-r--r-- | test/cairo-test.c | 53 |
1 files changed, 30 insertions, 23 deletions
diff --git a/test/cairo-test.c b/test/cairo-test.c index af4487a5..5b80ba13 100644 --- a/test/cairo-test.c +++ b/test/cairo-test.c @@ -436,6 +436,24 @@ done: return ref_name; } +static cairo_bool_t +_cairo_test_mkdir (const char *path) +{ +#if ! HAVE_MKDIR + return FALSE; +#elif HAVE_MKDIR == 1 + if (mkdir (path) == 0) + return TRUE; +#elif HAVE_MKDIR == 2 + if (mkdir (path, 0770) == 0) + return TRUE; +#else +#error Bad value for HAVE_MKDIR +#endif + + return errno == EEXIST; +} + cairo_bool_t cairo_test_target_has_similar (const cairo_test_context_t *ctx, const cairo_boilerplate_target_t *target) @@ -446,6 +464,7 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, cairo_surface_t *similar; cairo_status_t status; void *closure; + char *path; /* ignore image intermediate targets */ if (target->expected_type == CAIRO_SURFACE_TYPE_IMAGE) @@ -454,9 +473,14 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, if (getenv ("CAIRO_TEST_IGNORE_SIMILAR")) return FALSE; + xasprintf (&path, "%s/%s", + _cairo_test_mkdir (CAIRO_TEST_OUTPUT_DIR) ? CAIRO_TEST_OUTPUT_DIR : ".", + ctx->test_name); + + has_similar = FALSE; do { do { - surface = (target->create_surface) (ctx->test->name, + surface = (target->create_surface) (path, target->content, ctx->test->width, ctx->test->height, @@ -466,12 +490,11 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, 0, &closure); if (surface == NULL) - return FALSE; + goto out; } while (cairo_test_malloc_failure (ctx, cairo_surface_status (surface))); if (cairo_surface_status (surface)) - return FALSE; - + goto out; cr = cairo_create (surface); cairo_push_group_with_content (cr, @@ -486,7 +509,9 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, if (target->cleanup) target->cleanup (closure); - } while (cairo_test_malloc_failure (ctx, status)); + } while (! has_similar && cairo_test_malloc_failure (ctx, status)); +out: + free (path); return has_similar; } @@ -655,24 +680,6 @@ cairo_test_copy_file (const char *src_filename, return TRUE; } -static cairo_bool_t -_cairo_test_mkdir (const char *path) -{ -#if ! HAVE_MKDIR - return FALSE; -#elif HAVE_MKDIR == 1 - if (mkdir (path) == 0) - return TRUE; -#elif HAVE_MKDIR == 2 - if (mkdir (path, 0770) == 0) - return TRUE; -#else -#error Bad value for HAVE_MKDIR -#endif - - return errno == EEXIST; -} - static cairo_test_status_t cairo_test_for_target (cairo_test_context_t *ctx, const cairo_boilerplate_target_t *target, |