diff options
Diffstat (limited to 'tests/PathTest.cpp')
| -rw-r--r-- | tests/PathTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp index 9be3976dae..81ec1187cb 100644 --- a/tests/PathTest.cpp +++ b/tests/PathTest.cpp @@ -4319,6 +4319,29 @@ static void test_fuzz_crbug_662952(skiatest::Reporter* reporter) { surface->getCanvas()->drawRectCoords(0, 0, 100, 100, paint); } +static void test_path_crbugskia6003() { + auto surface(SkSurface::MakeRasterN32Premul(500, 500)); + SkCanvas* canvas = surface->getCanvas(); + SkPaint paint; + paint.setAntiAlias(true); + SkPath path; + path.moveTo(SkBits2Float(0x4325e666), SkBits2Float(0x42a1999a)); // 165.9f, 80.8f + path.lineTo(SkBits2Float(0x4325e666), SkBits2Float(0x42a2999a)); // 165.9f, 81.3f + path.lineTo(SkBits2Float(0x4325b333), SkBits2Float(0x42a2999a)); // 165.7f, 81.3f + path.lineTo(SkBits2Float(0x4325b333), SkBits2Float(0x42a16666)); // 165.7f, 80.7f + path.lineTo(SkBits2Float(0x4325b333), SkBits2Float(0x429f6666)); // 165.7f, 79.7f + // 165.7f, 79.7f, 165.8f, 79.7f, 165.8f, 79.7f + path.cubicTo(SkBits2Float(0x4325b333), SkBits2Float(0x429f6666), SkBits2Float(0x4325cccc), + SkBits2Float(0x429f6666), SkBits2Float(0x4325cccc), SkBits2Float(0x429f6666)); + // 165.8f, 79.7f, 165.8f, 79.7f, 165.9f, 79.7f + path.cubicTo(SkBits2Float(0x4325cccc), SkBits2Float(0x429f6666), SkBits2Float(0x4325cccc), + SkBits2Float(0x429f6666), SkBits2Float(0x4325e666), SkBits2Float(0x429f6666)); + path.lineTo(SkBits2Float(0x4325e666), SkBits2Float(0x42a1999a)); // 165.9f, 80.8f + path.close(); + canvas->clipPath(path, true); + canvas->drawRectCoords(0, 0, 500, 500, paint); +} + static void test_fuzz_crbug_662730(skiatest::Reporter* reporter) { SkPath path; path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 @@ -4391,6 +4414,7 @@ DEF_TEST(Paths, reporter) { test_fuzz_crbug_662730(reporter); test_fuzz_crbug_662780(); test_mask_overflow(); + test_path_crbugskia6003(); SkTSize<SkScalar>::Make(3,4); |
