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 5329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5340 SkPath path, pathB; | 5340 SkPath path, pathB; |
5341 path.setFillType(SkPath::kWinding_FillType); | 5341 path.setFillType(SkPath::kWinding_FillType); |
5342 path.moveTo(3, 4); | 5342 path.moveTo(3, 4); |
5343 path.cubicTo(0, 6, 6, 1, 4, 2); | 5343 path.cubicTo(0, 6, 6, 1, 4, 2); |
5344 path.close(); | 5344 path.close(); |
5345 pathB.setFillType(SkPath::kWinding_FillType); | 5345 pathB.setFillType(SkPath::kWinding_FillType); |
5346 pathB.moveTo(1, 6); | 5346 pathB.moveTo(1, 6); |
5347 pathB.cubicTo(2, 4, 4, 3, 6, 0); | 5347 pathB.cubicTo(2, 4, 4, 3, 6, 0); |
5348 pathB.close(); | 5348 pathB.close(); |
5349 // DEBUG_UNDER_DEVELOPMENT cubics_d3 disable expectation check for now | 5349 // DEBUG_UNDER_DEVELOPMENT cubics_d3 disable expectation check for now |
| 5350 // fails because segment 3 is marked as unorderable ? |
5350 testPathOpCheck(reporter, path, pathB, kDifference_SkPathOp, filename, !FLAG
S_runFail); | 5351 testPathOpCheck(reporter, path, pathB, kDifference_SkPathOp, filename, !FLAG
S_runFail); |
5351 } | 5352 } |
5352 | 5353 |
5353 static void cubics_o(skiatest::Reporter* reporter, const char* filename) { | 5354 static void cubics_o(skiatest::Reporter* reporter, const char* filename) { |
5354 SkPath path, pathB; | 5355 SkPath path, pathB; |
5355 path.setFillType(SkPath::kWinding_FillType); | 5356 path.setFillType(SkPath::kWinding_FillType); |
5356 path.moveTo(1, 4); | 5357 path.moveTo(1, 4); |
5357 path.cubicTo(2, 6, 5, 0, 5, 3); | 5358 path.cubicTo(2, 6, 5, 0, 5, 3); |
5358 path.close(); | 5359 path.close(); |
5359 pathB.setFillType(SkPath::kWinding_FillType); | 5360 pathB.setFillType(SkPath::kWinding_FillType); |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6438 SkPath path1(path); | 6439 SkPath path1(path); |
6439 path.reset(); | 6440 path.reset(); |
6440 path.setFillType((SkPath::FillType) 0); | 6441 path.setFillType((SkPath::FillType) 0); |
6441 path.moveTo(SkBits2Float(0x3ac23a55), SkBits2Float(0x2a292827)); // 0.00148184f
, 1.50241e-13f | 6442 path.moveTo(SkBits2Float(0x3ac23a55), SkBits2Float(0x2a292827)); // 0.00148184f
, 1.50241e-13f |
6442 path.lineTo(SkBits2Float(0x63962be6), SkBits2Float(0x272a812a)); // 5.54035e+21
f, 2.36623e-15f | 6443 path.lineTo(SkBits2Float(0x63962be6), SkBits2Float(0x272a812a)); // 5.54035e+21
f, 2.36623e-15f |
6443 | 6444 |
6444 SkPath path2(path); | 6445 SkPath path2(path); |
6445 testPathOpFail(reporter, path1, path2, (SkPathOp) 0, filename); | 6446 testPathOpFail(reporter, path1, path2, (SkPathOp) 0, filename); |
6446 } | 6447 } |
6447 | 6448 |
| 6449 static void fuzz763_7(skiatest::Reporter* reporter, const char* filename) { |
| 6450 SkPath path; |
| 6451 path.setFillType((SkPath::FillType) 0); |
| 6452 |
| 6453 SkPath path1(path); |
| 6454 path.reset(); |
| 6455 path.setFillType((SkPath::FillType) 0); |
| 6456 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0x555b2d29)); // 4.03114e+24
f, 1.50617e+13f |
| 6457 path.moveTo(SkBits2Float(0x0f2a312a), SkBits2Float(0xc0032108)); // 8.39112e-30
f, -2.04889f |
| 6458 path.cubicTo(SkBits2Float(0x68392d55), SkBits2Float(0xf05b684b), SkBits2Float(0x
8c55272d), SkBits2Float(0x212a1f2a), SkBits2Float(0x0321082a), SkBits2Float(0x6a
4b7bc0)); // 3.4979e+24f, -2.71613e+29f, -1.64207e-31f, 5.76395e-19f, 4.7323e-3
7f, 6.14991e+25f |
| 6459 path.conicTo(SkBits2Float(0x212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x
6a4b7bc0), SkBits2Float(0x2829ed84), SkBits2Float(0x2d555b2d)); // 5.77848e-19f
, 4.7323e-37f, 6.14991e+25f, 9.43289e-15f, 1.21279e-11f |
| 6460 path.moveTo(SkBits2Float(0x68345b2d), SkBits2Float(0xf0682955)); // 3.40683e+24
f, -2.87402e+29f |
| 6461 path.conicTo(SkBits2Float(0x212a1f5b), SkBits2Float(0xef2a8c55), SkBits2Float(0x
295b2d2a), SkBits2Float(0x08685568), SkBits2Float(0x7bc00321)); // 5.76397e-19f
, -5.27821e+28f, 4.86669e-14f, 6.99154e-34f, 1.99397e+36f |
| 6462 path.lineTo(SkBits2Float(0x68345b2d), SkBits2Float(0xf0682955)); // 3.40683e+24
f, -2.87402e+29f |
| 6463 path.close(); |
| 6464 path.moveTo(SkBits2Float(0x68345b2d), SkBits2Float(0xf0682955)); // 3.40683e+24
f, -2.87402e+29f |
| 6465 path.lineTo(SkBits2Float(0x5b2c6829), SkBits2Float(0x212a8c55)); // 4.85282e+16
f, 5.7784e-19f |
| 6466 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6467 path.lineTo(SkBits2Float(0x3a8a3adf), SkBits2Float(0x8a281a4f)); // 0.00105461f
, -8.09385e-33f |
| 6468 path.quadTo(SkBits2Float(0x1d2a2928), SkBits2Float(0x43962be6), SkBits2Float(0x2
72a812a), SkBits2Float(0x3a2a5529)); // 2.25206e-21f, 300.343f, 2.36623e-15f, 0
.000649768f |
| 6469 path.lineTo(SkBits2Float(0x213b1e2a), SkBits2Float(0x27292720)); // 6.3398e-19f
, 2.34747e-15f |
| 6470 path.conicTo(SkBits2Float(0xba1f203a), SkBits2Float(0xc422c538), SkBits2Float(0x
215d5927), SkBits2Float(0x70ec2ac2), SkBits2Float(0x2a51523a)); // -0.000607017
f, -651.082f, 7.49957e-19f, 5.84721e+29f, 1.85915e-13f |
| 6471 path.quadTo(SkBits2Float(0x633ad912), SkBits2Float(0x29c80927), SkBits2Float(0x2
72927b0), SkBits2Float(0x683a5b2d)); // 3.44674e+21f, 8.88337e-14f, 2.3475e-15f
, 3.52017e+24f |
| 6472 path.lineTo(SkBits2Float(0x295b2d68), SkBits2Float(0x29685568)); // 4.86672e-14
f, 5.15884e-14f |
| 6473 path.conicTo(SkBits2Float(0xaa8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x
5b2d0321), SkBits2Float(0x68556829), SkBits2Float(0x2a552d29)); // -2.49282e-13
f, 4.78968e-34f, 4.86986e+16f, 4.03114e+24f, 1.89339e-13f |
| 6474 path.cubicTo(SkBits2Float(0x21295b2d), SkBits2Float(0x2a688c5b), SkBits2Float(0x
68295b2d), SkBits2Float(0x2d296855), SkBits2Float(0x8c08555b), SkBits2Float(0x2a
2a29ca)); // 5.73801e-19f, 2.06544e-13f, 3.19905e+24f, 9.6297e-12f, -1.05027e-3
1f, 1.51135e-13f |
| 6475 path.quadTo(SkBits2Float(0x68295b21), SkBits2Float(0x2d296855), SkBits2Float(0x2
a8c555b), SkBits2Float(0x081f2a21)); // 3.19904e+24f, 9.6297e-12f, 2.49282e-13f
, 4.78968e-34f |
| 6476 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6477 path.close(); |
| 6478 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6479 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x5b2d6829), SkBits2Float(0x
212a8c55), SkBits2Float(0xed7aba1f), SkBits2Float(0x2a212a8c)); // 6.14991e+25f
, 4.88097e+16f, 5.7784e-19f, -4.84977e+27f, 1.43144e-13f |
| 6480 path.moveTo(SkBits2Float(0x2d212d08), SkBits2Float(0x5568295b)); // 9.16179e-12
f, 1.5954e+13f |
| 6481 path.moveTo(SkBits2Float(0x5529685b), SkBits2Float(0x11295b68)); // 1.16416e+13
f, 1.33599e-28f |
| 6482 path.conicTo(SkBits2Float(0x5b782968), SkBits2Float(0x3a292d55), SkBits2Float(0x
2a8c555b), SkBits2Float(0x68295a2d), SkBits2Float(0x2d296855)); // 6.98513e+16f
, 0.000645359f, 2.49282e-13f, 3.19897e+24f, 9.6297e-12f |
| 6483 path.moveTo(SkBits2Float(0x555b8c55), SkBits2Float(0x21682929)); // 1.50872e+13
f, 7.86591e-19f |
| 6484 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6485 path.conicTo(SkBits2Float(0xac2d8ced), SkBits2Float(0x5b682968), SkBits2Float(0x
5b292d55), SkBits2Float(0x212a8c55), SkBits2Float(0x081f282a)); // -2.4663e-12f
, 6.53477e+16f, 4.76191e+16f, 5.7784e-19f, 4.78945e-34f |
| 6486 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6487 path.close(); |
| 6488 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6489 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2a8ced7a), SkBits2Float(0x
03081f21), SkBits2Float(0x6a3a7bc0), SkBits2Float(0x2147ed7a)); // 6.14991e+25f
, 2.50338e-13f, 4.00025e-37f, 5.63611e+25f, 6.77381e-19f |
| 6490 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6491 path.close(); |
| 6492 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6493 path.quadTo(SkBits2Float(0x2d28282a), SkBits2Float(0x5568295b), SkBits2Float(0x3
a21df68), SkBits2Float(0x4f9a3a8a)); // 9.55861e-12f, 1.5954e+13f, 0.000617495f
, 5.17506e+09f |
| 6494 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6495 path.close(); |
| 6496 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6497 path.cubicTo(SkBits2Float(0x5568c23a), SkBits2Float(0x5b2d2968), SkBits2Float(0x
212a8c55), SkBits2Float(0x21081f2a), SkBits2Float(0x3a7bc003), SkBits2Float(0x29
4b2827)); // 1.59951e+13f, 4.87407e+16f, 5.7784e-19f, 4.61198e-19f, 0.00096035f
, 4.51099e-14f |
| 6498 |
| 6499 SkPath path2(path); |
| 6500 testPathOpFail(reporter, path1, path2, (SkPathOp) 0, filename); |
| 6501 } |
| 6502 |
6448 static struct TestDesc failTests[] = { | 6503 static struct TestDesc failTests[] = { |
| 6504 TEST(fuzz763_7), |
6449 TEST(fuzz763_6), | 6505 TEST(fuzz763_6), |
6450 TEST(fuzz763_2c), | 6506 TEST(fuzz763_2c), |
6451 TEST(fuzz763_2b), | 6507 TEST(fuzz763_2b), |
6452 TEST(fuzz763_2a), | 6508 TEST(fuzz763_2a), |
6453 TEST(fuzz763_5a), | 6509 TEST(fuzz763_5a), |
6454 TEST(fuzz763_3a), | 6510 TEST(fuzz763_3a), |
6455 TEST(fuzz763_1a), | 6511 TEST(fuzz763_1a), |
6456 TEST(fuzz763_1b), | 6512 TEST(fuzz763_1b), |
6457 TEST(fuzz763_1c), | 6513 TEST(fuzz763_1c), |
6458 TEST(fuzz763_2), | 6514 TEST(fuzz763_2), |
(...skipping 27 matching lines...) Expand all Loading... |
6486 static struct TestDesc repTests[] = { | 6542 static struct TestDesc repTests[] = { |
6487 TEST(loops44i), | 6543 TEST(loops44i), |
6488 TEST(loops45i), | 6544 TEST(loops45i), |
6489 TEST(loops46i), | 6545 TEST(loops46i), |
6490 }; | 6546 }; |
6491 | 6547 |
6492 DEF_TEST(PathOpsRepOp, reporter) { | 6548 DEF_TEST(PathOpsRepOp, reporter) { |
6493 for (int index = 0; index < 2; ++index) | 6549 for (int index = 0; index < 2; ++index) |
6494 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n
ullptr, false); | 6550 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n
ullptr, false); |
6495 } | 6551 } |
OLD | NEW |