From 2d2f73bc3cb664ceee722ba6305f97023a2eebfd Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Thu, 22 Apr 2021 16:14:37 +0200 Subject: [PATCH] Run the test suite on MacOS This adds the necessary commands to run the test suite on MacOS in CI and to also ignore the current failures. Signed-off-by: Uli Schlachter --- .gitlab-ci.yml | 6 ++++++ test/cairo-test-runner.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a42cc655..13737a866 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -253,3 +253,9 @@ meson macOS: # pixman region-test fails to link on macOS - meson setup -Dpixman:tests=disabled build - meson compile --verbose -C build + # Test cairo-quartz. Other backends should be covered by other jobs + - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_QUARTZ_COVERAGE_COLUMN_TRIANGLES=1 + - export CAIRO_TEST_IGNORE_quartz_argb32=bug-image-compositor,clear,clip-operator,clip-text,coverage-rhombus,culled-glyphs,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid-alpha,fallback,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,negative-stride-image,operator-clear,operator-source,overlapping-glyphs,partial-clip-text-top,partial-clip-text-bottom,partial-clip-text-left,partial-clip-text-right,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,select-font-face,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-text,smp-glyph,subsurface,subsurface-outside-target,subsurface-scale,surface-pattern,text-antialias-gray,text-antialias-none,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,unbounded-operator,user-font-proxy,user-font-rescale,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3,ft-text-antialias-none + - export CAIRO_TEST_IGNORE_quartz_rgb24=bug-448,bug-image-compositor,clear,clip-operator,clip-text,coverage-rhombus,culled-glyphs,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,negative-stride-image,operator-clear,operator-source,overlapping-glyphs,partial-clip-text-top,partial-clip-text-bottom,partial-clip-text-left,partial-clip-text-right,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,select-font-face,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-text,smp-glyph,subsurface,subsurface-scale,text-antialias-gray,text-antialias-none,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,unbounded-operator,user-font-proxy,user-font-rescale,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3,ft-text-antialias-none + - export CAIRO_TEST_TARGET=quartz + - (cd build/test && srcdir=../../test ./cairo-test-suite) diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c index c3f12a300..44b74a4e2 100644 --- a/test/cairo-test-runner.c +++ b/test/cairo-test-runner.c @@ -1038,6 +1038,20 @@ main (int argc, char **argv) } } } + if (getenv ("CAIRO_TEST_UGLY_HACK_TO_IGNORE_QUARTZ_COVERAGE_COLUMN_TRIANGLES")) { + if (strcmp (target->name, "quartz") == 0 && target->content == CAIRO_CONTENT_COLOR_ALPHA && strcmp (ctx.test_name, "coverage-column-triangles") == 0) { + if (status == CAIRO_TEST_FAILURE) { + cairo_test_log (&ctx, "Turning FAIL into XFAIL due to env\n"); + fprintf (stderr, "Turning FAIL into XFAIL due to env\n"); + runner.num_ignored_via_env++; + status = CAIRO_TEST_XFAILURE; + } else { + fprintf (stderr, "Test was expected to fail due to an environment variable, but did not!\n"); + fprintf (stderr, "Please remove the hack to ignore xcb-huge-image-shm errors for the script backend.\n"); + status = CAIRO_TEST_ERROR; + } + } + } switch (status) { case CAIRO_TEST_SUCCESS: target_skipped = FALSE;