aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/TessellatingPathRendererTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/TessellatingPathRendererTests.cpp')
-rw-r--r--tests/TessellatingPathRendererTests.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp
index 0ff0af71e0..27dc7e5e4c 100644
--- a/tests/TessellatingPathRendererTests.cpp
+++ b/tests/TessellatingPathRendererTests.cpp
@@ -472,6 +472,20 @@ static SkPath create_path_31() {
return path;
}
+// Reduction from skbug.com/7911 that causes a crash due to splitting a
+// zombie edge.
+static SkPath create_path_32() {
+ SkPath path;
+ path.moveTo( 0, 1.0927740941146660348e+24);
+ path.lineTo(2.9333931225865729333e+32, 16476101);
+ path.lineTo(1.0927731573659435417e+24, 1.0927740941146660348e+24);
+ path.lineTo(1.0927740941146660348e+24, 3.7616281094287041715e-37);
+ path.lineTo(1.0927740941146660348e+24, 1.0927740941146660348e+24);
+ path.lineTo(1.3061803026169399536e-33, 1.0927740941146660348e+24);
+ path.lineTo(4.7195362919941370727e-16, -8.4247545146051822591e+32);
+ return path;
+}
+
static std::unique_ptr<GrFragmentProcessor> create_linear_gradient_processor(GrContext* ctx) {
SkPoint pts[2] = { {0, 0}, {1, 1} };
@@ -563,5 +577,6 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) {
test_path(ctx, rtc.get(), create_path_29());
test_path(ctx, rtc.get(), create_path_30());
test_path(ctx, rtc.get(), create_path_31(), SkMatrix(), GrAAType::kCoverage);
+ test_path(ctx, rtc.get(), create_path_32());
}
#endif