Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Side by Side Diff: tests/PathTest.cpp

Issue 2159223005: re-chop if we fail on a big-bad-cubic (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkEdgeClipper.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include <cmath> 8 #include <cmath>
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkGeometry.h" 10 #include "SkGeometry.h"
(...skipping 4111 matching lines...) Expand 10 before | Expand all | Expand 10 after
4122 SkPath q; 4122 SkPath q;
4123 q.moveTo(10, 10); 4123 q.moveTo(10, 10);
4124 SkPathPriv::AddGenIDChangeListener(q, new ChangeListener(&changed)); 4124 SkPathPriv::AddGenIDChangeListener(q, new ChangeListener(&changed));
4125 REPORTER_ASSERT(reporter, !changed); 4125 REPORTER_ASSERT(reporter, !changed);
4126 } 4126 }
4127 // q went out of scope. 4127 // q went out of scope.
4128 REPORTER_ASSERT(reporter, changed); 4128 REPORTER_ASSERT(reporter, changed);
4129 } 4129 }
4130 }; 4130 };
4131 4131
4132 static void test_crbug_629455(skiatest::Reporter* reporter) {
4133 SkPath path;
4134 path.moveTo(0, 0);
4135 path.cubicTo(SkBits2Float(0xcdcdcd00), SkBits2Float(0xcdcdcdcd),
4136 SkBits2Float(0xcdcdcdcd), SkBits2Float(0xcdcdcdcd),
4137 SkBits2Float(0x423fcdcd), SkBits2Float(0x40ed9341));
4138 // AKA: cubicTo(-4.31596e+08f, -4.31602e+08f, -4.31602e+08f, -4.31602e+08f, 47. 951f, 7.42423f);
4139 path.lineTo(0, 0);
4140
4141 auto surface = SkSurface::MakeRasterN32Premul(100, 100);
4142 SkPaint paint;
4143 paint.setAntiAlias(true);
4144 surface->getCanvas()->drawPath(path, paint);
4145 }
4146
4132 static void test_interp(skiatest::Reporter* reporter) { 4147 static void test_interp(skiatest::Reporter* reporter) {
4133 SkPath p1, p2, out; 4148 SkPath p1, p2, out;
4134 REPORTER_ASSERT(reporter, p1.isInterpolatable(p2)); 4149 REPORTER_ASSERT(reporter, p1.isInterpolatable(p2));
4135 REPORTER_ASSERT(reporter, p1.interpolate(p2, 0, &out)); 4150 REPORTER_ASSERT(reporter, p1.interpolate(p2, 0, &out));
4136 REPORTER_ASSERT(reporter, p1 == out); 4151 REPORTER_ASSERT(reporter, p1 == out);
4137 REPORTER_ASSERT(reporter, p1.interpolate(p2, 1, &out)); 4152 REPORTER_ASSERT(reporter, p1.interpolate(p2, 1, &out));
4138 REPORTER_ASSERT(reporter, p1 == out); 4153 REPORTER_ASSERT(reporter, p1 == out);
4139 p1.moveTo(0, 2); 4154 p1.moveTo(0, 2);
4140 p1.lineTo(0, 4); 4155 p1.lineTo(0, 4);
4141 REPORTER_ASSERT(reporter, !p1.isInterpolatable(p2)); 4156 REPORTER_ASSERT(reporter, !p1.isInterpolatable(p2));
(...skipping 28 matching lines...) Expand all
4170 4185
4171 DEF_TEST(PathInterp, reporter) { 4186 DEF_TEST(PathInterp, reporter) {
4172 test_interp(reporter); 4187 test_interp(reporter);
4173 } 4188 }
4174 4189
4175 DEF_TEST(PathContains, reporter) { 4190 DEF_TEST(PathContains, reporter) {
4176 test_contains(reporter); 4191 test_contains(reporter);
4177 } 4192 }
4178 4193
4179 DEF_TEST(Paths, reporter) { 4194 DEF_TEST(Paths, reporter) {
4195 test_crbug_629455(reporter);
4180 test_fuzz_crbug_627414(reporter); 4196 test_fuzz_crbug_627414(reporter);
4181 test_path_crbug364224(); 4197 test_path_crbug364224();
4182 4198
4183 SkTSize<SkScalar>::Make(3,4); 4199 SkTSize<SkScalar>::Make(3,4);
4184 4200
4185 SkPath p, empty; 4201 SkPath p, empty;
4186 SkRect bounds, bounds2; 4202 SkRect bounds, bounds2;
4187 test_empty(reporter, p); 4203 test_empty(reporter, p);
4188 4204
4189 REPORTER_ASSERT(reporter, p.getBounds().isEmpty()); 4205 REPORTER_ASSERT(reporter, p.getBounds().isEmpty());
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
4326 PathTest_Private::TestPathTo(reporter); 4342 PathTest_Private::TestPathTo(reporter);
4327 PathRefTest_Private::TestPathRef(reporter); 4343 PathRefTest_Private::TestPathRef(reporter);
4328 PathTest_Private::TestPathrefListeners(reporter); 4344 PathTest_Private::TestPathrefListeners(reporter);
4329 test_dump(reporter); 4345 test_dump(reporter);
4330 test_path_crbug389050(reporter); 4346 test_path_crbug389050(reporter);
4331 test_path_crbugskia2820(reporter); 4347 test_path_crbugskia2820(reporter);
4332 test_skbug_3469(reporter); 4348 test_skbug_3469(reporter);
4333 test_skbug_3239(reporter); 4349 test_skbug_3239(reporter);
4334 test_bounds_crbug_513799(reporter); 4350 test_bounds_crbug_513799(reporter);
4335 } 4351 }
OLDNEW
« no previous file with comments | « src/core/SkEdgeClipper.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698