From 0fd2197e2b3e7deb1e5e1014e907dbeddac6f481 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Mon, 8 Mar 2021 16:28:51 +0100 Subject: [PATCH] test/mime-unique-id: Fix for out-of-tree builds Instead of failing because it did not find an image, this now fails for me since the PDF is too small (???). This new code is modelled after cairo_test_create_surface_from_png(). Signed-off-by: Uli Schlachter --- test/mime-unique-id.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/test/mime-unique-id.c b/test/mime-unique-id.c index bdd056137..81ab3f965 100755 --- a/test/mime-unique-id.c +++ b/test/mime-unique-id.c @@ -48,6 +48,7 @@ #include #include +#include #include @@ -87,6 +88,19 @@ static const char *png_filename = "romedalen.png"; static const char *jpeg_filename = "romedalen.jpg"; +static FILE * +my_fopen (cairo_test_context_t *ctx, const char *pathname, const char *mode) +{ + FILE *f = fopen (pathname, mode); + if (f == NULL && errno == ENOENT && ctx->srcdir) { + char *srcdir_pathname; + xasprintf (&srcdir_pathname, "%s/%s", ctx->srcdir, pathname); + f = fopen (srcdir_pathname, mode); + free (srcdir_pathname); + } + return f; +} + static cairo_test_status_t create_image_surface (cairo_test_context_t *ctx, cairo_surface_t **surface) { @@ -117,7 +131,7 @@ create_recording_surface_with_mime_jpg (cairo_test_context_t *ctx, cairo_surface cairo_rectangle_t extents = { 0, 0, 1, 1 }; *surface = cairo_recording_surface_create (CAIRO_CONTENT_COLOR_ALPHA, &extents); - f = fopen (jpeg_filename, "rb"); + f = my_fopen (ctx, jpeg_filename, "rb"); if (f == NULL) { cairo_test_log (ctx, "Unable to open file %s\n", jpeg_filename); return CAIRO_TEST_FAILURE; @@ -372,7 +386,7 @@ check_file_size (cairo_test_context_t *ctx, const char *filename, long expected_ FILE *f; long size; - f = fopen (filename, "rb"); + f = my_fopen (ctx, filename, "rb"); if (f == NULL) { cairo_test_log (ctx, "Unable to open file %s\n", filename); return CAIRO_TEST_FAILURE;