| Index: tests/PathOpsOpTest.cpp
|
| diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
|
| index 531779292200a58991bf26bd2f2586d9f11a21a0..1d63bd7ab636b6c205081e1a68f51ee347248ab7 100644
|
| --- a/tests/PathOpsOpTest.cpp
|
| +++ b/tests/PathOpsOpTest.cpp
|
| @@ -5,6 +5,7 @@
|
| * found in the LICENSE file.
|
| */
|
| #include "PathOpsExtendedTest.h"
|
| +#include "PathOpsTestCommon.h"
|
|
|
| #define TEST(name) { name, #name }
|
|
|
| @@ -1832,8 +1833,6 @@ static void skpkkiste_to98(skiatest::Reporter* reporter, const char* filename) {
|
| testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
|
| }
|
|
|
| -#define ISSUE_1417_WORKING_ON_LINUX_32 0 // fails only in release linux skia_arch_width=32
|
| -#if ISSUE_1417_WORKING_ON_LINUX_32
|
| static void issue1417(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path1;
|
| path1.moveTo(122.58908843994140625f, 82.2836456298828125f);
|
| @@ -1945,7 +1944,6 @@ static void issue1417(skiatest::Reporter* reporter, const char* filename) {
|
|
|
| testPathOp(reporter, path1, path2, kUnion_PathOp, filename);
|
| }
|
| -#endif
|
|
|
| static void issue1418(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path1;
|
| @@ -2065,8 +2063,6 @@ static void rectOp3x(skiatest::Reporter* reporter, const char* filename) {
|
| testPathOp(reporter, path, pathB, kXOR_PathOp, filename);
|
| }
|
|
|
| -#define ISSUE_1435_FIXED 0
|
| -#if ISSUE_1435_FIXED
|
| // this fails to generate two interior line segments
|
| // an earlier pathops succeeded, but still failed to generate one interior line segment
|
| // (but was saved by assemble, which works around a single line missing segment)
|
| @@ -2120,7 +2116,6 @@ static void issue1435(skiatest::Reporter* reporter, const char* filename) {
|
| path2.setFillType(SkPath::kEvenOdd_FillType);
|
| testPathOp(reporter, path1, path2, kIntersect_PathOp, filename);
|
| }
|
| -#endif
|
|
|
| static void skpkkiste_to716(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path;
|
| @@ -2736,8 +2731,8 @@ static void skpcarpetplanet_ru22(skiatest::Reporter* reporter, const char* filen
|
| testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
|
| }
|
|
|
| -#define SKPS_WORKING 0
|
| -#if SKPS_WORKING
|
| +#define QUAD_CUBIC_FAILS_TO_FIND_INTERSECTION 0
|
| +#if QUAD_CUBIC_FAILS_TO_FIND_INTERSECTION
|
| // this fails because cubic/quad misses an intersection (failure is isolated in c/q int test)
|
| static void skpcarrot_is24(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path;
|
| @@ -3277,8 +3272,6 @@ static void cubicOp112(skiatest::Reporter* reporter, const char* filename) {
|
| testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
|
| }
|
|
|
| -// triggers untested calcLoopSpanCount code path
|
| -#if 0
|
| static void cubicOp113(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path, pathB;
|
| path.moveTo(2,4);
|
| @@ -3289,8 +3282,9 @@ static void cubicOp113(skiatest::Reporter* reporter, const char* filename) {
|
| pathB.close();
|
| testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
|
| }
|
| -#endif
|
|
|
| +#define CUBIC_OP_114 0
|
| +#if CUBIC_OP_114
|
| static void cubicOp114(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path, pathB;
|
| path.setFillType(SkPath::kWinding_FillType);
|
| @@ -3303,6 +3297,23 @@ static void cubicOp114(skiatest::Reporter* reporter, const char* filename) {
|
| pathB.close();
|
| testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
|
| }
|
| +#endif
|
| +
|
| +static void cubicOp114asQuad(skiatest::Reporter* reporter, const char* filename) {
|
| + SkPath path, pathB;
|
| + path.setFillType(SkPath::kWinding_FillType);
|
| + path.moveTo(0, 1);
|
| + path.cubicTo(1, 3, -1, 2, 3.5f, 1.33333337f);
|
| + path.close();
|
| + pathB.setFillType(SkPath::kWinding_FillType);
|
| + pathB.moveTo(1, 3);
|
| + pathB.cubicTo(-1, 2, 3.5f, 1.33333337f, 0, 1);
|
| + pathB.close();
|
| + SkPath qPath, qPathB;
|
| + CubicPathToQuads(path, &qPath);
|
| + CubicPathToQuads(pathB, &qPathB);
|
| + testPathOp(reporter, qPath, qPathB, kIntersect_PathOp, filename);
|
| +}
|
|
|
| static void quadOp10i(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path, pathB;
|
| @@ -3354,8 +3365,6 @@ static void issue2504(skiatest::Reporter* reporter, const char* filename) {
|
| testPathOp(reporter, path1, path2, kUnion_PathOp, filename);
|
| }
|
|
|
| -#define TEST_2540 0
|
| -#if TEST_2540 // FIXME: extends cubic arm for sorting, marks extension with wrong winding?
|
| static void issue2540(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path1;
|
| path1.moveTo(26.5054988861083984375, 85.73960113525390625);
|
| @@ -3375,7 +3384,6 @@ static void issue2540(skiatest::Reporter* reporter, const char* filename) {
|
| path2.close();
|
| testPathOp(reporter, path1, path2, kUnion_PathOp, filename);
|
| }
|
| -#endif
|
|
|
| static void rects1(skiatest::Reporter* reporter, const char* filename) {
|
| SkPath path, pathB;
|
| @@ -3457,30 +3465,25 @@ static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
|
| static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
|
|
|
| static struct TestDesc tests[] = {
|
| +#if CUBIC_OP_114 // FIXME: curve with inflection is ordered the wrong way
|
| + TEST(cubicOp114),
|
| +#endif
|
| + TEST(cubicOp114asQuad),
|
| TEST(rects4),
|
| TEST(rects3),
|
| TEST(rects2),
|
| TEST(rects1),
|
| -#if TEST_2540 // FIXME: extends cubic arm for sorting, marks extension with wrong winding?
|
| TEST(issue2540),
|
| -#endif
|
| TEST(issue2504),
|
| TEST(kari1),
|
| TEST(quadOp10i),
|
| -#if 0 // FIXME: serpentine curve is ordered the wrong way
|
| - TEST(cubicOp114),
|
| -#endif
|
| -#if 0 // FIXME: currently failing
|
| TEST(cubicOp113),
|
| -#endif
|
| -#if SKPS_WORKING
|
| +#if QUAD_CUBIC_FAILS_TO_FIND_INTERSECTION
|
| // fails because a cubic/quadratic intersection is missed
|
| // the internal quad/quad is far enough away from the real cubic/quad that it is rejected
|
| TEST(skpcarrot_is24),
|
| #endif
|
| -#if ISSUE_1417_WORKING_ON_LINUX_32
|
| TEST(issue1417),
|
| -#endif
|
| TEST(cubicOp112),
|
| TEST(skpadspert_net23),
|
| TEST(skpadspert_de11),
|
| @@ -3502,9 +3505,7 @@ static struct TestDesc tests[] = {
|
| TEST(cubicOp101),
|
| TEST(cubicOp100),
|
| TEST(cubicOp99),
|
| -#if ISSUE_1435_FIXED
|
| TEST(issue1435),
|
| -#endif
|
| TEST(cubicOp98x),
|
| TEST(cubicOp97x),
|
| TEST(skpcarpetplanet_ru22), // cubic/cubic intersect detects unwanted coincidence
|
| @@ -3682,7 +3683,6 @@ static struct TestDesc tests[] = {
|
| static const size_t testCount = SK_ARRAY_COUNT(tests);
|
|
|
| static struct TestDesc subTests[] = {
|
| - TEST(cubicOp114),
|
| TEST(cubicOp58d),
|
| TEST(cubicOp53d),
|
| };
|
|
|