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 7602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7613 path.cubicTo(SkBits2Float(0x74747464), SkBits2Float(0x74747474), SkBits2Float(0x
43747474), SkBits2Float(0xa52b0220), SkBits2Float(0x47812a43), SkBits2Float(0x28
2a3a21)); // 7.74708e+31f, 7.74708e+31f, 244.455f, -1.48326e-16f, 66132.5f, 9.4
495e-15f | 7613 path.cubicTo(SkBits2Float(0x74747464), SkBits2Float(0x74747474), SkBits2Float(0x
43747474), SkBits2Float(0xa52b0220), SkBits2Float(0x47812a43), SkBits2Float(0x28
2a3a21)); // 7.74708e+31f, 7.74708e+31f, 244.455f, -1.48326e-16f, 66132.5f, 9.4
495e-15f |
7614 path.lineTo(SkBits2Float(0x74747440), SkBits2Float(0x74747474)); // 7.74706e+31
f, 7.74708e+31f | 7614 path.lineTo(SkBits2Float(0x74747440), SkBits2Float(0x74747474)); // 7.74706e+31
f, 7.74708e+31f |
7615 path.close(); | 7615 path.close(); |
7616 path.moveTo(SkBits2Float(0x74747440), SkBits2Float(0x74747474)); // 7.74706e+31
f, 7.74708e+31f | 7616 path.moveTo(SkBits2Float(0x74747440), SkBits2Float(0x74747474)); // 7.74706e+31
f, 7.74708e+31f |
7617 path.conicTo(SkBits2Float(0x3a323adf), SkBits2Float(0x19433b1a), SkBits2Float(0x
5921e7fc), SkBits2Float(0x1f2a212a), SkBits2Float(0x35032108)); // 0.000679893f
, 1.00932e-23f, 2.84828e+15f, 3.60263e-20f, 4.88494e-07f | 7617 path.conicTo(SkBits2Float(0x3a323adf), SkBits2Float(0x19433b1a), SkBits2Float(0x
5921e7fc), SkBits2Float(0x1f2a212a), SkBits2Float(0x35032108)); // 0.000679893f
, 1.00932e-23f, 2.84828e+15f, 3.60263e-20f, 4.88494e-07f |
7618 | 7618 |
7619 SkPath path2(path); | 7619 SkPath path2(path); |
7620 testPathOpFuzz(reporter, path1, path2, (SkPathOp) 4, filename); | 7620 testPathOpFuzz(reporter, path1, path2, (SkPathOp) 4, filename); |
7621 } | 7621 } |
7622 | 7622 |
| 7623 static void fuzz763_37(skiatest::Reporter* reporter, const char* filename) { |
| 7624 SkPath path; |
| 7625 path.setFillType((SkPath::FillType) 0); |
| 7626 path.moveTo(SkBits2Float(0x5568392a), SkBits2Float(0x5b2d3368)); // 1.59583e+13
f, 4.87517e+16f |
| 7627 path.conicTo(SkBits2Float(0x5b2d555b), SkBits2Float(0x68275b2d), SkBits2Float(0x
21685527), SkBits2Float(0x0321082a), SkBits2Float(0x6ab485c0)); // 4.8789e+16f,
3.16127e+24f, 7.87174e-19f, 4.7323e-37f, 1.09119e+26f |
| 7628 path.conicTo(SkBits2Float(0x212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x
6a4b7bc0), SkBits2Float(0x2829ed84), SkBits2Float(0x5b2d2d55)); // 5.77848e-19f
, 4.7323e-37f, 6.14991e+25f, 9.43289e-15f, 4.8745e+16f |
| 7629 path.moveTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5b)); // 3.50084e+24
f, -2.87489e+29f |
| 7630 path.conicTo(SkBits2Float(0x212a1f5b), SkBits2Float(0x2a8cef2a), SkBits2Float(0x
682d2953), SkBits2Float(0xee682103), SkBits2Float(0x4b7bc055)); // 5.76397e-19f
, 2.50349e-13f, 3.27093e+24f, -1.79601e+28f, 1.64988e+07f |
| 7631 path.lineTo(SkBits2Float(0x5b2c6829), SkBits2Float(0x212a8c55)); // 4.85282e+16
f, 5.7784e-19f |
| 7632 path.conicTo(SkBits2Float(0x4b03213b), SkBits2Float(0xc07b2a08), SkBits2Float(0x
5b2d7a6a), SkBits2Float(0xf0556830), SkBits2Float(0x2a8c555b)); // 8.59372e+06f
, -3.92444f, 4.88298e+16f, -2.64185e+29f, 2.49282e-13f |
| 7633 path.conicTo(SkBits2Float(0x0321212a), SkBits2Float(0x4b7bd2c0), SkBits2Float(0x
ed7ac039), SkBits2Float(0x2f218c08), SkBits2Float(0x1f037b2a)); // 4.73517e-37f
, 1.65035e+07f, -4.85023e+27f, 1.46926e-10f, 2.78422e-20f |
| 7634 path.lineTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5b)); // 3.50084e+24
f, -2.87489e+29f |
| 7635 path.close(); |
| 7636 path.moveTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5b)); // 3.50084e+24
f, -2.87489e+29f |
| 7637 path.lineTo(SkBits2Float(0x6829ed27), SkBits2Float(0x2d555b2d)); // 3.20982e+24
f, 1.21279e-11f |
| 7638 path.moveTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7639 path.conicTo(SkBits2Float(0x721f2a5b), SkBits2Float(0x212a8c55), SkBits2Float(0x
0321082a), SkBits2Float(0x6a4b7b28), SkBits2Float(0x4793ed7a)); // 3.1526e+30f,
5.7784e-19f, 4.7323e-37f, 6.14984e+25f, 75739 |
| 7640 path.lineTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7641 path.close(); |
| 7642 path.moveTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7643 path.quadTo(SkBits2Float(0x28282a2a), SkBits2Float(0x2c682921), SkBits2Float(0x8
c555bf6), SkBits2Float(0x6d03de30)); // 9.33502e-15f, 3.2992e-12f, -1.64366e-31
f, 2.5507e+27f |
| 7644 path.cubicTo(SkBits2Float(0x68392d55), SkBits2Float(0xf05b684b), SkBits2Float(0x
8c55272d), SkBits2Float(0x212a292a), SkBits2Float(0x0321082a), SkBits2Float(0x08
1f2a21)); // 3.4979e+24f, -2.71613e+29f, -1.64207e-31f, 5.76527e-19f, 4.7323e-3
7f, 4.78968e-34f |
| 7645 path.lineTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7646 path.close(); |
| 7647 path.moveTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7648 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0xdf93ed7a), SkBits2Float(0x
1a3a803a), SkBits2Float(0xb38a294f), SkBits2Float(0x3ac2213a)); // 6.14991e+25f
, -2.13186e+19f, 3.85675e-23f, -6.43364e-08f, 0.00148109f |
| 7649 path.lineTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7650 path.close(); |
| 7651 path.moveTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7652 path.conicTo(SkBits2Float(0xe62b291d), SkBits2Float(0x2a812a43), SkBits2Float(0x
8ced093a), SkBits2Float(0xb38a5c5c), SkBits2Float(0x3ac2213a)); // -2.02071e+23
f, 2.29443e-13f, -3.65212e-31f, -6.44293e-08f, 0.00148109f |
| 7653 path.lineTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7654 path.close(); |
| 7655 path.moveTo(SkBits2Float(0x68275b2d), SkBits2Float(0xf0685527)); // 3.16127e+24
f, -2.87614e+29f |
| 7656 path.lineTo(SkBits2Float(0x8ced293a), SkBits2Float(0x5c5c5c5c)); // -3.65404e-3
1f, 2.48104e+17f |
| 7657 path.moveTo(SkBits2Float(0x21081f21), SkBits2Float(0x4b7bc003)); // 4.61198e-19
f, 1.64987e+07f |
| 7658 path.lineTo(SkBits2Float(0x2829ed84), SkBits2Float(0x5b2d2d55)); // 9.43289e-15
f, 4.8745e+16f |
| 7659 path.moveTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5a)); // 3.50084e+24
f, -2.87489e+29f |
| 7660 path.lineTo(SkBits2Float(0x682d2952), SkBits2Float(0xee682103)); // 3.27093e+24
f, -1.79601e+28f |
| 7661 path.lineTo(SkBits2Float(0x5b2c6829), SkBits2Float(0x2a3b0355)); // 4.85282e+16
f, 1.66101e-13f |
| 7662 path.lineTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5a)); // 3.50084e+24
f, -2.87489e+29f |
| 7663 path.close(); |
| 7664 path.moveTo(SkBits2Float(0x6839552d), SkBits2Float(0xf0683b5a)); // 3.50084e+24
f, -2.87489e+29f |
| 7665 path.conicTo(SkBits2Float(0x084b218c), SkBits2Float(0x6ac07b2a), SkBits2Float(0x
395b2d7a), SkBits2Float(0x5bf05568), SkBits2Float(0x1f2a8c55)); // 6.11275e-34f
, 1.16348e+26f, 0.000209024f, 1.35296e+17f, 3.6115e-20f |
| 7666 |
| 7667 SkPath path1(path); |
| 7668 path.reset(); |
| 7669 path.setFillType((SkPath::FillType) 0); |
| 7670 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 7671 path.cubicTo(SkBits2Float(0xbcb4bcac), SkBits2Float(0x000029ff), SkBits2Float(0x
010000bc), SkBits2Float(0x00bcbc00), SkBits2Float(0xbebcbcbc), SkBits2Float(0xb6
aebcae)); // -0.0220626f, 1.50654e-41f, 2.35104e-38f, 1.73325e-38f, -0.368627f,
-5.20757e-06f |
| 7672 |
| 7673 SkPath path2(path); |
| 7674 testPathOpFuzz(reporter, path1, path2, (SkPathOp) 4, filename); |
| 7675 } |
| 7676 |
| 7677 static void fuzz763_38(skiatest::Reporter* reporter, const char* filename) { |
| 7678 SkPath path; |
| 7679 path.setFillType((SkPath::FillType) 0); |
| 7680 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 7681 path.conicTo(SkBits2Float(0x5b682968), SkBits2Float(0x5b292d11), SkBits2Float(0x
212a8c55), SkBits2Float(0x555b2d2d), SkBits2Float(0x52525268)); // 6.53477e+16f
, 4.76188e+16f, 5.7784e-19f, 1.50617e+13f, 2.25831e+11f |
| 7682 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 7683 path.close(); |
| 7684 path.moveTo(SkBits2Float(0xa5252600), SkBits2Float(0x52b4adad)); // -1.43243e-1
6f, 3.88004e+11f |
| 7685 path.close(); |
| 7686 path.moveTo(SkBits2Float(0xa5252600), SkBits2Float(0x52b4adad)); // -1.43243e-1
6f, 3.88004e+11f |
| 7687 path.quadTo(SkBits2Float(0x72727270), SkBits2Float(0x52525272), SkBits2Float(0x2
ac05252), SkBits2Float(0x727fb721)); // 4.80216e+30f, 2.25832e+11f, 3.41632e-13
f, 5.06496e+30f |
| 7688 path.lineTo(SkBits2Float(0x73727322), SkBits2Float(0x555b2d29)); // 1.92088e+31
f, 1.50617e+13f |
| 7689 path.lineTo(SkBits2Float(0xab2a212e), SkBits2Float(0x7a27872a)); // -6.04422e-1
3f, 2.17464e+35f |
| 7690 path.moveTo(SkBits2Float(0x25fffefb), SkBits2Float(0x7bc00321)); // 4.44082e-16
f, 1.99397e+36f |
| 7691 path.quadTo(SkBits2Float(0x52524852), SkBits2Float(0x72525228), SkBits2Float(0x7
2727272), SkBits2Float(0x3a727272)); // 2.25789e+11f, 4.16584e+30f, 4.80216e+30
f, 0.000924862f |
| 7692 path.lineTo(SkBits2Float(0x25fffefb), SkBits2Float(0x7bc00321)); // 4.44082e-16
f, 1.99397e+36f |
| 7693 path.close(); |
| 7694 path.moveTo(SkBits2Float(0x25fffefb), SkBits2Float(0x7bc00321)); // 4.44082e-16
f, 1.99397e+36f |
| 7695 path.quadTo(SkBits2Float(0x2a292827), SkBits2Float(0x962b0080), SkBits2Float(0x5
252752a), SkBits2Float(0x72725252)); // 1.50241e-13f, -1.38134e-25f, 2.25977e+1
1f, 4.79967e+30f |
| 7696 path.quadTo(SkBits2Float(0x72725252), SkBits2Float(0x52525272), SkBits2Float(0x7
2525252), SkBits2Float(0x72727272)); // 4.79967e+30f, 2.25832e+11f, 4.16585e+30
f, 4.80216e+30f |
| 7697 path.quadTo(SkBits2Float(0x72727255), SkBits2Float(0xda000072), SkBits2Float(0x5
2525ada), SkBits2Float(0x52525252)); // 4.80215e+30f, -9.00732e+15f, 2.25867e+1
1f, 2.25831e+11f |
| 7698 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x52525272), SkBits2Float(0x7
2525248), SkBits2Float(0x72727272)); // 4.80216e+30f, 2.25832e+11f, 4.16584e+30
f, 4.80216e+30f |
| 7699 path.quadTo(SkBits2Float(0x72727255), SkBits2Float(0xda007b72), SkBits2Float(0x5
2525ada), SkBits2Float(0x52525252)); // 4.80215e+30f, -9.04113e+15f, 2.25867e+1
1f, 2.25831e+11f |
| 7700 path.quadTo(SkBits2Float(0x86727272), SkBits2Float(0x5252528d), SkBits2Float(0x7
2525252), SkBits2Float(0x72727227)); // -4.55992e-35f, 2.25832e+11f, 4.16585e+3
0f, 4.80214e+30f |
| 7701 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x29217272), SkBits2Float(0xc
003211c), SkBits2Float(0x556a4b7b)); // 4.80216e+30f, 3.58484e-14f, -2.0489f, 1
.61006e+13f |
| 7702 path.moveTo(SkBits2Float(0x72557272), SkBits2Float(0x00727272)); // 4.22775e+30
f, 1.05103e-38f |
| 7703 path.moveTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7704 path.close(); |
| 7705 path.moveTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7706 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x3a727272), SkBits2Float(0x2
8273ac2), SkBits2Float(0x00802a29)); // 4.80216e+30f, 0.000924862f, 9.2831e-15f
, 1.17701e-38f |
| 7707 path.lineTo(SkBits2Float(0x52752a96), SkBits2Float(0x72525252)); // 2.63245e+11
f, 4.16585e+30f |
| 7708 path.quadTo(SkBits2Float(0x72525272), SkBits2Float(0x52527272), SkBits2Float(0x5
2525252), SkBits2Float(0x72727272)); // 4.16586e+30f, 2.25966e+11f, 2.25831e+11
f, 4.80216e+30f |
| 7709 path.quadTo(SkBits2Float(0x72725572), SkBits2Float(0x00007272), SkBits2Float(0x5
25adada), SkBits2Float(0x52525252)); // 4.79991e+30f, 4.10552e-41f, 2.34994e+11
f, 2.25831e+11f |
| 7710 path.lineTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7711 path.close(); |
| 7712 path.moveTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7713 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x52525272), SkBits2Float(0x7
2525248), SkBits2Float(0x72727272)); // 4.80216e+30f, 2.25832e+11f, 4.16584e+30
f, 4.80216e+30f |
| 7714 path.quadTo(SkBits2Float(0x72727255), SkBits2Float(0xda007b72), SkBits2Float(0x5
2525ada), SkBits2Float(0x72525252)); // 4.80215e+30f, -9.04113e+15f, 2.25867e+1
1f, 4.16585e+30f |
| 7715 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x72727252), SkBits2Float(0xd
a007b72), SkBits2Float(0x52525ada)); // 4.80216e+30f, 4.80215e+30f, -9.04113e+1
5f, 2.25867e+11f |
| 7716 path.lineTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7717 path.close(); |
| 7718 path.moveTo(SkBits2Float(0x5a61dada), SkBits2Float(0x52525252)); // 1.58931e+16
f, 2.25831e+11f |
| 7719 path.quadTo(SkBits2Float(0x86727272), SkBits2Float(0x5252528d), SkBits2Float(0x7
2525252), SkBits2Float(0x72727227)); // -4.55992e-35f, 2.25832e+11f, 4.16585e+3
0f, 4.80214e+30f |
| 7720 path.quadTo(SkBits2Float(0x72727272), SkBits2Float(0x29217272), SkBits2Float(0xc
003211c), SkBits2Float(0x556a4b7b)); // 4.80216e+30f, 3.58484e-14f, -2.0489f, 1
.61006e+13f |
| 7721 path.moveTo(SkBits2Float(0x72557272), SkBits2Float(0x00727272)); // 4.22775e+30
f, 1.05103e-38f |
| 7722 path.moveTo(SkBits2Float(0x525adada), SkBits2Float(0x52525252)); // 2.34994e+11
f, 2.25831e+11f |
| 7723 path.close(); |
| 7724 path.moveTo(SkBits2Float(0xa5252600), SkBits2Float(0x52b4adad)); // -1.43243e-1
6f, 3.88004e+11f |
| 7725 path.close(); |
| 7726 path.moveTo(SkBits2Float(0xa5252600), SkBits2Float(0x52b4adad)); // -1.43243e-1
6f, 3.88004e+11f |
| 7727 path.quadTo(SkBits2Float(0x72727270), SkBits2Float(0x52525272), SkBits2Float(0x7
2525252), SkBits2Float(0x72727272)); // 4.80216e+30f, 2.25832e+11f, 4.16585e+30
f, 4.80216e+30f |
| 7728 path.quadTo(SkBits2Float(0x72727255), SkBits2Float(0xda007b72), SkBits2Float(0x5
2525ada), SkBits2Float(0x52525252)); // 4.80215e+30f, -9.04113e+15f, 2.25867e+1
1f, 2.25831e+11f |
| 7729 path.quadTo(SkBits2Float(0x52525272), SkBits2Float(0x3b3b0052), SkBits2Float(0x5
b2d553a), SkBits2Float(0x68556829)); // 2.25832e+11f, 0.00285341f, 4.87889e+16f
, 4.03114e+24f |
| 7730 |
| 7731 SkPath path1(path); |
| 7732 path.reset(); |
| 7733 path.setFillType((SkPath::FillType) 0); |
| 7734 path.moveTo(SkBits2Float(0x52528c55), SkBits2Float(0x29215252)); // 2.26074e+11
f, 3.58206e-14f |
| 7735 |
| 7736 SkPath path2(path); |
| 7737 testPathOpFuzz(reporter, path1, path2, (SkPathOp) 0, filename); |
| 7738 } |
| 7739 |
7623 static struct TestDesc failTests[] = { | 7740 static struct TestDesc failTests[] = { |
| 7741 TEST(fuzz763_38), |
| 7742 TEST(fuzz763_37), |
7624 TEST(fuzz763_36), | 7743 TEST(fuzz763_36), |
7625 TEST(fuzz763_35), | 7744 TEST(fuzz763_35), |
7626 TEST(fuzz763_34), | 7745 TEST(fuzz763_34), |
7627 TEST(fuzz763_33), | 7746 TEST(fuzz763_33), |
7628 TEST(fuzz763_32), | 7747 TEST(fuzz763_32), |
7629 TEST(fuzz763_31), | 7748 TEST(fuzz763_31), |
7630 TEST(fuzz763_30), | 7749 TEST(fuzz763_30), |
7631 TEST(fuzz763_29), | 7750 TEST(fuzz763_29), |
7632 TEST(fuzz763_28), | 7751 TEST(fuzz763_28), |
7633 TEST(fuzz763_27), | 7752 TEST(fuzz763_27), |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7690 static struct TestDesc repTests[] = { | 7809 static struct TestDesc repTests[] = { |
7691 TEST(loops44i), | 7810 TEST(loops44i), |
7692 TEST(loops45i), | 7811 TEST(loops45i), |
7693 TEST(loops46i), | 7812 TEST(loops46i), |
7694 }; | 7813 }; |
7695 | 7814 |
7696 DEF_TEST(PathOpsRepOp, reporter) { | 7815 DEF_TEST(PathOpsRepOp, reporter) { |
7697 for (int index = 0; index < 2; ++index) | 7816 for (int index = 0; index < 2; ++index) |
7698 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n
ullptr, false); | 7817 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n
ullptr, false); |
7699 } | 7818 } |
OLD | NEW |