[cairo-commit] 3 commits - .gitlab-ci/ignore-ps2-argb32.txt .gitlab-ci/ignore-ps2-rgb24.txt .gitlab-ci/ignore-ps3-argb32.txt .gitlab-ci/ignore-ps3-rgb24.txt .gitlab-ci.yml src/cairo-ps-surface.c test/cairo-test-runner.c
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 28 10:52:58 UTC 2022
.gitlab-ci.yml | 22 +++
.gitlab-ci/ignore-ps2-argb32.txt | 207 +++++++++++++++++++++++++++++++++++++
.gitlab-ci/ignore-ps2-rgb24.txt | 197 +++++++++++++++++++++++++++++++++++
.gitlab-ci/ignore-ps3-argb32.txt | 218 +++++++++++++++++++++++++++++++++++++++
.gitlab-ci/ignore-ps3-rgb24.txt | 209 +++++++++++++++++++++++++++++++++++++
src/cairo-ps-surface.c | 2
test/cairo-test-runner.c | 14 ++
7 files changed, 867 insertions(+), 2 deletions(-)
New commits:
commit 2351a65b2754ecc54bb394495da93da3cb3977c6
Merge: 0e56ea9d5 a2d05a0c3
Author: Uli Schlachter <psychon at znc.in>
Date: Wed Dec 28 10:52:56 2022 +0000
Merge branch 'test-ps' into 'master'
Test cairo-ps in CI
See merge request cairo/cairo!171
commit a2d05a0c344e7a0239e4a95332d6b364a3c852e2
Author: Uli Schlachter <psychon at znc.in>
Date: Sun Aug 15 18:26:53 2021 +0200
ps: Fix crash in self-copy-overlap
According to valgrind, there is a use-after-free here. The function
_cairo_ps_surface_emit_surface() temporarily replaces some member of a
struct and then later re-sets it. However, there is an early return
possible that would skip that part of the code.
This commit moves the re-set up so that no freed pointers are left
behind. This seems to fix the crash.
Signed-off-by: Uli Schlachter <psychon at znc.in>
diff --git a/.gitlab-ci/ignore-ps2-argb32.txt b/.gitlab-ci/ignore-ps2-argb32.txt
index a2eb631e0..75c599fc4 100644
--- a/.gitlab-ci/ignore-ps2-argb32.txt
+++ b/.gitlab-ci/ignore-ps2-argb32.txt
@@ -161,6 +161,7 @@ rounded-rectangle-fill
rounded-rectangle-stroke
scale-offset-image
scale-offset-similar
+self-copy-overlap
stroke-ctm-caps
stroke-clipped
stroke-image
diff --git a/.gitlab-ci/ignore-ps3-argb32.txt b/.gitlab-ci/ignore-ps3-argb32.txt
index ee227c8f7..9e433d5c3 100644
--- a/.gitlab-ci/ignore-ps3-argb32.txt
+++ b/.gitlab-ci/ignore-ps3-argb32.txt
@@ -172,6 +172,7 @@ rounded-rectangle-fill
rounded-rectangle-stroke
scale-offset-image
scale-offset-similar
+self-copy-overlap
stroke-ctm-caps
stroke-clipped
stroke-image
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index 5645aae4a..343a5ea05 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -3713,11 +3713,11 @@ _cairo_ps_surface_emit_surface (cairo_ps_surface_t *surface,
status = _cairo_memory_stream_destroy (surface->stream, &data, &length);
free (data);
+ surface->stream = old_stream;
if (unlikely (status))
return status;
params->approx_size = length;
- surface->stream = old_stream;
_cairo_pdf_operators_set_stream (&surface->pdf_operators,
surface->stream);
}
commit c1aaaff880863419a08d44687451e5422d6090c3
Author: Uli Schlachter <psychon at znc.in>
Date: Sun Aug 15 18:12:04 2021 +0200
Test cairo-ps in CI
This adds the necessary dependencies for testing cairo-ps to CI and sets
up jobs for testing the ps2 and ps3 backends.
Signed-off-by: Uli Schlachter <psychon at znc.in>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5f3ff2396..cc7a9e3d7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,7 +8,7 @@ include:
variables:
FDO_UPSTREAM_REPO: 'cairo/cairo'
FDO_DISTRIBUTION_VERSION: '34'
- FDO_DISTRIBUTION_TAG: '2021-08-26.0'
+ FDO_DISTRIBUTION_TAG: '2021-09-20.0'
# TODO: should probably get its own image at some point instead of reusing the GStreamer one
# See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml for latest
@@ -73,6 +73,8 @@ fedora image:
librsvg2-devel
gtk2-devel
poppler-glib-devel
+ libspectre-devel
+ ghostscript
pixman-devel
systemd-devel
systemd-udev
@@ -138,6 +140,24 @@ test fedora autotools pdf:
- export CAIRO_TEST_TARGET=pdf
- xvfb-run make check V=1 VERBOSE=1
+test fedora autotools ps2:
+ extends: '.test fedora autotools'
+ script:
+ - export CAIRO_TEST_IGNORE_ps2_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-ps2-argb32.txt)
+ - export CAIRO_TEST_IGNORE_ps2_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-ps2-rgb24.txt)
+ - export CAIRO_TEST_TARGET=ps2
+ - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_PS_FAILURES=1
+ - xvfb-run make check V=1 VERBOSE=1
+
+test fedora autotools ps3:
+ extends: '.test fedora autotools'
+ script:
+ - export CAIRO_TEST_IGNORE_ps3_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-ps3-argb32.txt)
+ - export CAIRO_TEST_IGNORE_ps3_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-ps3-rgb24.txt)
+ - export CAIRO_TEST_TARGET=ps3
+ - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_PS_FAILURES=1
+ - xvfb-run make check V=1 VERBOSE=1
+
test fedora autotools script:
extends: '.test fedora autotools'
script:
diff --git a/.gitlab-ci/ignore-ps2-argb32.txt b/.gitlab-ci/ignore-ps2-argb32.txt
new file mode 100644
index 000000000..a2eb631e0
--- /dev/null
+++ b/.gitlab-ci/ignore-ps2-argb32.txt
@@ -0,0 +1,206 @@
+arc-direction
+arc-looping-dash
+bug-448
+bug-51910
+bug-bo-ricotz
+bug-extents
+bug-spline
+caps
+caps-05
+caps-1
+caps-2
+caps-joins
+caps-joins-05
+caps-joins-1
+caps-joins-2
+caps-joins-curve
+caps-sub-paths
+caps-tails-curve
+clear-source
+clip-complex-bug61592
+clip-disjoint
+clip-fill
+clip-fill-rule
+clip-group-shapes-circles
+clip-image
+clip-nesting
+clip-push-group
+clip-rotate-image-surface-paint
+clip-shape
+clip-stroke
+clip-text
+clip-twice
+clip-unbounded
+close-path
+close-path-current-point
+copy-path
+culled-glyphs
+curve-to-as-line-to
+dash-caps-joins
+dash-curve
+dash-infinite-loop
+dash-no-dash
+dash-offset
+dash-offset-negative
+dash-scale
+dash-state
+dash-zero-length
+degenerate-arc
+degenerate-curve-to
+degenerate-dash
+degenerate-path
+degenerate-pen
+degenerate-rel-curve-to
+degenerate-solid-dash
+drunkard-tails
+extend-reflect
+extend-reflect-similar
+extended-blend
+extended-blend-alpha-mask
+extended-blend-solid
+fallback
+fill-and-stroke
+fill-degenerate-sort-order
+fill-image
+fill-rule
+filter-nearest-offset
+finer-grained-fallbacks
+font-matrix-translation
+ft-color-font
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
+group-unaligned
+hairline
+hairline-anisotropic
+hairline-anisotropic-incorrect
+hairline-big
+hairline-scaled
+halo
+halo-transform
+horizontal-clip
+inverse-text
+joins
+joins-loop
+joins-retrace
+joins-star
+large-font
+leaky-dash
+leaky-dashed-rectangle
+leaky-dashed-stroke
+leaky-polygon
+line-width
+line-width-large-overlap-dashed
+line-width-overlap
+line-width-overlap-dashed
+line-width-overlap-flipped
+line-width-overlap-flopped
+line-width-overlap-offset
+line-width-scale
+line-width-tolerance
+long-dashed-lines
+miter-precision
+new-sub-path
+operator-www
+over-above-source
+over-around-source
+over-below-source
+over-between-source
+overlapping-glyphs
+path-append
+path-stroke-twice
+pixman-downscale-fast-95
+pixman-downscale-nearest-95
+pixman-rotate
+pthread-same-source
+radial-gradient
+radial-gradient-mask
+radial-gradient-mask-source
+random-clip
+random-intersections-curves-eo
+random-intersections-curves-nz
+random-intersections-eo
+random-intersections-nonzero
+record-extend-reflect
+record-neg-extents-bounded
+record-neg-extents-unbounded
+record-replay-extend-reflect
+record-replay-extend-repeat
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-select-font-face
+record2x-self-intersecting
+record2x-text-transform
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+rectilinear-dash
+rectilinear-dash-scale
+rectilinear-dash-scale-unaligned
+rectilinear-grid
+rectilinear-miter-limit
+rectilinear-stroke
+reflected-stroke
+rotate-clip-image-surface-paint
+rotate-image-surface-paint
+rotate-stroke-box
+rotated-clip
+round-join-bug-520-bevel
+round-join-bug-520-round
+rounded-rectangle-fill
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+stroke-clipped
+stroke-image
+stroke-open-box
+select-font-face
+self-copy-overlap
+self-intersecting
+shape-general-convex
+shape-sierpinski
+show-glyphs-advance
+show-text-current-point
+smask
+smask-text
+smp-glyph
+spline-decomposition
+stroke-clipped
+stroke-ctm-caps
+stroke-image
+stroke-open-box
+surface-pattern
+surface-pattern-scale-down
+surface-pattern-scale-down-extend-reflect
+surface-pattern-scale-up
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+thin-lines
+tiger
+transforms
+trap-clip
+twin
+unclosed-strokes
+user-font
+user-font-color
+user-font-mask
+user-font-proxy
+user-font-rescale
+user-font-subpixel
+world-map
+world-map-fill
+world-map-stroke
diff --git a/.gitlab-ci/ignore-ps2-rgb24.txt b/.gitlab-ci/ignore-ps2-rgb24.txt
new file mode 100644
index 000000000..0ca0b8b45
--- /dev/null
+++ b/.gitlab-ci/ignore-ps2-rgb24.txt
@@ -0,0 +1,197 @@
+arc-direction
+arc-looping-dash
+bug-361
+bug-431
+bug-448
+bug-51910
+bug-bo-ricotz
+bug-extents
+bug-spline
+caps
+caps-05
+caps-1
+caps-2
+caps-joins
+caps-joins-05
+caps-joins-1
+caps-joins-2
+caps-joins-curve
+caps-sub-paths
+caps-tails-curve
+clear-source
+clip-complex-bug61592
+clip-fill
+clip-fill-rule
+clip-group-shapes-circles
+clip-image
+clip-nesting
+clip-push-group
+clip-rotate-image-surface-paint
+clip-shape
+clip-stroke
+clip-text
+clip-twice
+close-path
+close-path-current-point
+copy-path
+culled-glyphs
+curve-to-as-line-to
+dash-caps-joins
+dash-curve
+dash-infinite-loop
+dash-no-dash
+dash-offset
+dash-offset-negative
+dash-scale
+dash-state
+dash-zero-length
+degenerate-arc
+degenerate-curve-to
+degenerate-dash
+degenerate-path
+degenerate-pen
+degenerate-rel-curve-to
+degenerate-solid-dash
+drunkard-tails
+extend-reflect
+extend-reflect-similar
+extended-blend-alpha-mask
+fill-and-stroke
+fill-degenerate-sort-order
+fill-image
+fill-rule
+filter-nearest-offset
+font-matrix-translation
+ft-color-font
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
+gradient-constant-alpha
+gradient-zero-stops
+group-unaligned
+hairline
+hairline-anisotropic
+hairline-anisotropic-incorrect
+hairline-big
+hairline-scaled
+halo
+halo-transform
+horizontal-clip
+image-surface-source
+inverse-text
+joins
+joins-loop
+joins-retrace
+joins-star
+large-font
+leaky-dash
+leaky-dashed-rectangle
+leaky-dashed-stroke
+leaky-polygon
+line-width
+line-width-large-overlap-dashed
+line-width-overlap
+line-width-overlap-dashed
+line-width-overlap-flipped
+line-width-overlap-flopped
+line-width-overlap-offset
+line-width-scale
+line-width-tolerance
+long-dashed-lines
+miter-precision
+new-sub-path
+overlapping-glyphs
+path-append
+path-stroke-twice
+pdf-surface-source
+pixman-downscale-fast-95
+pixman-downscale-nearest-95
+pixman-rotate
+ps-surface-source
+pthread-same-source
+radial-gradient-source
+random-intersections-curves-eo
+random-intersections-curves-nz
+random-intersections-eo
+random-intersections-nonzero
+record-extend-reflect
+record-neg-extents-bounded
+record-neg-extents-unbounded
+record-replay-extend-reflect
+record-replay-extend-repeat
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-select-font-face
+record2x-self-intersecting
+record2x-text-transform
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+rectilinear-dash
+rectilinear-dash-scale
+rectilinear-dash-scale-unaligned
+rectilinear-grid
+rectilinear-miter-limit
+rectilinear-stroke
+reflected-stroke
+rel-path
+rotate-clip-image-surface-paint
+rotate-image-surface-paint
+rotate-stroke-box
+round-join-bug-520-bevel
+round-join-bug-520-round
+rounded-rectangle-fill
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+scale-source-surface-paint
+select-font-face
+self-intersecting
+set-source
+shape-general-convex
+shape-sierpinski
+show-glyphs-advance
+show-text-current-point
+smask
+smask-text
+smp-glyph
+source-surface-scale-paint
+spline-decomposition
+stroke-clipped
+stroke-ctm-caps
+stroke-image
+stroke-open-box
+surface-pattern
+surface-pattern-scale-down
+surface-pattern-scale-down-extend-reflect
+surface-pattern-scale-up
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+thin-lines
+tiger
+transforms
+twin
+unclosed-strokes
+user-font
+user-font-mask
+user-font-proxy
+user-font-rescale
+user-font-subpixel
+world-map
+world-map-fill
+world-map-stroke
+xcb-surface-source
+xlib-surface-source
diff --git a/.gitlab-ci/ignore-ps3-argb32.txt b/.gitlab-ci/ignore-ps3-argb32.txt
new file mode 100644
index 000000000..ee227c8f7
--- /dev/null
+++ b/.gitlab-ci/ignore-ps3-argb32.txt
@@ -0,0 +1,217 @@
+arc-direction
+arc-looping-dash
+bug-448
+bug-51910
+bug-bo-ricotz
+bug-extents
+bug-image-compositor
+bug-spline
+caps
+caps-05
+caps-1
+caps-2
+caps-joins
+caps-joins-05
+caps-joins-1
+caps-joins-2
+caps-joins-curve
+caps-sub-paths
+caps-tails-curve
+clear-source
+clip-complex-bug61592
+clip-disjoint
+clip-fill
+clip-fill-rule
+clip-group-shapes-circles
+clip-image
+clip-nesting
+clip-push-group
+clip-rotate-image-surface-paint
+clip-shape
+clip-stroke
+clip-text
+clip-twice
+clip-unbounded
+close-path
+close-path-current-point
+copy-path
+culled-glyphs
+curve-to-as-line-to
+dash-caps-joins
+dash-curve
+dash-infinite-loop
+dash-no-dash
+dash-offset
+dash-offset-negative
+dash-scale
+dash-state
+dash-zero-length
+degenerate-arc
+degenerate-curve-to
+degenerate-dash
+degenerate-path
+degenerate-pen
+degenerate-rel-curve-to
+degenerate-solid-dash
+drunkard-tails
+extend-reflect
+extend-reflect-similar
+extended-blend
+extended-blend-alpha-mask
+extended-blend-solid
+fallback
+fill-and-stroke
+fill-degenerate-sort-order
+fill-image
+fill-rule
+filter-nearest-offset
+filter-nearest-transformed
+finer-grained-fallbacks
+font-matrix-translation
+ft-color-font
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
+gradient-constant-alpha
+group-unaligned
+hairline
+hairline-anisotropic
+hairline-anisotropic-incorrect
+hairline-big
+hairline-scaled
+halo
+halo-transform
+horizontal-clip
+inverse-text
+joins
+joins-loop
+joins-retrace
+joins-star
+large-font
+leaky-dash
+leaky-dashed-rectangle
+leaky-dashed-stroke
+leaky-polygon
+line-width
+line-width-large-overlap-dashed
+line-width-overlap
+line-width-overlap-dashed
+line-width-overlap-flipped
+line-width-overlap-flopped
+line-width-overlap-offset
+line-width-scale
+line-width-tolerance
+linear-gradient
+linear-gradient-reflect
+linear-gradient-subset
+long-dashed-lines
+mask-transformed-image
+mesh-pattern-conical
+mesh-pattern-control-points
+mesh-pattern-fold
+mesh-pattern-overlap
+miter-precision
+new-sub-path
+operator-www
+over-around-source
+over-below-source
+overlapping-glyphs
+path-append
+path-stroke-twice
+pixman-downscale-fast-95
+pixman-downscale-nearest-95
+pixman-rotate
+pthread-same-source
+push-group-color
+radial-gradient
+radial-gradient-mask
+radial-gradient-mask-source
+radial-gradient-one-stop
+random-clip
+random-intersections-curves-eo
+random-intersections-curves-nz
+random-intersections-eo
+random-intersections-nonzero
+record-extend-reflect
+record-neg-extents-bounded
+record-neg-extents-unbounded
+record-replay-extend-reflect
+record-replay-extend-repeat
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-select-font-face
+record2x-self-intersecting
+record2x-text-transform
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+rectilinear-dash
+rectilinear-dash-scale
+rectilinear-dash-scale-unaligned
+rectilinear-grid
+rectilinear-miter-limit
+rectilinear-stroke
+reflected-stroke
+rotate-clip-image-surface-paint
+rotate-image-surface-paint
+rotate-stroke-box
+rotated-clip
+round-join-bug-520-bevel
+round-join-bug-520-round
+rounded-rectangle-fill
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+stroke-clipped
+stroke-image
+stroke-open-box
+select-font-face
+self-copy-overlap
+self-intersecting
+shape-general-convex
+shape-sierpinski
+show-glyphs-advance
+show-text-current-point
+smask
+smask-text
+smp-glyph
+spline-decomposition
+stroke-clipped
+stroke-ctm-caps
+stroke-image
+stroke-open-box
+surface-pattern
+surface-pattern-scale-down
+surface-pattern-scale-down-extend-reflect
+surface-pattern-scale-up
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+thin-lines
+tiger
+transforms
+trap-clip
+twin
+unclosed-strokes
+user-font
+user-font-color
+user-font-mask
+user-font-proxy
+user-font-rescale
+user-font-subpixel
+world-map
+world-map-fill
+world-map-stroke
diff --git a/.gitlab-ci/ignore-ps3-rgb24.txt b/.gitlab-ci/ignore-ps3-rgb24.txt
new file mode 100644
index 000000000..c4c6a0362
--- /dev/null
+++ b/.gitlab-ci/ignore-ps3-rgb24.txt
@@ -0,0 +1,209 @@
+arc-direction
+arc-looping-dash
+bug-361
+bug-431
+bug-448
+bug-51910
+bug-bo-ricotz
+bug-extents
+bug-image-compositor
+bug-spline
+caps
+caps-05
+caps-1
+caps-2
+caps-joins
+caps-joins-05
+caps-joins-1
+caps-joins-2
+caps-joins-curve
+caps-sub-paths
+caps-tails-curve
+clear-source
+clip-complex-bug61592
+clip-fill
+clip-fill-rule
+clip-group-shapes-circles
+clip-image
+clip-nesting
+clip-push-group
+clip-rotate-image-surface-paint
+clip-shape
+clip-stroke
+clip-text
+clip-twice
+close-path
+close-path-current-point
+copy-path
+culled-glyphs
+curve-to-as-line-to
+dash-caps-joins
+dash-curve
+dash-infinite-loop
+dash-no-dash
+dash-offset
+dash-offset-negative
+dash-scale
+dash-state
+dash-zero-length
+degenerate-arc
+degenerate-curve-to
+degenerate-dash
+degenerate-path
+degenerate-pen
+degenerate-rel-curve-to
+degenerate-solid-dash
+drunkard-tails
+extend-reflect
+extend-reflect-similar
+extended-blend-alpha-mask
+fill-and-stroke
+fill-degenerate-sort-order
+fill-image
+fill-rule
+filter-nearest-offset
+filter-nearest-transformed
+font-matrix-translation
+ft-color-font
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
+gradient-zero-stops
+group-unaligned
+hairline
+hairline-anisotropic
+hairline-anisotropic-incorrect
+hairline-big
+hairline-scaled
+halo
+halo-transform
+horizontal-clip
+image-surface-source
+inverse-text
+joins
+joins-loop
+joins-retrace
+joins-star
+large-font
+leaky-dash
+leaky-dashed-rectangle
+leaky-dashed-stroke
+leaky-polygon
+line-width
+line-width-large-overlap-dashed
+line-width-overlap
+line-width-overlap-dashed
+line-width-overlap-flipped
+line-width-overlap-flopped
+line-width-overlap-offset
+line-width-scale
+line-width-tolerance
+linear-gradient
+linear-gradient-reflect
+linear-gradient-subset
+long-dashed-lines
+mask-transformed-image
+mesh-pattern-conical
+mesh-pattern-control-points
+mesh-pattern-fold
+mesh-pattern-overlap
+miter-precision
+new-sub-path
+overlapping-glyphs
+path-append
+path-stroke-twice
+pdf-surface-source
+pixman-downscale-fast-95
+pixman-downscale-nearest-95
+pixman-rotate
+ps-surface-source
+pthread-same-source
+push-group-color
+radial-gradient-one-stop
+radial-gradient-source
+random-intersections-curves-eo
+random-intersections-curves-nz
+random-intersections-eo
+random-intersections-nonzero
+record-extend-reflect
+record-neg-extents-bounded
+record-neg-extents-unbounded
+record-replay-extend-reflect
+record-replay-extend-repeat
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-select-font-face
+record2x-self-intersecting
+record2x-text-transform
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+rectilinear-dash
+rectilinear-dash-scale
+rectilinear-dash-scale-unaligned
+rectilinear-grid
+rectilinear-miter-limit
+rectilinear-stroke
+reflected-stroke
+rel-path
+rotate-clip-image-surface-paint
+rotate-image-surface-paint
+rotate-stroke-box
+round-join-bug-520-bevel
+round-join-bug-520-round
+rounded-rectangle-fill
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+scale-source-surface-paint
+select-font-face
+self-intersecting
+set-source
+shape-general-convex
+shape-sierpinski
+show-glyphs-advance
+show-text-current-point
+smask
+smask-text
+smp-glyph
+source-surface-scale-paint
+spline-decomposition
+stroke-clipped
+stroke-ctm-caps
+stroke-image
+stroke-open-box
+surface-pattern
+surface-pattern-scale-down
+surface-pattern-scale-down-extend-reflect
+surface-pattern-scale-up
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+thin-lines
+tiger
+transforms
+trap-clip
+twin
+unclosed-strokes
+user-font
+user-font-mask
+user-font-proxy
+user-font-rescale
+user-font-subpixel
+world-map
+world-map-fill
+world-map-stroke
+xcb-surface-source
+xlib-surface-source
diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c
index 05d04b78e..7e8b10cd7 100644
--- a/test/cairo-test-runner.c
+++ b/test/cairo-test-runner.c
@@ -942,6 +942,20 @@ main (int argc, char **argv)
if (ctx.test->preamble != NULL) {
status = _cairo_test_runner_preamble (&runner, &ctx);
+ if (getenv ("CAIRO_TEST_UGLY_HACK_TO_IGNORE_PS_FAILURES")) {
+ if (strcmp (ctx.test_name, "ps-eps") == 0 || strcmp (ctx.test_name, "fallback-resolution") == 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 update the corresponding CAIRO_TEST_IGNORE_* variable.\n");
+ status = CAIRO_TEST_ERROR;
+ }
+ }
+ }
switch (status) {
case CAIRO_TEST_SUCCESS:
in_preamble = TRUE;
More information about the cairo-commit
mailing list