fix cubic linear test
Check to see if the line between end points is
degenerate before measuring control points.
Also, add test case for a bug to see if it
shows up on any platform.
TBR=reed@google.com
BUG=skia:5169, skia:5240
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2375053002
Review-Url: https://codereview.chromium.org/2375053002
diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
index 5cd0e75..1cc9ac4 100644
--- a/tests/PathOpsOpTest.cpp
+++ b/tests/PathOpsOpTest.cpp
@@ -5395,6 +5395,17 @@
testPathOp(reporter, path, pathB, kDifference_SkPathOp, filename);
}
+static void bug5240(skiatest::Reporter* reporter, const char* filename) {
+ SkPath path;
+path.moveTo(815, 82);
+path.cubicTo(814.4794311523438f, 82.7868881225586f, 814.5330810546875f,
+82.6266555786133f, 814.5291137695312f, 82.6252212524414f);
+path.cubicTo(814.5229492187500f, 82.6230010986328f, 814.3790283203125f,
+83.0008087158203f, 813.8533935546875f, 82.7072601318359f);
+path.close();
+ testPathOp(reporter, path, path, kUnion_SkPathOp, filename);
+}
+
static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
@@ -5402,6 +5413,7 @@
#define TEST(name) { name, #name }
static struct TestDesc tests[] = {
+ TEST(bug5240),
TEST(circlesOp4),
TEST(loop17),
TEST(cubicOp158),