diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-08 21:08:21 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-08 21:08:21 +0000 |
commit | 3eff3592acfa6c7b6d4e85c91f0a200eddb09db7 (patch) | |
tree | 99875a4804bdc6ad2129f9103b3f8ce197f219bc /tests | |
parent | 6843bdb7061364c100990e7e0feb3757fca08bb0 (diff) |
need to clamp all of the cubic points after a chop, in case our finite precision
meant we didn't compute values below the chop-point.
crbug:234190
R=caryclark@google.com
Review URL: https://codereview.chromium.org/14607012
git-svn-id: http://skia.googlecode.com/svn/trunk@9071 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PathTest.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp index e65326cef3..d62a8e4d31 100644 --- a/tests/PathTest.cpp +++ b/tests/PathTest.cpp @@ -31,6 +31,20 @@ static SkSurface* new_surface(int w, int h) { return SkSurface::NewRaster(info); } +// This used to assert in the debug build, as the edges did not all line-up. +static void test_bad_cubic_crbug234190() { + SkPath path; + path.moveTo(13.8509f, 3.16858f); + path.cubicTo(-2.35893e+08f, -4.21044e+08f, + -2.38991e+08f, -4.26573e+08f, + -2.41016e+08f, -4.30188e+08f); + + SkPaint paint; + paint.setAntiAlias(true); + SkAutoTUnref<SkSurface> surface(new_surface(84, 88)); + surface->getCanvas()->drawPath(path, paint); +} + static void test_bad_cubic_crbug229478() { const SkPoint pts[] = { { 4595.91064f, -11596.9873f }, @@ -2377,6 +2391,7 @@ static void TestPath(skiatest::Reporter* reporter) { test_clipped_cubic(); test_crbug_170666(); test_bad_cubic_crbug229478(); + test_bad_cubic_crbug234190(); } #include "TestClassDef.h" |