Index: tests/PathTest.cpp |
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp |
index 429d9e980fa707b4fdfd05b20aa97799a6b8dd38..032b646d4e194314f61be4caf0e58c7b9b791401 100644 |
--- a/tests/PathTest.cpp |
+++ b/tests/PathTest.cpp |
@@ -138,6 +138,25 @@ static void test_fuzz_crbug_638223() { |
canvas->drawPath(path, paint); |
} |
+static void test_fuzz_crbug_643933() { |
+ auto surface(SkSurface::MakeRasterN32Premul(250, 250)); |
+ SkCanvas* canvas = surface->getCanvas(); |
+ SkPaint paint; |
+ paint.setAntiAlias(true); |
+ SkPath path; |
+ path.moveTo(0, 0); |
+ path.conicTo(SkBits2Float(0x002001f2), SkBits2Float(0x4161ffff), // 2.93943e-39f, 14.125f |
+ SkBits2Float(0x49f7224d), SkBits2Float(0x45eec8df), // 2.02452e+06f, 7641.11f |
+ SkBits2Float(0x721aee0c)); // 3.0687e+30f |
+ canvas->drawPath(path, paint); |
+ path.reset(); |
+ path.moveTo(0, 0); |
+ path.conicTo(SkBits2Float(0x00007ff2), SkBits2Float(0x4169ffff), // 4.58981e-41f, 14.625f |
+ SkBits2Float(0x43ff2261), SkBits2Float(0x41eeea04), // 510.269f, 29.8643f |
+ SkBits2Float(0x5d06eff8)); // 6.07704e+17f |
+ canvas->drawPath(path, paint); |
+} |
+ |
/** |
* In debug mode, this path was causing an assertion to fail in |
* SkPathStroker::preJoinTo() and, in Release, the use of an unitialized value. |
@@ -4256,6 +4275,7 @@ DEF_TEST(PathContains, reporter) { |
} |
DEF_TEST(Paths, reporter) { |
+ test_fuzz_crbug_643933(); |
test_sect_with_horizontal_needs_pinning(); |
test_crbug_629455(reporter); |
test_fuzz_crbug_627414(reporter); |