diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2ee4649c4..a1e1bc2c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -99,6 +99,7 @@ fedora autotools build: # Current test failures that we ignore for now - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_FALLBACK_RESOLUTION=1 - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_SCRIPT_XCB_HUGE_IMAGE_SHM=1 + - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_SVG_ARGB32_SELF_COPIES=1 - export CAIRO_TEST_IGNORE_pdf_argb32=bug-image-compositor,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend,extended-blend-solid,fallback,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,record-select-font-face,record1414x-select-font-face,record1414x-text-transform,record2x-select-font-face,record2x-text-transform,record90-select-font-face,recordflip-whole-select-font-face,recordflip-select-font-face,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,thin-lines,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3 - export CAIRO_TEST_IGNORE_pdf_rgb24=bug-image-compositor,clear-source,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,random-intersections-curves-eo,random-intersections-curves-nz,record-paint-alpha-clip,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rel-path,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3 - export CAIRO_TEST_IGNORE_script_argb32=xcb-huge-image-shm diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c index c3f12a300..50e944f9c 100644 --- a/test/cairo-test-runner.c +++ b/test/cairo-test-runner.c @@ -1024,6 +1024,22 @@ main (int argc, char **argv) status = CAIRO_TEST_ERROR; } } + if (getenv ("CAIRO_TEST_UGLY_HACK_TO_IGNORE_SVG_ARGB32_SELF_COPIES")) { + if ((strcmp (target->name, "svg11") == 0 || strcmp (target->name, "svg12") == 0) && + target->content == CAIRO_CONTENT_COLOR_ALPHA && + (strcmp (ctx.test_name, "self-copy") == 0 || strcmp (ctx.test_name, "self-copy-overlap") == 0)) { + if (status == CAIRO_TEST_CRASHED) { + cairo_test_log (&ctx, "Turning CRASH into XFAIL due to env\n"); + fprintf (stderr, "Turning CRASH into XFAIL due to env\n"); + runner.num_ignored_via_env++; + status = CAIRO_TEST_XFAILURE; + } else { + fprintf (stderr, "Test was expected to crash due to an environment variable, but did not!\n"); + fprintf (stderr, "Please remove the hack to ignore self-copy* crashes for the svg backend.\n"); + status = CAIRO_TEST_ERROR; + } + } + } if (getenv ("CAIRO_TEST_UGLY_HACK_TO_IGNORE_SCRIPT_XCB_HUGE_IMAGE_SHM")) { if (strcmp (target->name, "script") == 0 && strcmp (ctx.test_name, "xcb-huge-image-shm") == 0) { if (status == CAIRO_TEST_FAILURE) {