aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/ClipCubicTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ClipCubicTest.cpp')
-rw-r--r--tests/ClipCubicTest.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/tests/ClipCubicTest.cpp b/tests/ClipCubicTest.cpp
index 427e753322..ca2f62314d 100644
--- a/tests/ClipCubicTest.cpp
+++ b/tests/ClipCubicTest.cpp
@@ -212,13 +212,23 @@ DEF_TEST(test_fuzz_crbug_698714, reporter) {
canvas->drawPath(path, paint);
}
-DEF_TEST(cubic_scan_error_crbug_844457, reporter) {
+DEF_TEST(cubic_scan_error_crbug_844457_and_845489, reporter) {
auto surface(SkSurface::MakeRasterN32Premul(100, 100));
+ SkCanvas* canvas = surface->getCanvas();
+ SkPaint p;
SkPath path;
path.moveTo(-30/64.0, -31/64.0);
path.cubicTo(-31/64.0, -31/64,-31/64.0, -31/64,-31/64.0, 100);
- path.lineTo(100,100);
-
- surface->getCanvas()->drawPath(path, SkPaint());
+ path.lineTo(100, 100);
+ canvas->drawPath(path, p);
+
+ // May need to define SK_RASTERIZE_EVEN_ROUNDING to trigger the need for this test
+ path.reset();
+ path.moveTo(-30/64.0f, -31/64.0f + 1/256.0f);
+ path.cubicTo(-31/64.0f + 1/256.0f, -31/64.0f + 1/256.0f,
+ -31/64.0f + 1/256.0f, -31/64.0f + 1/256.0f,
+ -31/64.0f + 1/256.0f, 100);
+ path.lineTo(100, 100);
+ canvas->drawPath(path, p);
}