| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 #include "PathOpsExtendedTest.h" | 7 #include "PathOpsExtendedTest.h" |
| 8 #include "PathOpsTestCommon.h" | 8 #include "PathOpsTestCommon.h" |
| 9 | 9 |
| 10 class PathTest_Private { | 10 class PathTest_Private { |
| (...skipping 5546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5557 #endif | 5557 #endif |
| 5558 if (runSubTests && runSubTestsFirst) { | 5558 if (runSubTests && runSubTestsFirst) { |
| 5559 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop
Test, runReverse); | 5559 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop
Test, runReverse); |
| 5560 } | 5560 } |
| 5561 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev
erse); | 5561 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev
erse); |
| 5562 if (runSubTests && !runSubTestsFirst) { | 5562 if (runSubTests && !runSubTestsFirst) { |
| 5563 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop
Test, runReverse); | 5563 RunTestSet(reporter, subTests, subTestCount, firstSubTest, nullptr, stop
Test, runReverse); |
| 5564 } | 5564 } |
| 5565 } | 5565 } |
| 5566 | 5566 |
| 5567 static void fuzz535151(skiatest::Reporter* reporter, const char* filename) { |
| 5568 SkPath one; |
| 5569 one.setFillType(SkPath::kWinding_FillType); |
| 5570 SkPath two; |
| 5571 two.setFillType(SkPath::kWinding_FillType); |
| 5572 two.moveTo(0, 0); |
| 5573 two.lineTo(0, 50); |
| 5574 two.lineTo(4.29497e+09f, 50); |
| 5575 SkPath dummy; |
| 5576 REPORTER_ASSERT(reporter, !Op(one, two, kIntersect_SkPathOp, &dummy)); |
| 5577 } |
| 5578 |
| 5567 static void bufferOverflow(skiatest::Reporter* reporter, const char* filename) { | 5579 static void bufferOverflow(skiatest::Reporter* reporter, const char* filename) { |
| 5568 SkPath path; | 5580 SkPath path; |
| 5569 path.addRect(0,0, 300,170141183460469231731687303715884105728.f); | 5581 path.addRect(0,0, 300,170141183460469231731687303715884105728.f); |
| 5570 SkPath pathB; | 5582 SkPath pathB; |
| 5571 pathB.addRect(0,0, 300,16); | 5583 pathB.addRect(0,0, 300,16); |
| 5572 testPathOp(reporter, path, pathB, kUnion_SkPathOp, filename); | 5584 testPathOp(reporter, path, pathB, kUnion_SkPathOp, filename); |
| 5573 } | 5585 } |
| 5574 | 5586 |
| 5575 // m 100,0 60,170 -160,-110 200,0 -170,11000000000 z | 5587 // m 100,0 60,170 -160,-110 200,0 -170,11000000000 z |
| 5576 static void fuzz433(skiatest::Reporter* reporter, const char* filename) { | 5588 static void fuzz433(skiatest::Reporter* reporter, const char* filename) { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5774 path.cubicTo(SkBits2Float(0x4220d9fc), SkBits2Float(0xcf223cc0), SkBits2Float(0x
420ee118), SkBits2Float(0xcf223cc0), SkBits2Float(0x41cef2f8), SkBits2Float(0xcf
223cc0)); // 40.2129f, -2.72189e+09f, 35.7198f, -2.72189e+09f, 25.8686f, -2.721
89e+09f | 5786 path.cubicTo(SkBits2Float(0x4220d9fc), SkBits2Float(0xcf223cc0), SkBits2Float(0x
420ee118), SkBits2Float(0xcf223cc0), SkBits2Float(0x41cef2f8), SkBits2Float(0xcf
223cc0)); // 40.2129f, -2.72189e+09f, 35.7198f, -2.72189e+09f, 25.8686f, -2.721
89e+09f |
| 5775 path.lineTo(SkBits2Float(0x424a99e0), SkBits2Float(0xcf223cc0)); // 50.6503f, -
2.72189e+09f | 5787 path.lineTo(SkBits2Float(0x424a99e0), SkBits2Float(0xcf223cc0)); // 50.6503f, -
2.72189e+09f |
| 5776 path.cubicTo(SkBits2Float(0x42266e32), SkBits2Float(0xcf223cc0), SkBits2Float(0x
41f0fa20), SkBits2Float(0xcf223cc0), SkBits2Float(0x41872ed4), SkBits2Float(0xcf
223cc0)); // 41.6076f, -2.72189e+09f, 30.1221f, -2.72189e+09f, 16.8979f, -2.721
89e+09f | 5788 path.cubicTo(SkBits2Float(0x42266e32), SkBits2Float(0xcf223cc0), SkBits2Float(0x
41f0fa20), SkBits2Float(0xcf223cc0), SkBits2Float(0x41872ed4), SkBits2Float(0xcf
223cc0)); // 41.6076f, -2.72189e+09f, 30.1221f, -2.72189e+09f, 16.8979f, -2.721
89e+09f |
| 5777 path.lineTo(SkBits2Float(0x40f8fbe0), SkBits2Float(0xcf223cc0)); // 7.78075f, -
2.72189e+09f | 5789 path.lineTo(SkBits2Float(0x40f8fbe0), SkBits2Float(0xcf223cc0)); // 7.78075f, -
2.72189e+09f |
| 5778 | 5790 |
| 5779 SkPath path2(path); | 5791 SkPath path2(path); |
| 5780 testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename); | 5792 testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename); |
| 5781 } | 5793 } |
| 5782 | 5794 |
| 5783 static struct TestDesc failTests[] = { | 5795 static struct TestDesc failTests[] = { |
| 5796 TEST(fuzz535151), |
| 5784 TEST(fuzz753_91), | 5797 TEST(fuzz753_91), |
| 5785 TEST(fuzz714), | 5798 TEST(fuzz714), |
| 5786 TEST(fuzz487a), | 5799 TEST(fuzz487a), |
| 5787 TEST(fuzz433), | 5800 TEST(fuzz433), |
| 5788 TEST(fuzz1), | 5801 TEST(fuzz1), |
| 5789 TEST(fuzz487b), | 5802 TEST(fuzz487b), |
| 5790 TEST(fuzz433b), | 5803 TEST(fuzz433b), |
| 5791 TEST(bufferOverflow), | 5804 TEST(bufferOverflow), |
| 5792 }; | 5805 }; |
| 5793 | 5806 |
| 5794 static const size_t failTestCount = SK_ARRAY_COUNT(failTests); | 5807 static const size_t failTestCount = SK_ARRAY_COUNT(failTests); |
| 5795 | 5808 |
| 5796 DEF_TEST(PathOpsFailOp, reporter) { | 5809 DEF_TEST(PathOpsFailOp, reporter) { |
| 5797 #if DEBUG_SHOW_TEST_NAME | 5810 #if DEBUG_SHOW_TEST_NAME |
| 5798 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 5811 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); |
| 5799 #endif | 5812 #endif |
| 5800 RunTestSet(reporter, failTests, failTestCount, nullptr, nullptr, nullptr, fa
lse); | 5813 RunTestSet(reporter, failTests, failTestCount, nullptr, nullptr, nullptr, fa
lse); |
| 5801 } | 5814 } |
| OLD | NEW |