# Failures of any GM tests listed in this file will be ignored [1], as
# if they had been marked "ignore-failure": true in the per-builder
# expected-results.json files.
#
# The idea is that, if you modify a GM test in such a way that you know it will
# require rebaselines on multiple platforms, you should add that test's name to
# this list within the same CL that modifies the test.
# Then, AS SOON AS POSSIBLE, you should rebaseline the tests (they will show up
# as status "failure-ignored") and remove the line you added to this file.
# If there are any lingering failures that need to be suppressed (ignored), you
# MUST move those suppressions into the per-builder expected-results.json files.
#
# The test name must match exactly (no partial string matches).
# See http://skbug.com/2022
#
# Any lines starting with '#' are comments and will be ignored.
# Other than that, each line must either be whitespace or list just one test.
#
# For more information, see https://code.google.com/p/skia/issues/detail?id=1600
# ('GM expectations: create tool to suppress failures until new baselines are
# checked in')
#
#
# [1] Differences between renderModes (e.g., normal rendering path and
# "serialized") are NEVER ignored.  See
# https://code.google.com/p/skia/issues/detail?id=1748 ('gm: add new result
# type, RenderModeMismatch')

# EXAMPLES: (remove the first '#' on each line)
#
## Added as part of MADE-UP BUG
## http://skbug.com/123456 : ignoring failures on gradtext GM test
## epoger will rebaseline by 25 Dec 2013
#gradtext

# robertphillips - skia:2995
blurrects

# senorblanco https://codereview.chromium.org/681643003/
# minor pixel diffs from bounds change
testimagefilters

# sugoi https://codereview.chromium.org/646213004/
# New shadow only option in SkDropShadowImageFilter
dropshadowimagefilter

# senorblanco https://codereview.chromium.org/637283009/
# quality improvements to imagemagnifier GM
imagemagnifier

# robertphillips https://codereview.chromium.org/698493002/
multipicturedraw_biglayer_simple
multipicturedraw_biglayer_tiled
multipicturedraw_invpathclip_simple
multipicturedraw_invpathclip_tiled
multipicturedraw_noclip_simple
multipicturedraw_noclip_tiled
multipicturedraw_pathclip_simple
multipicturedraw_pathclip_tiled
multipicturedraw_rectclip_simple
multipicturedraw_rectclip_tiled
multipicturedraw_rrectclip_simple
multipicturedraw_rrectclip_tiled
multipicturedraw_sierpinski_simple
multipicturedraw_sierpinski_tiled

#jvanverth https://codereview.chromium.org/703463002
dftext
nested_aa
path-reverse
pathfill
polygons
pathopsinverse
rects

