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 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1189 rects[2].set(xC, yA, xF, yD); | 1189 rects[2].set(xC, yA, xF, yD); |
1190 paths[2].addRoundRect(rects[2], SkIntToScalar(5), SkIntToScalar(5)); // blu
e | 1190 paths[2].addRoundRect(rects[2], SkIntToScalar(5), SkIntToScalar(5)); // blu
e |
1191 rects[3].set(xA, yC, xD, yF); | 1191 rects[3].set(xA, yC, xD, yF); |
1192 paths[3].addRoundRect(rects[3], SkIntToScalar(5), SkIntToScalar(5)); // yel
low | 1192 paths[3].addRoundRect(rects[3], SkIntToScalar(5), SkIntToScalar(5)); // yel
low |
1193 rects[4].set(xC, yC, xF, yF); | 1193 rects[4].set(xC, yC, xF, yF); |
1194 paths[4].addRoundRect(rects[4], SkIntToScalar(5), SkIntToScalar(5)); // cya
n | 1194 paths[4].addRoundRect(rects[4], SkIntToScalar(5), SkIntToScalar(5)); // cya
n |
1195 SkPath path; | 1195 SkPath path; |
1196 path.setFillType(SkPath::kInverseEvenOdd_FillType); | 1196 path.setFillType(SkPath::kInverseEvenOdd_FillType); |
1197 for (int index = 0; index < 5; ++index) { | 1197 for (int index = 0; index < 5; ++index) { |
1198 testPathOp(reporter, path, paths[index], ops[index], filename); | 1198 testPathOp(reporter, path, paths[index], ops[index], filename); |
1199 Op(path, paths[index], ops[index], &path); | 1199 REPORTER_ASSERT(reporter, Op(path, paths[index], ops[index], &path)); |
1200 } | 1200 } |
1201 } | 1201 } |
1202 | 1202 |
1203 static void skp1(skiatest::Reporter* reporter, const char* filename) { | 1203 static void skp1(skiatest::Reporter* reporter, const char* filename) { |
1204 SkPath path; | 1204 SkPath path; |
1205 path.setFillType(SkPath::kEvenOdd_FillType); | 1205 path.setFillType(SkPath::kEvenOdd_FillType); |
1206 path.moveTo(189,7); | 1206 path.moveTo(189,7); |
1207 path.cubicTo(189,5.34314585f, 190.34314f,4, 192,4); | 1207 path.cubicTo(189,5.34314585f, 190.34314f,4, 192,4); |
1208 path.lineTo(243,4); | 1208 path.lineTo(243,4); |
1209 path.cubicTo(244.65686f,4, 246,5.34314585f, 246,7); | 1209 path.cubicTo(244.65686f,4, 246,5.34314585f, 246,7); |
(...skipping 2260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3470 path2.cubicTo(50.6f, 117.001f, 164.601f, 85.2f, 188.201f, 117.601f); | 3470 path2.cubicTo(50.6f, 117.001f, 164.601f, 85.2f, 188.201f, 117.601f); |
3471 path2.cubicTo(188.201f, 117.601f, 174.801f, 93, 39, 124.001f); | 3471 path2.cubicTo(188.201f, 117.601f, 174.801f, 93, 39, 124.001f); |
3472 path2.close(); | 3472 path2.close(); |
3473 | 3473 |
3474 testPathOp(reporter, path1, path2, kUnion_SkPathOp, filename); | 3474 testPathOp(reporter, path1, path2, kUnion_SkPathOp, filename); |
3475 } | 3475 } |
3476 | 3476 |
3477 static void issue2808(skiatest::Reporter* reporter, const char* filename) { | 3477 static void issue2808(skiatest::Reporter* reporter, const char* filename) { |
3478 SkPath path1, path2; | 3478 SkPath path1, path2; |
3479 | 3479 |
3480 » path1.moveTo(509.20300293f, 385.601989746f); | 3480 path1.moveTo(509.20300293f, 385.601989746f); |
3481 » path1.quadTo(509.20300293f, 415.68838501f, 487.928710938f, 436.96270752f
); | 3481 path1.quadTo(509.20300293f, 415.68838501f, 487.928710938f, 436.96270752f); |
3482 » path1.quadTo(466.654388428f, 458.236999512f, 436.567993164f, 458.2369995
12f); | 3482 path1.quadTo(466.654388428f, 458.236999512f, 436.567993164f, 458.236999512f)
; |
3483 » path1.quadTo(406.4815979f, 458.236999512f, 385.207275391f, 436.96270752f
); | 3483 path1.quadTo(406.4815979f, 458.236999512f, 385.207275391f, 436.96270752f); |
3484 » path1.quadTo(363.932983398f, 415.68838501f, 363.932983398f, 385.60198974
6f); | 3484 path1.quadTo(363.932983398f, 415.68838501f, 363.932983398f, 385.601989746f); |
3485 » path1.quadTo(363.932983398f, 355.515594482f, 385.207275391f, 334.2412719
73f); | 3485 path1.quadTo(363.932983398f, 355.515594482f, 385.207275391f, 334.241271973f)
; |
3486 » path1.quadTo(406.4815979f, 312.96697998f, 436.567993164f, 312.96697998f)
; | 3486 path1.quadTo(406.4815979f, 312.96697998f, 436.567993164f, 312.96697998f); |
3487 » path1.quadTo(466.654388428f, 312.96697998f, 487.928710938f, 334.24127197
3f); | 3487 path1.quadTo(466.654388428f, 312.96697998f, 487.928710938f, 334.241271973f); |
3488 » path1.quadTo(509.20300293f, 355.515594482f, 509.20300293f, 385.601989746
f); | 3488 path1.quadTo(509.20300293f, 355.515594482f, 509.20300293f, 385.601989746f); |
3489 » path1.close(); | 3489 path1.close(); |
3490 | 3490 |
3491 » path2.moveTo(449.033996582f, 290.87298584f); | 3491 path2.moveTo(449.033996582f, 290.87298584f); |
3492 » path2.quadTo(449.033996582f, 301.028259277f, 441.853149414f, 308.2091064
45f); | 3492 path2.quadTo(449.033996582f, 301.028259277f, 441.853149414f, 308.209106445f)
; |
3493 » path2.quadTo(434.672271729f, 315.389984131f, 424.516998291f, 315.3899841
31f); | 3493 path2.quadTo(434.672271729f, 315.389984131f, 424.516998291f, 315.389984131f)
; |
3494 » path2.quadTo(414.361724854f, 315.389984131f, 407.180847168f, 308.2091064
45f); | 3494 path2.quadTo(414.361724854f, 315.389984131f, 407.180847168f, 308.209106445f)
; |
3495 » path2.quadTo(400, 301.028259277f, 400, 290.87298584f); | 3495 path2.quadTo(400, 301.028259277f, 400, 290.87298584f); |
3496 » path2.quadTo(400, 280.717712402f, 407.180847168f, 273.536865234f); | 3496 path2.quadTo(400, 280.717712402f, 407.180847168f, 273.536865234f); |
3497 » path2.quadTo(414.361724854f, 266.355987549f, 424.516998291f, 266.3559875
49f); | 3497 path2.quadTo(414.361724854f, 266.355987549f, 424.516998291f, 266.355987549f)
; |
3498 » path2.quadTo(434.672271729f, 266.355987549f, 441.853149414f, 273.5368652
34f); | 3498 path2.quadTo(434.672271729f, 266.355987549f, 441.853149414f, 273.536865234f)
; |
3499 » path2.quadTo(449.033996582f, 280.717712402f, 449.033996582f, 290.8729858
4f); | 3499 path2.quadTo(449.033996582f, 280.717712402f, 449.033996582f, 290.87298584f); |
3500 » path2.close(); | 3500 path2.close(); |
3501 | 3501 |
3502 testPathOp(reporter, path1, path2, kUnion_SkPathOp, filename); | 3502 testPathOp(reporter, path1, path2, kUnion_SkPathOp, filename); |
3503 } | 3503 } |
3504 | 3504 |
3505 static void cubicOp115(skiatest::Reporter* reporter, const char* filename) { | 3505 static void cubicOp115(skiatest::Reporter* reporter, const char* filename) { |
3506 SkPath path, pathB; | 3506 SkPath path, pathB; |
3507 path.setFillType(SkPath::kWinding_FillType); | 3507 path.setFillType(SkPath::kWinding_FillType); |
3508 path.moveTo(0,1); | 3508 path.moveTo(0,1); |
3509 path.cubicTo(3,4, 2,1, 5,3); | 3509 path.cubicTo(3,4, 2,1, 5,3); |
3510 path.close(); | 3510 path.close(); |
(...skipping 1348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4859 path.cubicTo(1, 2, 8.33333302f, 6.33333302f, -6, 8); | 4859 path.cubicTo(1, 2, 8.33333302f, 6.33333302f, -6, 8); |
4860 path.close(); | 4860 path.close(); |
4861 pathB.setFillType(SkPath::kWinding_FillType); | 4861 pathB.setFillType(SkPath::kWinding_FillType); |
4862 pathB.moveTo(1, 2); | 4862 pathB.moveTo(1, 2); |
4863 pathB.cubicTo(8.33333302f, 6.33333302f, -6, 8, 2, 6); | 4863 pathB.cubicTo(8.33333302f, 6.33333302f, -6, 8, 2, 6); |
4864 pathB.close(); | 4864 pathB.close(); |
4865 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); | 4865 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
4866 } | 4866 } |
4867 | 4867 |
4868 /* | 4868 /* |
4869 FAILED: d:\cygwin\puregit\tests\pathopsextendedtest.cpp:346» 0 */ | 4869 FAILED: d:\cygwin\puregit\tests\pathopsextendedtest.cpp:346 0 */ |
4870 static void loops47i(skiatest::Reporter* reporter, const char* filename) { | 4870 static void loops47i(skiatest::Reporter* reporter, const char* filename) { |
4871 SkPath path, pathB; | 4871 SkPath path, pathB; |
4872 path.setFillType(SkPath::kWinding_FillType); | 4872 path.setFillType(SkPath::kWinding_FillType); |
4873 path.moveTo(2, 4); | 4873 path.moveTo(2, 4); |
4874 path.cubicTo(0, 1, 6, 5.83333302f, -4, 8); | 4874 path.cubicTo(0, 1, 6, 5.83333302f, -4, 8); |
4875 path.close(); | 4875 path.close(); |
4876 pathB.setFillType(SkPath::kWinding_FillType); | 4876 pathB.setFillType(SkPath::kWinding_FillType); |
4877 pathB.moveTo(0, 1); | 4877 pathB.moveTo(0, 1); |
4878 pathB.cubicTo(6, 5.83333302f, -4, 8, 2, 4); | 4878 pathB.cubicTo(6, 5.83333302f, -4, 8, 2, 4); |
4879 pathB.close(); | 4879 pathB.close(); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5153 } | 5153 } |
5154 | 5154 |
5155 static void fuzz38(skiatest::Reporter* reporter, const char* filename) { | 5155 static void fuzz38(skiatest::Reporter* reporter, const char* filename) { |
5156 SkPath path, pathB; | 5156 SkPath path, pathB; |
5157 path.moveTo(100.34f, 303.312f); | 5157 path.moveTo(100.34f, 303.312f); |
5158 path.lineTo(-1e+08, 303.312f); | 5158 path.lineTo(-1e+08, 303.312f); |
5159 path.lineTo(102, 310.156f); | 5159 path.lineTo(102, 310.156f); |
5160 path.lineTo(100.34f, 310.156f); | 5160 path.lineTo(100.34f, 310.156f); |
5161 path.lineTo(100.34f, 303.312f); | 5161 path.lineTo(100.34f, 303.312f); |
5162 path.close(); | 5162 path.close(); |
5163 testPathOpCheck(reporter, path, pathB, kUnion_SkPathOp, filename, FLAGS_runF
ail); | 5163 testPathOpCheck(reporter, path, pathB, kUnion_SkPathOp, filename, true); |
5164 } | 5164 } |
5165 | 5165 |
5166 static void crbug_526025(skiatest::Reporter* reporter, const char* filename) { | 5166 static void crbug_526025(skiatest::Reporter* reporter, const char* filename) { |
5167 SkPath path; | 5167 SkPath path; |
5168 path.setFillType((SkPath::FillType) 1); | 5168 path.setFillType((SkPath::FillType) 1); |
5169 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0xcf000000)); // 360, -2.147
48e+09f | 5169 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0xcf000000)); // 360, -2.147
48e+09f |
5170 path.cubicTo(SkBits2Float(0x4e0d628f), SkBits2Float(0xceffffff), SkBits2Float(0x
4e800003), SkBits2Float(0xcec6b143), SkBits2Float(0x4e800002), SkBits2Float(0xce
7ffffc)); // 5.93012e+08f, -2.14748e+09f, 1.07374e+09f, -1.66675e+09f, 1.07374e
+09f, -1.07374e+09f | 5170 path.cubicTo(SkBits2Float(0x4e0d628f), SkBits2Float(0xceffffff), SkBits2Float(0x
4e800003), SkBits2Float(0xcec6b143), SkBits2Float(0x4e800002), SkBits2Float(0xce
7ffffc)); // 5.93012e+08f, -2.14748e+09f, 1.07374e+09f, -1.66675e+09f, 1.07374e
+09f, -1.07374e+09f |
5171 path.cubicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcde53aee), SkBits2Float(0x
4e0d6292), SkBits2Float(0xc307820e), SkBits2Float(0x44627d00), SkBits2Float(0x43
7ffff2)); // 1.07374e+09f, -4.80731e+08f, 5.93012e+08f, -135.508f, 905.953f, 25
6 | 5171 path.cubicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcde53aee), SkBits2Float(0x
4e0d6292), SkBits2Float(0xc307820e), SkBits2Float(0x44627d00), SkBits2Float(0x43
7ffff2)); // 1.07374e+09f, -4.80731e+08f, 5.93012e+08f, -135.508f, 905.953f, 25
6 |
5172 path.lineTo(SkBits2Float(0x444bf3bc), SkBits2Float(0x4460537e)); // 815.808f, 8
97.305f | 5172 path.lineTo(SkBits2Float(0x444bf3bc), SkBits2Float(0x4460537e)); // 815.808f, 8
97.305f |
5173 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f | 5173 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f |
(...skipping 30 matching lines...) Expand all Loading... |
5204 path.setFillType(SkPath::kWinding_FillType); | 5204 path.setFillType(SkPath::kWinding_FillType); |
5205 path.moveTo(SkBits2Float(0xc36c7bd8), SkBits2Float(0xc3a31d72)); // -236.484f,
-326.23f | 5205 path.moveTo(SkBits2Float(0xc36c7bd8), SkBits2Float(0xc3a31d72)); // -236.484f,
-326.23f |
5206 path.lineTo(SkBits2Float(0xc367a4ae), SkBits2Float(0xc3a31d72)); // -231.643f,
-326.23f | 5206 path.lineTo(SkBits2Float(0xc367a4ae), SkBits2Float(0xc3a31d72)); // -231.643f,
-326.23f |
5207 path.lineTo(SkBits2Float(0x430b0610), SkBits2Float(0x43c61f86)); // 139.024f, 3
96.246f | 5207 path.lineTo(SkBits2Float(0x430b0610), SkBits2Float(0x43c61f86)); // 139.024f, 3
96.246f |
5208 path.lineTo(SkBits2Float(0xc36c7bd8), SkBits2Float(0x43c61f86)); // -236.484f,
396.246f | 5208 path.lineTo(SkBits2Float(0xc36c7bd8), SkBits2Float(0x43c61f86)); // -236.484f,
396.246f |
5209 | 5209 |
5210 SkPath path2(path); | 5210 SkPath path2(path); |
5211 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename); | 5211 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename); |
5212 } | 5212 } |
5213 | 5213 |
| 5214 static void dean2(skiatest::Reporter* reporter, const char* filename) { |
| 5215 SkPath path; |
| 5216 path.setFillType((SkPath::FillType) 0); |
| 5217 path.moveTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b)); // 0.669749f, 1
3.2891f |
| 5218 path.cubicTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b), SkBits2Float(0x
41531912), SkBits2Float(0x3f130322), SkBits2Float(0x4154a02b), SkBits2Float(0x3f
2b74b3)); // 0.669749f, 13.2891f, 13.1936f, 0.574267f, 13.2891f, 0.669749f |
| 5219 path.cubicTo(SkBits2Float(0x414a835a), SkBits2Float(0x3ec07ba6), SkBits2Float(0x
413fcc0d), SkBits2Float(0x3e193319), SkBits2Float(0x4134a02b), SkBits2Float(0x00
000000)); // 12.6571f, 0.375943f, 11.9873f, 0.149609f, 11.2891f, 0 |
| 5220 path.lineTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b)); // 0.669749f, 1
3.2891f |
| 5221 path.close(); |
| 5222 SkPath path1(path); |
| 5223 |
| 5224 path.reset(); |
| 5225 path.setFillType((SkPath::FillType) 0); |
| 5226 path.moveTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b)); // 0.669749f, 1
3.2891f |
| 5227 path.cubicTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b), SkBits2Float(0x
41531912), SkBits2Float(0x3f130322), SkBits2Float(0x4154a02b), SkBits2Float(0x3f
2b74b3)); // 0.669749f, 13.2891f, 13.1936f, 0.574267f, 13.2891f, 0.669749f |
| 5228 path.lineTo(SkBits2Float(0x417ab74b), SkBits2Float(0x4154a02b)); // 15.6697f, 13
.2891f |
| 5229 path.lineTo(SkBits2Float(0x3f2b74b3), SkBits2Float(0x4154a02b)); // 0.669749f, 1
3.2891f |
| 5230 path.close(); |
| 5231 SkPath path2(path); |
| 5232 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename); |
| 5233 } |
| 5234 |
| 5235 static void cubics_d(skiatest::Reporter* reporter, const char* filename) { |
| 5236 SkPath path, pathB; |
| 5237 path.setFillType(SkPath::kWinding_FillType); |
| 5238 path.moveTo(0, 1); |
| 5239 path.cubicTo(3, 5, 1, 0, 3, 0); |
| 5240 path.close(); |
| 5241 pathB.setFillType(SkPath::kWinding_FillType); |
| 5242 pathB.moveTo(0, 1); |
| 5243 pathB.cubicTo(0, 3, 1, 0, 5, 3); |
| 5244 pathB.close(); |
| 5245 testPathOp(reporter, path, pathB, kDifference_SkPathOp, filename); |
| 5246 } |
| 5247 |
| 5248 static void cubics_d2(skiatest::Reporter* reporter, const char* filename) { |
| 5249 SkPath path, pathB; |
| 5250 path.setFillType(SkPath::kWinding_FillType); |
| 5251 path.moveTo(0, 1); |
| 5252 path.cubicTo(2, 5, 2, 0, 2, 1); |
| 5253 path.close(); |
| 5254 pathB.setFillType(SkPath::kWinding_FillType); |
| 5255 pathB.moveTo(0, 2); |
| 5256 pathB.cubicTo(1, 2, 1, 0, 5, 2); |
| 5257 pathB.close(); |
| 5258 testPathOp(reporter, path, pathB, kDifference_SkPathOp, filename); |
| 5259 } |
| 5260 |
| 5261 static void loops_i1(skiatest::Reporter* reporter, const char* filename) { |
| 5262 SkPath path, pathB; |
| 5263 path.setFillType(SkPath::kWinding_FillType); |
| 5264 path.moveTo(2, 3); |
| 5265 path.cubicTo(0, 4, -0.333333343f, 4.66666651f, 3, 5.83333349f); |
| 5266 path.close(); |
| 5267 pathB.setFillType(SkPath::kWinding_FillType); |
| 5268 pathB.moveTo(0, 4); |
| 5269 pathB.cubicTo(-0.333333343f, 4.66666651f, 3, 5.83333349f, 2, 3); |
| 5270 pathB.close(); |
| 5271 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5272 } |
| 5273 |
| 5274 static void loops_i2(skiatest::Reporter* reporter, const char* filename) { |
| 5275 SkPath path, pathB; |
| 5276 path.setFillType(SkPath::kWinding_FillType); |
| 5277 path.moveTo(2, 4); |
| 5278 path.cubicTo(0, 5, -0.333333343f, 5.66666651f, 3, 6.83333302f); |
| 5279 path.close(); |
| 5280 pathB.setFillType(SkPath::kWinding_FillType); |
| 5281 pathB.moveTo(0, 5); |
| 5282 pathB.cubicTo(-0.333333343f, 5.66666651f, 3, 6.83333302f, 2, 4); |
| 5283 pathB.close(); |
| 5284 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5285 } |
| 5286 |
| 5287 static void loops_i3(skiatest::Reporter* reporter, const char* filename) { |
| 5288 SkPath path, pathB; |
| 5289 path.setFillType(SkPath::kWinding_FillType); |
| 5290 path.moveTo(2, 5); |
| 5291 path.cubicTo(0, 6, -0.333333343f, 6.66666651f, 3, 7.83333302f); |
| 5292 path.close(); |
| 5293 pathB.setFillType(SkPath::kWinding_FillType); |
| 5294 pathB.moveTo(0, 6); |
| 5295 pathB.cubicTo(-0.333333343f, 6.66666651f, 3, 7.83333302f, 2, 5); |
| 5296 pathB.close(); |
| 5297 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5298 } |
| 5299 |
| 5300 static void loops_i4(skiatest::Reporter* reporter, const char* filename) { |
| 5301 SkPath path, pathB; |
| 5302 path.setFillType(SkPath::kWinding_FillType); |
| 5303 path.moveTo(3, 4); |
| 5304 path.cubicTo(1, 5, 0.666666627f, 5.66666651f, 4, 6.83333302f); |
| 5305 path.close(); |
| 5306 pathB.setFillType(SkPath::kWinding_FillType); |
| 5307 pathB.moveTo(1, 5); |
| 5308 pathB.cubicTo(0.666666627f, 5.66666651f, 4, 6.83333302f, 3, 4); |
| 5309 pathB.close(); |
| 5310 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5311 } |
| 5312 |
| 5313 static void loops_i5(skiatest::Reporter* reporter, const char* filename) { |
| 5314 SkPath path, pathB; |
| 5315 path.setFillType(SkPath::kWinding_FillType); |
| 5316 path.moveTo(3, 5); |
| 5317 path.cubicTo(1, 6, 0.666666627f, 6.66666651f, 4, 7.83333302f); |
| 5318 path.close(); |
| 5319 pathB.setFillType(SkPath::kWinding_FillType); |
| 5320 pathB.moveTo(1, 6); |
| 5321 pathB.cubicTo(0.666666627f, 6.66666651f, 4, 7.83333302f, 3, 5); |
| 5322 pathB.close(); |
| 5323 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5324 } |
| 5325 |
| 5326 static void loops_i6(skiatest::Reporter* reporter, const char* filename) { |
| 5327 SkPath path, pathB; |
| 5328 path.setFillType(SkPath::kWinding_FillType); |
| 5329 path.moveTo(4, 5); |
| 5330 path.cubicTo(2, 6, 1.66666663f, 6.66666651f, 5, 7.83333302f); |
| 5331 path.close(); |
| 5332 pathB.setFillType(SkPath::kWinding_FillType); |
| 5333 pathB.moveTo(2, 6); |
| 5334 pathB.cubicTo(1.66666663f, 6.66666651f, 5, 7.83333302f, 4, 5); |
| 5335 pathB.close(); |
| 5336 testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename); |
| 5337 } |
| 5338 |
| 5339 static void cubics_d3(skiatest::Reporter* reporter, const char* filename) { |
| 5340 SkPath path, pathB; |
| 5341 path.setFillType(SkPath::kWinding_FillType); |
| 5342 path.moveTo(3, 4); |
| 5343 path.cubicTo(0, 6, 6, 1, 4, 2); |
| 5344 path.close(); |
| 5345 pathB.setFillType(SkPath::kWinding_FillType); |
| 5346 pathB.moveTo(1, 6); |
| 5347 pathB.cubicTo(2, 4, 4, 3, 6, 0); |
| 5348 pathB.close(); |
| 5349 // DEBUG_UNDER_DEVELOPMENT cubics_d3 disable expectation check for now |
| 5350 testPathOpCheck(reporter, path, pathB, kDifference_SkPathOp, filename, !FLAG
S_runFail); |
| 5351 } |
| 5352 |
| 5353 static void cubics_o(skiatest::Reporter* reporter, const char* filename) { |
| 5354 SkPath path, pathB; |
| 5355 path.setFillType(SkPath::kWinding_FillType); |
| 5356 path.moveTo(1, 4); |
| 5357 path.cubicTo(2, 6, 5, 0, 5, 3); |
| 5358 path.close(); |
| 5359 pathB.setFillType(SkPath::kWinding_FillType); |
| 5360 pathB.moveTo(0, 5); |
| 5361 pathB.cubicTo(3, 5, 4, 1, 6, 2); |
| 5362 pathB.close(); |
| 5363 testPathOp(reporter, path, pathB, kXOR_SkPathOp, filename); |
| 5364 } |
| 5365 |
5214 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; | 5366 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; |
5215 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; | 5367 static void (*firstTest)(skiatest::Reporter* , const char* filename) = cubics_d3
; |
5216 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; | 5368 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; |
5217 | 5369 |
5218 #define TEST(name) { name, #name } | 5370 #define TEST(name) { name, #name } |
5219 | 5371 |
5220 static struct TestDesc tests[] = { | 5372 static struct TestDesc tests[] = { |
| 5373 TEST(loops_i1), |
| 5374 TEST(loops_i2), |
| 5375 TEST(loops_i3), |
| 5376 TEST(loops_i4), |
| 5377 TEST(loops_i5), |
| 5378 TEST(loops_i6), |
| 5379 TEST(cubics_d3), |
| 5380 TEST(cubics_o), |
| 5381 TEST(cubics_d2), |
| 5382 TEST(cubics_d), |
| 5383 TEST(dean2), |
5221 TEST(fuzzX_392), | 5384 TEST(fuzzX_392), |
5222 TEST(crbug_526025), | 5385 TEST(crbug_526025), |
5223 TEST(fuzz38), | 5386 TEST(fuzz38), |
5224 TEST(cubics44d), | 5387 TEST(cubics44d), |
5225 TEST(cubics45u), | 5388 TEST(cubics45u), |
5226 TEST(loops61i), | 5389 TEST(loops61i), |
5227 TEST(loops62i), | 5390 TEST(loops62i), |
5228 TEST(loops63i), | 5391 TEST(loops63i), |
5229 TEST(loops58iAsQuads), | 5392 TEST(loops58iAsQuads), |
5230 TEST(cubics41d), | 5393 TEST(cubics41d), |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5587 | 5750 |
5588 static void fuzz535151(skiatest::Reporter* reporter, const char* filename) { | 5751 static void fuzz535151(skiatest::Reporter* reporter, const char* filename) { |
5589 SkPath one; | 5752 SkPath one; |
5590 one.setFillType(SkPath::kWinding_FillType); | 5753 one.setFillType(SkPath::kWinding_FillType); |
5591 SkPath two; | 5754 SkPath two; |
5592 two.setFillType(SkPath::kWinding_FillType); | 5755 two.setFillType(SkPath::kWinding_FillType); |
5593 two.moveTo(0, 0); | 5756 two.moveTo(0, 0); |
5594 two.lineTo(0, 50); | 5757 two.lineTo(0, 50); |
5595 two.lineTo(4.29497e+09f, 50); | 5758 two.lineTo(4.29497e+09f, 50); |
5596 SkPath dummy; | 5759 SkPath dummy; |
5597 REPORTER_ASSERT(reporter, !Op(one, two, kIntersect_SkPathOp, &dummy)); | 5760 testPathOp(reporter, one, two, kIntersect_SkPathOp, filename); |
5598 } | 5761 } |
5599 | 5762 |
5600 static void bufferOverflow(skiatest::Reporter* reporter, const char* filename) { | 5763 static void bufferOverflow(skiatest::Reporter* reporter, const char* filename) { |
5601 SkPath path; | 5764 SkPath path; |
5602 path.addRect(0,0, 300,170141183460469231731687303715884105728.f); | 5765 path.addRect(0,0, 300,170141183460469231731687303715884105728.f); |
5603 SkPath pathB; | 5766 SkPath pathB; |
5604 pathB.addRect(0,0, 300,16); | 5767 pathB.addRect(0,0, 300,16); |
5605 testPathOp(reporter, path, pathB, kUnion_SkPathOp, filename); | 5768 testPathOpCheck(reporter, path, pathB, kUnion_SkPathOp, filename, true); |
5606 } | 5769 } |
5607 | 5770 |
5608 // m 100,0 60,170 -160,-110 200,0 -170,11000000000 z | 5771 // m 100,0 60,170 -160,-110 200,0 -170,11000000000 z |
5609 static void fuzz433(skiatest::Reporter* reporter, const char* filename) { | 5772 static void fuzz433(skiatest::Reporter* reporter, const char* filename) { |
5610 SkPath path1, path2; | 5773 SkPath path1, path2; |
5611 path1.moveTo(100,0); | 5774 path1.moveTo(100,0); |
5612 path1.lineTo(60,170); | 5775 path1.lineTo(60,170); |
5613 path1.lineTo(-160,-110); | 5776 path1.lineTo(-160,-110); |
5614 path1.lineTo(200,0); | 5777 path1.lineTo(200,0); |
5615 path1.lineTo(-170,11000000000.0f); | 5778 path1.lineTo(-170,11000000000.0f); |
5616 path1.close(); | 5779 path1.close(); |
5617 | 5780 |
5618 path2.moveTo(100 + 20,0 + 20); | 5781 path2.moveTo(100 + 20,0 + 20); |
5619 path2.lineTo(60 + 20,170 + 20); | 5782 path2.lineTo(60 + 20,170 + 20); |
5620 path2.lineTo(-160 + 20,-110 + 20); | 5783 path2.lineTo(-160 + 20,-110 + 20); |
5621 path2.lineTo(200 + 20,0 + 20); | 5784 path2.lineTo(200 + 20,0 + 20); |
5622 path2.lineTo(-170 + 20,11000000000.0f + 20); | 5785 path2.lineTo(-170 + 20,11000000000.0f + 20); |
5623 path2.close(); | 5786 path2.close(); |
5624 | 5787 |
5625 testPathOpCheck(reporter, path1, path2, kIntersect_SkPathOp, filename, FLAGS
_runFail); | 5788 testPathOpCheck(reporter, path1, path2, kIntersect_SkPathOp, filename, true)
; |
5626 } | 5789 } |
5627 | 5790 |
5628 static void fuzz433b(skiatest::Reporter* reporter, const char* filename) { | 5791 static void fuzz433b(skiatest::Reporter* reporter, const char* filename) { |
5629 SkPath path1, path2; | 5792 SkPath path1, path2; |
5630 path1.setFillType(SkPath::kEvenOdd_FillType); | 5793 path1.setFillType(SkPath::kEvenOdd_FillType); |
5631 path1.moveTo(140, 40); | 5794 path1.moveTo(140, 40); |
5632 path1.lineTo(200, 210); | 5795 path1.lineTo(200, 210); |
5633 path1.lineTo(40, 100); | 5796 path1.lineTo(40, 100); |
5634 path1.lineTo(240, 100); | 5797 path1.lineTo(240, 100); |
5635 path1.lineTo(70, 1.1e+10f); | 5798 path1.lineTo(70, 1.1e+10f); |
5636 path1.lineTo(140, 40); | 5799 path1.lineTo(140, 40); |
5637 path1.close(); | 5800 path1.close(); |
5638 | 5801 |
5639 path1.setFillType(SkPath::kWinding_FillType); | 5802 path1.setFillType(SkPath::kWinding_FillType); |
5640 path2.moveTo(190, 60); | 5803 path2.moveTo(190, 60); |
5641 path2.lineTo(250, 230); | 5804 path2.lineTo(250, 230); |
5642 path2.lineTo(90, 120); | 5805 path2.lineTo(90, 120); |
5643 path2.lineTo(290, 120); | 5806 path2.lineTo(290, 120); |
5644 path2.lineTo(120, 1.1e+10f); | 5807 path2.lineTo(120, 1.1e+10f); |
5645 path2.lineTo(190, 60); | 5808 path2.lineTo(190, 60); |
5646 path2.close(); | 5809 path2.close(); |
5647 | 5810 |
5648 testPathOpCheck(reporter, path1, path2, kUnion_SkPathOp, filename, FLAGS_run
Fail); | 5811 testPathOpCheck(reporter, path1, path2, kUnion_SkPathOp, filename, true); |
5649 } | 5812 } |
5650 | 5813 |
5651 static void fuzz487a(skiatest::Reporter* reporter, const char* filename) { | 5814 static void fuzz487a(skiatest::Reporter* reporter, const char* filename) { |
5652 SkPath path; | 5815 SkPath path; |
5653 path.setFillType((SkPath::FillType) 0); | 5816 path.setFillType((SkPath::FillType) 0); |
5654 path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); | 5817 path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); |
5655 path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000)); | 5818 path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000)); |
5656 path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x
42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42
633333)); | 5819 path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x
42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42
633333)); |
5657 path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc)); | 5820 path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc)); |
5658 path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x
42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41
a3ffff)); | 5821 path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x
42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41
a3ffff)); |
(...skipping 25 matching lines...) Expand all Loading... |
5684 path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x
423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x43
1cb334)); | 5847 path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x
423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x43
1cb334)); |
5685 path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd)); | 5848 path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd)); |
5686 path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd)); | 5849 path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd)); |
5687 path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd)); | 5850 path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd)); |
5688 path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334)); | 5851 path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334)); |
5689 path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x
43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43
080000)); | 5852 path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x
43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43
080000)); |
5690 path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); | 5853 path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); |
5691 path.close(); | 5854 path.close(); |
5692 | 5855 |
5693 SkPath path2(path); | 5856 SkPath path2(path); |
5694 testPathOpFailCheck(reporter, path1, path2, (SkPathOp) 2, filename); | 5857 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, true); |
5695 } | 5858 } |
5696 | 5859 |
5697 static void fuzz487b(skiatest::Reporter* reporter, const char* filename) { | 5860 static void fuzz487b(skiatest::Reporter* reporter, const char* filename) { |
5698 SkPath path; | 5861 SkPath path; |
5699 path.setFillType((SkPath::FillType) 0); | 5862 path.setFillType((SkPath::FillType) 0); |
5700 path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); | 5863 path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); |
5701 path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000)); | 5864 path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000)); |
5702 path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x
42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42
633333)); | 5865 path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x
42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42
633333)); |
5703 path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc)); | 5866 path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc)); |
5704 path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x
42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41
a3ffff)); | 5867 path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x
42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41
a3ffff)); |
(...skipping 25 matching lines...) Expand all Loading... |
5730 path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x
423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x43
1cb334)); | 5893 path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x
423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x43
1cb334)); |
5731 path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd)); | 5894 path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd)); |
5732 path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd)); | 5895 path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd)); |
5733 path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd)); | 5896 path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd)); |
5734 path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334)); | 5897 path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334)); |
5735 path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x
43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43
080000)); | 5898 path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x
43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43
080000)); |
5736 path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); | 5899 path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000)); |
5737 path.close(); | 5900 path.close(); |
5738 | 5901 |
5739 SkPath path2(path); | 5902 SkPath path2(path); |
5740 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai
l); | 5903 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, true); |
5741 } | 5904 } |
5742 | 5905 |
5743 static void fuzz714(skiatest::Reporter* reporter, const char* filename) { | 5906 static void fuzz714(skiatest::Reporter* reporter, const char* filename) { |
5744 SkPath path; | 5907 SkPath path; |
5745 path.setFillType((SkPath::FillType) 1); | 5908 path.setFillType((SkPath::FillType) 1); |
5746 path.moveTo(SkBits2Float(0x430c0000), SkBits2Float(0x42200000)); | 5909 path.moveTo(SkBits2Float(0x430c0000), SkBits2Float(0x42200000)); |
5747 path.lineTo(SkBits2Float(0x43480000), SkBits2Float(0x43520000)); | 5910 path.lineTo(SkBits2Float(0x43480000), SkBits2Float(0x43520000)); |
5748 path.lineTo(SkBits2Float(0x42200000), SkBits2Float(0x42c80000)); | 5911 path.lineTo(SkBits2Float(0x42200000), SkBits2Float(0x42c80000)); |
5749 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x42c80000)); // 2.22222e+02
2f | 5912 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x42c80000)); // 2.22222e+02
2f |
5750 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x43520000)); // 2.22222e+02
2f | 5913 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x43520000)); // 2.22222e+02
2f |
5751 path.lineTo(SkBits2Float(0x430c0000), SkBits2Float(0x42200000)); | 5914 path.lineTo(SkBits2Float(0x430c0000), SkBits2Float(0x42200000)); |
5752 path.close(); | 5915 path.close(); |
5753 | 5916 |
5754 SkPath path1(path); | 5917 SkPath path1(path); |
5755 path.reset(); | 5918 path.reset(); |
5756 path.setFillType((SkPath::FillType) 0); | 5919 path.setFillType((SkPath::FillType) 0); |
5757 path.moveTo(SkBits2Float(0x43200000), SkBits2Float(0x42700000)); | 5920 path.moveTo(SkBits2Float(0x43200000), SkBits2Float(0x42700000)); |
5758 path.lineTo(SkBits2Float(0x435c0000), SkBits2Float(0x43660000)); | 5921 path.lineTo(SkBits2Float(0x435c0000), SkBits2Float(0x43660000)); |
5759 path.lineTo(SkBits2Float(0x42700000), SkBits2Float(0x42f00000)); | 5922 path.lineTo(SkBits2Float(0x42700000), SkBits2Float(0x42f00000)); |
5760 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x42f00000)); // 2.22222e+02
2f | 5923 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x42f00000)); // 2.22222e+02
2f |
5761 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x43660000)); // 2.22222e+02
2f | 5924 path.lineTo(SkBits2Float(0x64969569), SkBits2Float(0x43660000)); // 2.22222e+02
2f |
5762 path.lineTo(SkBits2Float(0x43200000), SkBits2Float(0x42700000)); | 5925 path.lineTo(SkBits2Float(0x43200000), SkBits2Float(0x42700000)); |
5763 path.close(); | 5926 path.close(); |
5764 | 5927 |
5765 SkPath path2(path); | 5928 SkPath path2(path); |
5766 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai
l); | 5929 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, true); |
5767 } | 5930 } |
5768 | 5931 |
5769 static void fuzz1(skiatest::Reporter* reporter, const char* filename) { | 5932 static void fuzz1(skiatest::Reporter* reporter, const char* filename) { |
5770 SkPath path; | 5933 SkPath path; |
5771 path.setFillType((SkPath::FillType) 0); | 5934 path.setFillType((SkPath::FillType) 0); |
5772 path.moveTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000)); | 5935 path.moveTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000)); |
5773 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); | 5936 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); |
5774 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); | 5937 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0x7f800000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); |
5775 path.quadTo(SkBits2Float(0xffc00000), SkBits2Float(0x7f800000), SkBits2Float(0xf
fc00000), SkBits2Float(0x7f800000)); | 5938 path.quadTo(SkBits2Float(0xffc00000), SkBits2Float(0x7f800000), SkBits2Float(0xf
fc00000), SkBits2Float(0x7f800000)); |
5776 path.quadTo(SkBits2Float(0xff000001), SkBits2Float(0x7f800000), SkBits2Float(0xf
f000001), SkBits2Float(0x7f800000)); | 5939 path.quadTo(SkBits2Float(0xff000001), SkBits2Float(0x7f800000), SkBits2Float(0xf
f000001), SkBits2Float(0x7f800000)); |
5777 path.quadTo(SkBits2Float(0xff000001), SkBits2Float(0xffc00000), SkBits2Float(0xf
fc00000), SkBits2Float(0xffc00000)); | 5940 path.quadTo(SkBits2Float(0xff000001), SkBits2Float(0xffc00000), SkBits2Float(0xf
fc00000), SkBits2Float(0xffc00000)); |
5778 path.quadTo(SkBits2Float(0xffc00000), SkBits2Float(0xff000001), SkBits2Float(0x7
f800000), SkBits2Float(0xff000001)); | 5941 path.quadTo(SkBits2Float(0xffc00000), SkBits2Float(0xff000001), SkBits2Float(0x7
f800000), SkBits2Float(0xff000001)); |
5779 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0xff000001), SkBits2Float(0x7
f800000), SkBits2Float(0xffc00000)); | 5942 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0xff000001), SkBits2Float(0x7
f800000), SkBits2Float(0xffc00000)); |
5780 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0xffc00000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); | 5943 path.quadTo(SkBits2Float(0x7f800000), SkBits2Float(0xffc00000), SkBits2Float(0x7
f800000), SkBits2Float(0x7f800000)); |
5781 path.close(); | 5944 path.close(); |
5782 | 5945 |
5783 SkPath path1(path); | 5946 SkPath path1(path); |
5784 path.reset(); | 5947 path.reset(); |
5785 path.setFillType((SkPath::FillType) 0); | 5948 path.setFillType((SkPath::FillType) 0); |
5786 | 5949 |
5787 SkPath path2(path); | 5950 SkPath path2(path); |
5788 testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename); | 5951 testPathOpFail(reporter, path1, path2, (SkPathOp) 2, filename); |
5789 } | 5952 } |
5790 | 5953 |
5791 | 5954 |
5792 static void fuzz753_91(skiatest::Reporter* reporter, const char* filename) { | 5955 static void fuzz753_91(skiatest::Reporter* reporter, const char* filename) { |
5793 SkPath path; | 5956 SkPath path; |
5794 path.setFillType((SkPath::FillType) 0); | 5957 path.setFillType((SkPath::FillType) 0); |
5795 path.moveTo(SkBits2Float(0x42910000), SkBits2Float(0x00000000)); // 72.5f, 0 | 5958 path.moveTo(SkBits2Float(0x42910000), SkBits2Float(0x00000000)); // 72.5f, 0 |
5796 path.lineTo(SkBits2Float(0x42166668), SkBits2Float(0x00000000)); // 37.6f, 0 | 5959 path.lineTo(SkBits2Float(0x42166668), SkBits2Float(0x00000000)); // 37.6f, 0 |
5797 path.cubicTo(SkBits2Float(0x42166668), SkBits2Float(0xc1966668), SkBits2Float(0x
41c66668), SkBits2Float(0xc20a6666), SkBits2Float(0x40f00010), SkBits2Float(0xc2
1ccccd)); // 37.6f, -18.8f, 24.8f, -34.6f, 7.50001f, -39.2f | 5960 path.cubicTo(SkBits2Float(0x42166668), SkBits2Float(0xc1966668), SkBits2Float(0x
41c66668), SkBits2Float(0xc20a6666), SkBits2Float(0x40f00010), SkBits2Float(0xc2
1ccccd)); // 37.6f, -18.8f, 24.8f, -34.6f, 7.50001f, -39.2f |
5798 path.lineTo(SkBits2Float(0x41840004), SkBits2Float(0xc291cccd)); // 16.5f, -72.
9f | 5961 path.lineTo(SkBits2Float(0x41840004), SkBits2Float(0xc291cccd)); // 16.5f, -72.
9f |
5799 path.lineTo(SkBits2Float(0x42fb6668), SkBits2Float(0x42c73334)); // 125.7f, 99.
6f | 5962 path.lineTo(SkBits2Float(0x42fb6668), SkBits2Float(0x42c73334)); // 125.7f, 99.
6f |
5800 path.lineTo(SkBits2Float(0x43646668), SkBits2Float(0x43880ccd)); // 228.4f, 272
.1f | 5963 path.lineTo(SkBits2Float(0x43646668), SkBits2Float(0x43880ccd)); // 228.4f, 272
.1f |
5801 | 5964 |
5802 SkPath path1(path); | 5965 SkPath path1(path); |
5803 path.reset(); | 5966 path.reset(); |
5804 path.setFillType((SkPath::FillType) 0); | 5967 path.setFillType((SkPath::FillType) 0); |
5805 path.moveTo(SkBits2Float(0x428bf702), SkBits2Float(0xcf223cbf)); // 69.9824f, -
2.72189e+09f | 5968 path.moveTo(SkBits2Float(0x428bf702), SkBits2Float(0xcf223cbf)); // 69.9824f, -
2.72189e+09f |
5806 path.lineTo(SkBits2Float(0x42112d68), SkBits2Float(0xcf223cbf)); // 36.2943f, -
2.72189e+09f | 5969 path.lineTo(SkBits2Float(0x42112d68), SkBits2Float(0xcf223cbf)); // 36.2943f, -
2.72189e+09f |
5807 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 | 5970 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 |
5808 path.lineTo(SkBits2Float(0x424a99e0), SkBits2Float(0xcf223cc0)); // 50.6503f, -
2.72189e+09f | 5971 path.lineTo(SkBits2Float(0x424a99e0), SkBits2Float(0xcf223cc0)); // 50.6503f, -
2.72189e+09f |
5809 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 | 5972 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 |
5810 path.lineTo(SkBits2Float(0x40f8fbe0), SkBits2Float(0xcf223cc0)); // 7.78075f, -
2.72189e+09f | 5973 path.lineTo(SkBits2Float(0x40f8fbe0), SkBits2Float(0xcf223cc0)); // 7.78075f, -
2.72189e+09f |
5811 | 5974 |
5812 SkPath path2(path); | 5975 SkPath path2(path); |
5813 testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename); | 5976 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); |
5814 } | 5977 } |
5815 | 5978 |
5816 static void bug597926_0(skiatest::Reporter* reporter, const char* filename) { | 5979 static void bug597926_0(skiatest::Reporter* reporter, const char* filename) { |
5817 SkPath path; | 5980 SkPath path; |
5818 path.setFillType((SkPath::FillType) 0); | 5981 path.setFillType((SkPath::FillType) 0); |
5819 path.moveTo(SkBits2Float(0x43b38000), SkBits2Float(0x433e0000)); // 359, 190 | 5982 path.moveTo(SkBits2Float(0x43b38000), SkBits2Float(0x433e0000)); // 359, 190 |
5820 path.lineTo(SkBits2Float(0x40c00000), SkBits2Float(0x449ce000)); // 6, 1255 | 5983 path.lineTo(SkBits2Float(0x40c00000), SkBits2Float(0x449ce000)); // 6, 1255 |
5821 path.cubicTo(SkBits2Float(0x438c0000), SkBits2Float(0x4497a000), SkBits2Float(0x
43e40000), SkBits2Float(0x44750000), SkBits2Float(0x41000000), SkBits2Float(0x44
aa2000)); // 280, 1213, 456, 980, 8, 1361 | 5984 path.cubicTo(SkBits2Float(0x438c0000), SkBits2Float(0x4497a000), SkBits2Float(0x
43e40000), SkBits2Float(0x44750000), SkBits2Float(0x41000000), SkBits2Float(0x44
aa2000)); // 280, 1213, 456, 980, 8, 1361 |
5822 path.moveTo(SkBits2Float(0x43290000), SkBits2Float(0x4431c000)); // 169, 711 | 5985 path.moveTo(SkBits2Float(0x43290000), SkBits2Float(0x4431c000)); // 169, 711 |
5823 path.lineTo(SkBits2Float(0xd987d6ba), SkBits2Float(0xd93d0ad4)); // -4.7794e+15
f, -3.32567e+15f | 5986 path.lineTo(SkBits2Float(0xd987d6ba), SkBits2Float(0xd93d0ad4)); // -4.7794e+15
f, -3.32567e+15f |
5824 path.conicTo(SkBits2Float(0x43cc8000), SkBits2Float(0x445b8000), SkBits2Float(0x
d888b096), SkBits2Float(0xd9a1ebfa), SkBits2Float(0x3ebcb199)); // 409, 878, -1
.20234e+15f, -5.69712e+15f, 0.368542f | 5987 path.conicTo(SkBits2Float(0x43cc8000), SkBits2Float(0x445b8000), SkBits2Float(0x
d888b096), SkBits2Float(0xd9a1ebfa), SkBits2Float(0x3ebcb199)); // 409, 878, -1
.20234e+15f, -5.69712e+15f, 0.368542f |
5825 path.cubicTo(SkBits2Float(0x43c00000), SkBits2Float(0x443a8000), SkBits2Float(0x
42380000), SkBits2Float(0x4421c000), SkBits2Float(0x42500000), SkBits2Float(0x44
8ca000)); // 384, 746, 46, 647, 52, 1125 | 5988 path.cubicTo(SkBits2Float(0x43c00000), SkBits2Float(0x443a8000), SkBits2Float(0x
42380000), SkBits2Float(0x4421c000), SkBits2Float(0x42500000), SkBits2Float(0x44
8ca000)); // 384, 746, 46, 647, 52, 1125 |
5826 path.quadTo(SkBits2Float(0x43948000), SkBits2Float(0x42ac0000), SkBits2Float(0x4
3880000), SkBits2Float(0x4487e000)); // 297, 86, 272, 1087 | 5989 path.quadTo(SkBits2Float(0x43948000), SkBits2Float(0x42ac0000), SkBits2Float(0x4
3880000), SkBits2Float(0x4487e000)); // 297, 86, 272, 1087 |
5827 SkPath path1(path); | 5990 SkPath path1(path); |
5828 path.reset(); | 5991 path.reset(); |
5829 path.setFillType((SkPath::FillType) 0); | 5992 path.setFillType((SkPath::FillType) 0); |
5830 path.moveTo(SkBits2Float(0xc51d735c), SkBits2Float(0xc49db029)); // -2519.21f,
-1261.51f | 5993 path.moveTo(SkBits2Float(0xc51d735c), SkBits2Float(0xc49db029)); // -2519.21f,
-1261.51f |
5831 path.cubicTo(SkBits2Float(0xc51d1dbd), SkBits2Float(0xc49d7a3f), SkBits2Float(0x
c51c524a), SkBits2Float(0xc49d1610), SkBits2Float(0xc51d1a96), SkBits2Float(0xc4
9d86a6)); // -2513.86f, -1259.82f, -2501.14f, -1256.69f, -2513.66f, -1260.21f | 5994 path.cubicTo(SkBits2Float(0xc51d1dbd), SkBits2Float(0xc49d7a3f), SkBits2Float(0x
c51c524a), SkBits2Float(0xc49d1610), SkBits2Float(0xc51d1a96), SkBits2Float(0xc4
9d86a6)); // -2513.86f, -1259.82f, -2501.14f, -1256.69f, -2513.66f, -1260.21f |
5832 path.cubicTo(SkBits2Float(0xc51cd471), SkBits2Float(0xc49d54d0), SkBits2Float(0x
c51c2e51), SkBits2Float(0xc49d0081), SkBits2Float(0xc51d197b), SkBits2Float(0xc4
9d7927)); // -2509.28f, -1258.65f, -2498.89f, -1256.02f, -2513.59f, -1259.79f | 5995 path.cubicTo(SkBits2Float(0xc51cd471), SkBits2Float(0xc49d54d0), SkBits2Float(0x
c51c2e51), SkBits2Float(0xc49d0081), SkBits2Float(0xc51d197b), SkBits2Float(0xc4
9d7927)); // -2509.28f, -1258.65f, -2498.89f, -1256.02f, -2513.59f, -1259.79f |
5833 path.quadTo(SkBits2Float(0xc51bf7eb), SkBits2Float(0xc49cf010), SkBits2Float(0xc
51ba866), SkBits2Float(0xc49cb9e6)); // -2495.49f, -1255.5f, -2490.52f, -1253.8
1f | 5996 path.quadTo(SkBits2Float(0xc51bf7eb), SkBits2Float(0xc49cf010), SkBits2Float(0xc
51ba866), SkBits2Float(0xc49cb9e6)); // -2495.49f, -1255.5f, -2490.52f, -1253.8
1f |
5834 path.cubicTo(SkBits2Float(0xc51bac0d), SkBits2Float(0xc49cc50e), SkBits2Float(0x
c51c29eb), SkBits2Float(0xc49cfb01), SkBits2Float(0xc51c5bca), SkBits2Float(0xc4
9d1fa6)); // -2490.75f, -1254.16f, -2498.62f, -1255.84f, -2501.74f, -1256.99f | 5997 path.cubicTo(SkBits2Float(0xc51bac0d), SkBits2Float(0xc49cc50e), SkBits2Float(0x
c51c29eb), SkBits2Float(0xc49cfb01), SkBits2Float(0xc51c5bca), SkBits2Float(0xc4
9d1fa6)); // -2490.75f, -1254.16f, -2498.62f, -1255.84f, -2501.74f, -1256.99f |
5835 SkPath path2(path); | 5998 SkPath path2(path); |
5836 testPathFailOp(reporter, path1, path2, (SkPathOp) 1, filename); | 5999 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename); |
5837 } | 6000 } |
5838 | 6001 |
5839 static void fuzz1450_0(skiatest::Reporter* reporter, const char* filename) { | 6002 static void fuzz1450_0(skiatest::Reporter* reporter, const char* filename) { |
5840 SkPath path; | 6003 SkPath path; |
5841 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0xcf000000)); // 360, -2.147
48e+09f | 6004 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0xcf000000)); // 360, -2.147
48e+09f |
5842 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcf000000), SkBits2Float(0x
4e800002), SkBits2Float(0xce7ffffe), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, -2.14748e+09f, 1.07374e+09f, -1.07374e+09f, 0.707107f | 6005 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcf000000), SkBits2Float(0x
4e800002), SkBits2Float(0xce7ffffe), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, -2.14748e+09f, 1.07374e+09f, -1.07374e+09f, 0.707107f |
5843 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0x43800001), SkBits2Float(0x
43348000), SkBits2Float(0x43800001), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, 256, 180.5f, 256, 0.707107f | 6006 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0x43800001), SkBits2Float(0x
43348000), SkBits2Float(0x43800001), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, 256, 180.5f, 256, 0.707107f |
5844 SkPath path1(path); | 6007 SkPath path1(path); |
5845 path.reset(); | 6008 path.reset(); |
5846 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 | 6009 path.moveTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 |
5847 path.conicTo(SkBits2Float(0x43b40005), SkBits2Float(0x458a945d), SkBits2Float(0x
45610000), SkBits2Float(0x458a945d), SkBits2Float(0x3f3504f3)); // 360, 4434.55
f, 3600, 4434.55f, 0.707107f | 6010 path.conicTo(SkBits2Float(0x43b40005), SkBits2Float(0x458a945d), SkBits2Float(0x
45610000), SkBits2Float(0x458a945d), SkBits2Float(0x3f3504f3)); // 360, 4434.55
f, 3600, 4434.55f, 0.707107f |
5848 path.conicTo(SkBits2Float(0x45d5bfff), SkBits2Float(0x458a945d), SkBits2Float(0x
45d5bfff), SkBits2Float(0x45816000), SkBits2Float(0x3f3504f3)); // 6840, 4434.5
5f, 6840, 4140, 0.707107f | 6011 path.conicTo(SkBits2Float(0x45d5bfff), SkBits2Float(0x458a945d), SkBits2Float(0x
45d5bfff), SkBits2Float(0x45816000), SkBits2Float(0x3f3504f3)); // 6840, 4434.5
5f, 6840, 4140, 0.707107f |
5849 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x44000000)); // 100, 512 | 6012 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x44000000)); // 100, 512 |
5850 path.lineTo(SkBits2Float(0x42000000), SkBits2Float(0x41800000)); // 32, 16 | 6013 path.lineTo(SkBits2Float(0x42000000), SkBits2Float(0x41800000)); // 32, 16 |
5851 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x44800000)); // 360, 1024 | 6014 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x44800000)); // 360, 1024 |
5852 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 | 6015 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 |
5853 path.close(); | 6016 path.close(); |
5854 SkPath path2(path); | 6017 SkPath path2(path); |
5855 testPathSkipAssertOp(reporter, path1, path2, kUnion_SkPathOp, filename); | 6018 testPathOpSkipAssert(reporter, path1, path2, kUnion_SkPathOp, filename); |
5856 } | 6019 } |
5857 | 6020 |
5858 static void fuzz1450_1(skiatest::Reporter* reporter, const char* filename) { | 6021 static void fuzz1450_1(skiatest::Reporter* reporter, const char* filename) { |
5859 SkPath path; | 6022 SkPath path; |
5860 path.setFillType(SkPath::kEvenOdd_FillType); | 6023 path.setFillType(SkPath::kEvenOdd_FillType); |
5861 path.moveTo(SkBits2Float(0x4e800002), SkBits2Float(0xce7ffffe)); // 1.07374e+09
f, -1.07374e+09f | 6024 path.moveTo(SkBits2Float(0x4e800002), SkBits2Float(0xce7ffffe)); // 1.07374e+09
f, -1.07374e+09f |
5862 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcf000000), SkBits2Float(0x
43b40000), SkBits2Float(0xcf000000), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, -2.14748e+09f, 360, -2.14748e+09f, 0.707107f | 6025 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0xcf000000), SkBits2Float(0x
43b40000), SkBits2Float(0xcf000000), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, -2.14748e+09f, 360, -2.14748e+09f, 0.707107f |
5863 path.lineTo(SkBits2Float(0x43348000), SkBits2Float(0x43800001)); // 180.5f, 256 | 6026 path.lineTo(SkBits2Float(0x43348000), SkBits2Float(0x43800001)); // 180.5f, 256 |
5864 path.lineTo(SkBits2Float(0x42000000), SkBits2Float(0x41800000)); // 32, 16 | 6027 path.lineTo(SkBits2Float(0x42000000), SkBits2Float(0x41800000)); // 32, 16 |
5865 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x44000000)); // 100, 512 | 6028 path.lineTo(SkBits2Float(0x42c80000), SkBits2Float(0x44000000)); // 100, 512 |
5866 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f | 6029 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f |
5867 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x44800000)); // 360, 1024 | 6030 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x44800000)); // 360, 1024 |
5868 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 | 6031 path.lineTo(SkBits2Float(0x43b40000), SkBits2Float(0x45816000)); // 360, 4140 |
5869 path.conicTo(SkBits2Float(0x43b40005), SkBits2Float(0x458a945d), SkBits2Float(0x
45610000), SkBits2Float(0x458a945d), SkBits2Float(0x3f3504f3)); // 360, 4434.55
f, 3600, 4434.55f, 0.707107f | 6032 path.conicTo(SkBits2Float(0x43b40005), SkBits2Float(0x458a945d), SkBits2Float(0x
45610000), SkBits2Float(0x458a945d), SkBits2Float(0x3f3504f3)); // 360, 4434.55
f, 3600, 4434.55f, 0.707107f |
5870 path.conicTo(SkBits2Float(0x45d5bfff), SkBits2Float(0x458a945d), SkBits2Float(0x
45d5bfff), SkBits2Float(0x45816000), SkBits2Float(0x3f3504f3)); // 6840, 4434.5
5f, 6840, 4140, 0.707107f | 6033 path.conicTo(SkBits2Float(0x45d5bfff), SkBits2Float(0x458a945d), SkBits2Float(0x
45d5bfff), SkBits2Float(0x45816000), SkBits2Float(0x3f3504f3)); // 6840, 4434.5
5f, 6840, 4140, 0.707107f |
5871 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f | 6034 path.lineTo(SkBits2Float(0x43553abd), SkBits2Float(0x440f3cbd)); // 213.229f, 5
72.949f |
5872 path.lineTo(SkBits2Float(0x43348000), SkBits2Float(0x43800001)); // 180.5f, 256 | 6035 path.lineTo(SkBits2Float(0x43348000), SkBits2Float(0x43800001)); // 180.5f, 256 |
5873 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0x43800001), SkBits2Float(0x
4e800002), SkBits2Float(0xce7ffffe), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, 256, 1.07374e+09f, -1.07374e+09f, 0.707107f | 6036 path.conicTo(SkBits2Float(0x4e800002), SkBits2Float(0x43800001), SkBits2Float(0x
4e800002), SkBits2Float(0xce7ffffe), SkBits2Float(0x3f3504f4)); // 1.07374e+09f
, 256, 1.07374e+09f, -1.07374e+09f, 0.707107f |
5874 path.close(); | 6037 path.close(); |
5875 SkPath path1(path); | 6038 SkPath path1(path); |
5876 path.reset(); | 6039 path.reset(); |
5877 path.moveTo(SkBits2Float(0x42fe0000), SkBits2Float(0x43a08000)); // 127, 321 | 6040 path.moveTo(SkBits2Float(0x42fe0000), SkBits2Float(0x43a08000)); // 127, 321 |
5878 path.lineTo(SkBits2Float(0x45d5c000), SkBits2Float(0x43870000)); // 6840, 270 | 6041 path.lineTo(SkBits2Float(0x45d5c000), SkBits2Float(0x43870000)); // 6840, 270 |
5879 path.lineTo(SkBits2Float(0xd0a00000), SkBits2Float(0x4cbebc20)); // -2.14748e+1
0f, 1e+08 | 6042 path.lineTo(SkBits2Float(0xd0a00000), SkBits2Float(0x4cbebc20)); // -2.14748e+1
0f, 1e+08 |
5880 path.lineTo(SkBits2Float(0x451f7000), SkBits2Float(0x42800000)); // 2551, 64 | 6043 path.lineTo(SkBits2Float(0x451f7000), SkBits2Float(0x42800000)); // 2551, 64 |
5881 path.lineTo(SkBits2Float(0x42fe0000), SkBits2Float(0x43a08000)); // 127, 321 | 6044 path.lineTo(SkBits2Float(0x42fe0000), SkBits2Float(0x43a08000)); // 127, 321 |
5882 path.close(); | 6045 path.close(); |
5883 SkPath path2(path); | 6046 SkPath path2(path); |
5884 testPathFailOp(reporter, path1, path2, kUnion_SkPathOp, filename); | 6047 testPathOpSkipAssert(reporter, path1, path2, kUnion_SkPathOp, filename); |
5885 } | 6048 } |
5886 | 6049 |
5887 static void fuzz763_9(skiatest::Reporter* reporter, const char* filename) { | 6050 static void fuzz763_9(skiatest::Reporter* reporter, const char* filename) { |
5888 SkPath path; | 6051 SkPath path; |
5889 path.setFillType((SkPath::FillType) 1); | 6052 path.setFillType((SkPath::FillType) 1); |
5890 | 6053 |
5891 SkPath path1(path); | 6054 SkPath path1(path); |
5892 path.reset(); | 6055 path.reset(); |
5893 path.setFillType((SkPath::FillType) 0); | 6056 path.setFillType((SkPath::FillType) 0); |
5894 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 | 6057 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
5895 path.conicTo(SkBits2Float(0x2a8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x
7bc00321), SkBits2Float(0xed7a6a4b), SkBits2Float(0x1f212a8c)); // 2.49282e-13f
, 4.78968e-34f, 1.99397e+36f, -4.84373e+27f, 3.41283e-20f | 6058 path.conicTo(SkBits2Float(0x2a8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x
7bc00321), SkBits2Float(0xed7a6a4b), SkBits2Float(0x1f212a8c)); // 2.49282e-13f
, 4.78968e-34f, 1.99397e+36f, -4.84373e+27f, 3.41283e-20f |
5896 path.lineTo(SkBits2Float(0x7bc00321), SkBits2Float(0xed7a6a4b)); // 1.99397e+36
f, -4.84373e+27f | 6059 path.lineTo(SkBits2Float(0x7bc00321), SkBits2Float(0xed7a6a4b)); // 1.99397e+36
f, -4.84373e+27f |
5897 path.lineTo(SkBits2Float(0x282a3a21), SkBits2Float(0x3a21df28)); // 9.4495e-15f
, 0.000617492f | 6060 path.lineTo(SkBits2Float(0x282a3a21), SkBits2Float(0x3a21df28)); // 9.4495e-15f
, 0.000617492f |
5898 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 | 6061 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
5899 path.close(); | 6062 path.close(); |
5900 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 | 6063 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
5901 path.quadTo(SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3), SkBits2Float(0x1
d2a2928), SkBits2Float(0x63962be6)); // -8.10388e-33f, 0.00148185f, 2.25206e-21
f, 5.54035e+21f | 6064 path.quadTo(SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3), SkBits2Float(0x1
d2a2928), SkBits2Float(0x63962be6)); // -8.10388e-33f, 0.00148185f, 2.25206e-21
f, 5.54035e+21f |
5902 path.moveTo(SkBits2Float(0x29272a81), SkBits2Float(0x2ab03a55)); // 3.71183e-14
f, 3.13044e-13f | 6065 path.moveTo(SkBits2Float(0x29272a81), SkBits2Float(0x2ab03a55)); // 3.71183e-14
f, 3.13044e-13f |
5903 path.quadTo(SkBits2Float(0x2720213b), SkBits2Float(0x3a214729), SkBits2Float(0xd
f28282a), SkBits2Float(0x8a2f2121)); // 2.22225e-15f, 0.000615227f, -1.2117e+19
f, -8.43217e-33f | 6066 path.quadTo(SkBits2Float(0x2720213b), SkBits2Float(0x3a214729), SkBits2Float(0xd
f28282a), SkBits2Float(0x8a2f2121)); // 2.22225e-15f, 0.000615227f, -1.2117e+19
f, -8.43217e-33f |
5904 path.quadTo(SkBits2Float(0x373b3a27), SkBits2Float(0x201fc4c1), SkBits2Float(0x2
7576c2a), SkBits2Float(0x5921c25d)); // 1.11596e-05f, 1.35329e-19f, 2.98959e-15
f, 2.8457e+15f | 6067 path.quadTo(SkBits2Float(0x373b3a27), SkBits2Float(0x201fc4c1), SkBits2Float(0x2
7576c2a), SkBits2Float(0x5921c25d)); // 1.11596e-05f, 1.35329e-19f, 2.98959e-15
f, 2.8457e+15f |
5905 path.quadTo(SkBits2Float(0x2720213b), SkBits2Float(0x3a214729), SkBits2Float(0xd
f28282a), SkBits2Float(0x3a8a3a21)); // 2.22225e-15f, 0.000615227f, -1.2117e+19
f, 0.00105459f | 6068 path.quadTo(SkBits2Float(0x2720213b), SkBits2Float(0x3a214729), SkBits2Float(0xd
f28282a), SkBits2Float(0x3a8a3a21)); // 2.22225e-15f, 0.000615227f, -1.2117e+19
f, 0.00105459f |
5906 path.cubicTo(SkBits2Float(0x373b3ac5), SkBits2Float(0x201fc422), SkBits2Float(0x
523a702a), SkBits2Float(0x27576c51), SkBits2Float(0x5921c25d), SkBits2Float(0x51
523a70)); // 1.11598e-05f, 1.35327e-19f, 2.00186e+11f, 2.9896e-15f, 2.8457e+15f
, 5.64327e+10f | 6069 path.cubicTo(SkBits2Float(0x373b3ac5), SkBits2Float(0x201fc422), SkBits2Float(0x
523a702a), SkBits2Float(0x27576c51), SkBits2Float(0x5921c25d), SkBits2Float(0x51
523a70)); // 1.11598e-05f, 1.35327e-19f, 2.00186e+11f, 2.9896e-15f, 2.8457e+15f
, 5.64327e+10f |
5907 path.quadTo(SkBits2Float(0xd912102a), SkBits2Float(0x284f9a28), SkBits2Float(0xb
38a1f30), SkBits2Float(0x3a3ac23a)); // -2.56957e+15f, 1.15242e-14f, -6.4318e-0
8f, 0.000712428f | 6070 path.quadTo(SkBits2Float(0xd912102a), SkBits2Float(0x284f9a28), SkBits2Float(0xb
38a1f30), SkBits2Float(0x3a3ac23a)); // -2.56957e+15f, 1.15242e-14f, -6.4318e-0
8f, 0.000712428f |
5908 path.lineTo(SkBits2Float(0xc809272a), SkBits2Float(0x29b02829)); // -140445, 7.
82294e-14f | 6071 path.lineTo(SkBits2Float(0xc809272a), SkBits2Float(0x29b02829)); // -140445, 7.
82294e-14f |
5909 | 6072 |
5910 SkPath path2(path); | 6073 SkPath path2(path); |
5911 testPathFailOp(reporter, path1, path2, (SkPathOp) 1, filename); | 6074 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename); |
5912 } | 6075 } |
5913 | 6076 |
5914 | 6077 |
5915 static void fuzz763_4(skiatest::Reporter* reporter, const char* filename) { | 6078 static void fuzz763_4(skiatest::Reporter* reporter, const char* filename) { |
5916 SkPath path; | 6079 SkPath path; |
5917 path.setFillType((SkPath::FillType) 1); | 6080 path.setFillType((SkPath::FillType) 1); |
5918 | 6081 |
5919 SkPath path1(path); | 6082 SkPath path1(path); |
5920 path.reset(); | 6083 path.reset(); |
5921 path.setFillType((SkPath::FillType) 0); | 6084 path.setFillType((SkPath::FillType) 0); |
(...skipping 13 matching lines...) Expand all Loading... |
5935 path.quadTo(SkBits2Float(0xdf28282a), SkBits2Float(0x3a8a3a21), SkBits2Float(0x8
a284f9a), SkBits2Float(0x3ac23ab3)); // -1.2117e+19f, 0.00105459f, -8.10388e-33
f, 0.00148185f | 6098 path.quadTo(SkBits2Float(0xdf28282a), SkBits2Float(0x3a8a3a21), SkBits2Float(0x8
a284f9a), SkBits2Float(0x3ac23ab3)); // -1.2117e+19f, 0.00105459f, -8.10388e-33
f, 0.00148185f |
5936 path.lineTo(SkBits2Float(0x2928088c), SkBits2Float(0x2be61d2a)); // 3.73109e-14
f, 1.63506e-12f | 6099 path.lineTo(SkBits2Float(0x2928088c), SkBits2Float(0x2be61d2a)); // 3.73109e-14
f, 1.63506e-12f |
5937 path.conicTo(SkBits2Float(0x2a812a63), SkBits2Float(0x2d292a27), SkBits2Float(0x
5568295b), SkBits2Float(0x5b2d2968), SkBits2Float(0x552d6829)); // 2.29444e-13f
, 9.6159e-12f, 1.5954e+13f, 4.87407e+16f, 1.19164e+13f | 6100 path.conicTo(SkBits2Float(0x2a812a63), SkBits2Float(0x2d292a27), SkBits2Float(0x
5568295b), SkBits2Float(0x5b2d2968), SkBits2Float(0x552d6829)); // 2.29444e-13f
, 9.6159e-12f, 1.5954e+13f, 4.87407e+16f, 1.19164e+13f |
5938 path.conicTo(SkBits2Float(0x395b2d5b), SkBits2Float(0x68552768), SkBits2Float(0x
555b2df0), SkBits2Float(0x1f722a8c), SkBits2Float(0x082a212a)); // 0.000209024f
, 4.02636e+24f, 1.50619e+13f, 5.12807e-20f, 5.11965e-34f | 6101 path.conicTo(SkBits2Float(0x395b2d5b), SkBits2Float(0x68552768), SkBits2Float(0x
555b2df0), SkBits2Float(0x1f722a8c), SkBits2Float(0x082a212a)); // 0.000209024f
, 4.02636e+24f, 1.50619e+13f, 5.12807e-20f, 5.11965e-34f |
5939 path.lineTo(SkBits2Float(0x55685b1f), SkBits2Float(0x5b2d2968)); // 1.59674e+13
f, 4.87407e+16f | 6102 path.lineTo(SkBits2Float(0x55685b1f), SkBits2Float(0x5b2d2968)); // 1.59674e+13
f, 4.87407e+16f |
5940 path.close(); | 6103 path.close(); |
5941 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f
, 4.61198e-19f | 6104 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f
, 4.61198e-19f |
5942 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2147ed7a), SkBits2Float(0x
28282a3a), SkBits2Float(0x21df212a), SkBits2Float(0x033a8a3a)); // 6.14991e+25f
, 6.77381e-19f, 9.33503e-15f, 1.51198e-18f, 5.48192e-37f | 6105 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2147ed7a), SkBits2Float(0x
28282a3a), SkBits2Float(0x21df212a), SkBits2Float(0x033a8a3a)); // 6.14991e+25f
, 6.77381e-19f, 9.33503e-15f, 1.51198e-18f, 5.48192e-37f |
5943 | 6106 |
5944 SkPath path2(path); | 6107 SkPath path2(path); |
5945 testPathFailSkipAssertOp(reporter, path1, path2, (SkPathOp) 1, filename); | 6108 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 1, filename); |
5946 } | 6109 } |
5947 | 6110 |
5948 static void fuzz763_3(skiatest::Reporter* reporter, const char* filename) { | 6111 static void fuzz763_3(skiatest::Reporter* reporter, const char* filename) { |
5949 SkPath path; | 6112 SkPath path; |
5950 path.setFillType((SkPath::FillType) 1); | 6113 path.setFillType((SkPath::FillType) 1); |
5951 | 6114 |
5952 SkPath path1(path); | 6115 SkPath path1(path); |
5953 path.reset(); | 6116 path.reset(); |
5954 path.setFillType((SkPath::FillType) 0); | 6117 path.setFillType((SkPath::FillType) 0); |
5955 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 | 6118 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
(...skipping 14 matching lines...) Expand all Loading... |
5970 path.moveTo(SkBits2Float(0x962be61d), SkBits2Float(0x432a2927)); // -1.38859e-2
5f, 170.161f | 6133 path.moveTo(SkBits2Float(0x962be61d), SkBits2Float(0x432a2927)); // -1.38859e-2
5f, 170.161f |
5971 path.conicTo(SkBits2Float(0x3a2a552a), SkBits2Float(0x3b1e2ab0), SkBits2Float(0x
29272021), SkBits2Float(0x3b3ac527), SkBits2Float(0x1fc42236)); // 0.000649768f
, 0.00241343f, 3.71093e-14f, 0.00284989f, 8.30658e-20f | 6134 path.conicTo(SkBits2Float(0x3a2a552a), SkBits2Float(0x3b1e2ab0), SkBits2Float(0x
29272021), SkBits2Float(0x3b3ac527), SkBits2Float(0x1fc42236)); // 0.000649768f
, 0.00241343f, 3.71093e-14f, 0.00284989f, 8.30658e-20f |
5972 path.cubicTo(SkBits2Float(0x27576c2a), SkBits2Float(0x5921c25d), SkBits2Float(0x
51503a70), SkBits2Float(0x12102a10), SkBits2Float(0x633a28d9), SkBits2Float(0x29
c80927)); // 2.98959e-15f, 2.8457e+15f, 5.58959e+10f, 4.54902e-28f, 3.43404e+21
f, 8.88337e-14f | 6135 path.cubicTo(SkBits2Float(0x27576c2a), SkBits2Float(0x5921c25d), SkBits2Float(0x
51503a70), SkBits2Float(0x12102a10), SkBits2Float(0x633a28d9), SkBits2Float(0x29
c80927)); // 2.98959e-15f, 2.8457e+15f, 5.58959e+10f, 4.54902e-28f, 3.43404e+21
f, 8.88337e-14f |
5973 path.lineTo(SkBits2Float(0x272927b0), SkBits2Float(0x5b392929)); // 2.3475e-15f
, 5.21181e+16f | 6136 path.lineTo(SkBits2Float(0x272927b0), SkBits2Float(0x5b392929)); // 2.3475e-15f
, 5.21181e+16f |
5974 path.moveTo(SkBits2Float(0x3a1127b4), SkBits2Float(0x2921ee3b)); // 0.000553723
f, 3.59558e-14f | 6137 path.moveTo(SkBits2Float(0x3a1127b4), SkBits2Float(0x2921ee3b)); // 0.000553723
f, 3.59558e-14f |
5975 path.cubicTo(SkBits2Float(0x5e215d3b), SkBits2Float(0x7828ee3a), SkBits2Float(0x
8e28b03b), SkBits2Float(0x50783be8), SkBits2Float(0x9e0b8a3a), SkBits2Float(0x55
5b2d68)); // 2.90688e+18f, 1.37053e+34f, -2.07925e-30f, 1.66587e+10f, -7.38718e
-21f, 1.50618e+13f | 6138 path.cubicTo(SkBits2Float(0x5e215d3b), SkBits2Float(0x7828ee3a), SkBits2Float(0x
8e28b03b), SkBits2Float(0x50783be8), SkBits2Float(0x9e0b8a3a), SkBits2Float(0x55
5b2d68)); // 2.90688e+18f, 1.37053e+34f, -2.07925e-30f, 1.66587e+10f, -7.38718e
-21f, 1.50618e+13f |
5976 path.moveTo(SkBits2Float(0x21081f3f), SkBits2Float(0x9fd4e62a)); // 4.61199e-19
f, -9.01663e-20f | 6139 path.moveTo(SkBits2Float(0x21081f3f), SkBits2Float(0x9fd4e62a)); // 4.61199e-19
f, -9.01663e-20f |
5977 path.cubicTo(SkBits2Float(0x3a293a2a), SkBits2Float(0x0e3bf0c5), SkBits2Float(0x
3b29d42a), SkBits2Float(0x0f217265), SkBits2Float(0x2d5d2921), SkBits2Float(0x55
68295b)); // 0.000645551f, 2.31655e-30f, 0.00259138f, 7.95994e-30f, 1.25715e-11
f, 1.5954e+13f | 6140 path.cubicTo(SkBits2Float(0x3a293a2a), SkBits2Float(0x0e3bf0c5), SkBits2Float(0x
3b29d42a), SkBits2Float(0x0f217265), SkBits2Float(0x2d5d2921), SkBits2Float(0x55
68295b)); // 0.000645551f, 2.31655e-30f, 0.00259138f, 7.95994e-30f, 1.25715e-11
f, 1.5954e+13f |
5978 | 6141 |
5979 SkPath path2(path); | 6142 SkPath path2(path); |
5980 testPathSkipAssertOp(reporter, path1, path2, (SkPathOp) 1, filename); | 6143 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 1, filename); |
5981 } | 6144 } |
5982 | 6145 |
5983 static void fuzz763_5(skiatest::Reporter* reporter, const char* filename) { | 6146 static void fuzz763_5(skiatest::Reporter* reporter, const char* filename) { |
5984 SkPath path; | 6147 SkPath path; |
5985 path.setFillType((SkPath::FillType) 1); | 6148 path.setFillType((SkPath::FillType) 1); |
5986 | 6149 |
5987 SkPath path1(path); | 6150 SkPath path1(path); |
5988 path.reset(); | 6151 path.reset(); |
5989 path.setFillType((SkPath::FillType) 0); | 6152 path.setFillType((SkPath::FillType) 0); |
5990 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f | 6153 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f |
5991 path.conicTo(SkBits2Float(0xc0032108), SkBits2Float(0x7a6a4b79), SkBits2Float(0x
212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x6a3a7bc0)); // -2.04889f, 3
.04132e+35f, 5.77848e-19f, 4.7323e-37f, 5.63611e+25f | 6154 path.conicTo(SkBits2Float(0xc0032108), SkBits2Float(0x7a6a4b79), SkBits2Float(0x
212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x6a3a7bc0)); // -2.04889f, 3
.04132e+35f, 5.77848e-19f, 4.7323e-37f, 5.63611e+25f |
5992 path.conicTo(SkBits2Float(0x3a2147ed), SkBits2Float(0xdf28282a), SkBits2Float(0x
3a8a3a21), SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3)); // 0.000615238f
, -1.2117e+19f, 0.00105459f, -8.10388e-33f, 0.00148185f | 6155 path.conicTo(SkBits2Float(0x3a2147ed), SkBits2Float(0xdf28282a), SkBits2Float(0x
3a8a3a21), SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3)); // 0.000615238f
, -1.2117e+19f, 0.00105459f, -8.10388e-33f, 0.00148185f |
5993 path.cubicTo(SkBits2Float(0xe62a2928), SkBits2Float(0x2a63962b), SkBits2Float(0x
68295b2d), SkBits2Float(0x2d296855), SkBits2Float(0x2a8c555b), SkBits2Float(0x00
1f2a21)); // -2.0089e+23f, 2.02138e-13f, 3.19905e+24f, 9.6297e-12f, 2.49282e-13
f, 2.86201e-39f | 6156 path.cubicTo(SkBits2Float(0xe62a2928), SkBits2Float(0x2a63962b), SkBits2Float(0x
68295b2d), SkBits2Float(0x2d296855), SkBits2Float(0x2a8c555b), SkBits2Float(0x00
1f2a21)); // -2.0089e+23f, 2.02138e-13f, 3.19905e+24f, 9.6297e-12f, 2.49282e-13
f, 2.86201e-39f |
5994 path.lineTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f | 6157 path.lineTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f |
5995 path.close(); | 6158 path.close(); |
5996 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f | 6159 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f |
5997 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2a8ced7a), SkBits2Float(0x
21081f21), SkBits2Float(0x3a7bc003), SkBits2Float(0x47ed7a6a)); // 6.14991e+25f
, 2.50338e-13f, 4.61198e-19f, 0.00096035f, 121589 | 6160 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2a8ced7a), SkBits2Float(0x
21081f21), SkBits2Float(0x3a7bc003), SkBits2Float(0x47ed7a6a)); // 6.14991e+25f
, 2.50338e-13f, 4.61198e-19f, 0.00096035f, 121589 |
5998 path.lineTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f | 6161 path.lineTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f |
5999 path.close(); | 6162 path.close(); |
6000 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f | 6163 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x2a2a8c55)); // 4.76191e+16
f, 1.51477e-13f |
6001 path.quadTo(SkBits2Float(0xdf28282a), SkBits2Float(0x3a8a3b21), SkBits2Float(0x2
8ee4f9a), SkBits2Float(0x68293b78)); // -1.2117e+19f, 0.00105462f, 2.64578e-14f
, 3.19671e+24f | 6164 path.quadTo(SkBits2Float(0xdf28282a), SkBits2Float(0x3a8a3b21), SkBits2Float(0x2
8ee4f9a), SkBits2Float(0x68293b78)); // -1.2117e+19f, 0.00105462f, 2.64578e-14f
, 3.19671e+24f |
6002 path.lineTo(SkBits2Float(0x5b2d2968), SkBits2Float(0x5b2d8c55)); // 4.87407e+16
f, 4.88495e+16f | 6165 path.lineTo(SkBits2Float(0x5b2d2968), SkBits2Float(0x5b2d8c55)); // 4.87407e+16
f, 4.88495e+16f |
6003 | 6166 |
6004 SkPath path2(path); | 6167 SkPath path2(path); |
6005 testPathSkipAssertOp(reporter, path1, path2, (SkPathOp) 4, filename); | 6168 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 4, filename); |
6006 } | 6169 } |
6007 | 6170 |
6008 static void fuzz763_2(skiatest::Reporter* reporter, const char* filename) { | 6171 static void fuzz763_2(skiatest::Reporter* reporter, const char* filename) { |
6009 SkPath path; | 6172 SkPath path; |
6010 path.setFillType((SkPath::FillType) 1); | 6173 path.setFillType((SkPath::FillType) 1); |
6011 | 6174 |
6012 SkPath path1(path); | 6175 SkPath path1(path); |
6013 path.reset(); | 6176 path.reset(); |
6014 path.setFillType((SkPath::FillType) 0); | 6177 path.setFillType((SkPath::FillType) 0); |
6015 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 | 6178 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
(...skipping 18 matching lines...) Expand all Loading... |
6034 path.close(); | 6197 path.close(); |
6035 path.moveTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f | 6198 path.moveTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f |
6036 path.quadTo(SkBits2Float(0x216a2770), SkBits2Float(0x2ab73b28), SkBits2Float(0x4
b28f427), SkBits2Float(0x283b5b28)); // 7.93345e-19f, 3.25484e-13f, 1.10726e+07
f, 1.04004e-14f | 6199 path.quadTo(SkBits2Float(0x216a2770), SkBits2Float(0x2ab73b28), SkBits2Float(0x4
b28f427), SkBits2Float(0x283b5b28)); // 7.93345e-19f, 3.25484e-13f, 1.10726e+07
f, 1.04004e-14f |
6037 path.lineTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f | 6200 path.lineTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f |
6038 path.close(); | 6201 path.close(); |
6039 path.moveTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f | 6202 path.moveTo(SkBits2Float(0x2a3a2147), SkBits2Float(0xdf212828)); // 1.65317e-13
f, -1.16126e+19f |
6040 path.conicTo(SkBits2Float(0xf86d273b), SkBits2Float(0x27e523e3), SkBits2Float(0x
2927e0f5), SkBits2Float(0x2ac0e729), SkBits2Float(0x6b492128)); // -1.92402e+34
f, 6.35992e-15f, 3.72766e-14f, 3.42665e-13f, 2.43151e+26f | 6203 path.conicTo(SkBits2Float(0xf86d273b), SkBits2Float(0x27e523e3), SkBits2Float(0x
2927e0f5), SkBits2Float(0x2ac0e729), SkBits2Float(0x6b492128)); // -1.92402e+34
f, 6.35992e-15f, 3.72766e-14f, 3.42665e-13f, 2.43151e+26f |
6041 path.cubicTo(SkBits2Float(0x2f273927), SkBits2Float(0xa83a2c21), SkBits2Float(0x
d7122121), SkBits2Float(0x21212921), SkBits2Float(0x3be3db3a), SkBits2Float(0xa9
deb63b)); // 1.52089e-10f, -1.03346e-14f, -1.60671e+14f, 5.46034e-19f, 0.006953
62f, -9.89039e-14f | 6204 path.cubicTo(SkBits2Float(0x2f273927), SkBits2Float(0xa83a2c21), SkBits2Float(0x
d7122121), SkBits2Float(0x21212921), SkBits2Float(0x3be3db3a), SkBits2Float(0xa9
deb63b)); // 1.52089e-10f, -1.03346e-14f, -1.60671e+14f, 5.46034e-19f, 0.006953
62f, -9.89039e-14f |
6042 | 6205 |
6043 SkPath path2(path); | 6206 SkPath path2(path); |
6044 testPathSkipAssertOp(reporter, path1, path2, (SkPathOp) 1, filename); | 6207 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 1, filename); |
| 6208 } |
| 6209 |
| 6210 // crbug.com/626164 |
| 6211 static void fuzz763_1c(skiatest::Reporter* reporter, const char* filename) { |
| 6212 SkPath path; |
| 6213 path.setFillType((SkPath::FillType) 0); |
| 6214 |
| 6215 SkPath path1(path); |
| 6216 path.reset(); |
| 6217 path.setFillType((SkPath::FillType) 0); |
| 6218 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6219 path.cubicTo(SkBits2Float(0x1931204a), SkBits2Float(0x2ba1a14a), SkBits2Floa
t(0x4a4a08ff), SkBits2Float(0x4a4a08ff), SkBits2Float(0x4a4a4a34), SkBits2Float(
0x4a4a4a4a)); // 9.15721e-24f, 1.14845e-12f, 3.31014e+06f, 3.31014e+06f, 3.3143
2e+06f, 3.31432e+06f |
| 6220 path.moveTo(SkBits2Float(0x000010a1), SkBits2Float(0x19312000)); // 5.96533
e-42f, 9.15715e-24f |
| 6221 path.cubicTo(SkBits2Float(0x4a4a4a4a), SkBits2Float(0x4a4a4a4a), SkBits2Floa
t(0xa14a4a4a), SkBits2Float(0x08ff2ba1), SkBits2Float(0x08ff4a4a), SkBits2Float(
0x4a344a4a)); // 3.31432e+06f, 3.31432e+06f, -6.85386e-19f, 1.53575e-33f, 1.536
47e-33f, 2.95387e+06f |
| 6222 path.cubicTo(SkBits2Float(0x4a4a4a4a), SkBits2Float(0x4a4a4a4a), SkBits2Floa
t(0x2ba1a14a), SkBits2Float(0x4e4a08ff), SkBits2Float(0x4a4a4a4a), SkBits2Float(
0xa1a181ff)); // 3.31432e+06f, 3.31432e+06f, 1.14845e-12f, 8.47397e+08f, 3.3143
2e+06f, -1.09442e-18f |
| 6223 |
| 6224 SkPath path2(path); |
| 6225 SkPath dummy; |
| 6226 testPathOp(reporter, path1, path2, (SkPathOp)4, filename); |
| 6227 } |
| 6228 |
| 6229 // crbug.com/626186 |
| 6230 static void fuzz763_1b(skiatest::Reporter* reporter, const char* filename) { |
| 6231 SkPath path; |
| 6232 path.setFillType((SkPath::FillType) 0); |
| 6233 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6234 path.cubicTo(SkBits2Float(0x0000ff07), SkBits2Float(0xf9f9ff00), SkBits2Floa
t(0xfe0ef9f4), SkBits2Float(0xd9b105fb), SkBits2Float(0x000000f9), SkBits2Float(
0xfe11f901)); // 9.14866e-41f, -1.62257e+35f, -4.75121e+37f, -6.22846e+15f, 3.4
8923e-43f, -4.85077e+37f |
| 6235 path.lineTo(SkBits2Float(0xda1905ed), SkBits2Float(0x3c05fbfb)); // -1.0768
e+16f, 0.00817775f |
| 6236 path.cubicTo(SkBits2Float(0x3c3c3c3c), SkBits2Float(0x3c3c3c3c), SkBits2Floa
t(0x253c7f00), SkBits2Float(0xfa00d3fa), SkBits2Float(0x250025fe), SkBits2Float(
0x00000006)); // 0.011489f, 0.011489f, 1.63494e-16f, -1.67228e+35f, 1.11151e-16
f, 8.40779e-45f |
| 6237 |
| 6238 SkPath path1(path); |
| 6239 path.reset(); |
| 6240 path.setFillType((SkPath::FillType) 0); |
| 6241 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6242 path.quadTo(SkBits2Float(0x3c3c3c3c), SkBits2Float(0xfa253c3c), SkBits2Float
(0xfefa00d3), SkBits2Float(0x25fad9df)); // 0.011489f, -2.14488e+35f, -1.66156e
+38f, 4.35157e-16f |
| 6243 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6244 path.close(); |
| 6245 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6246 path.lineTo(SkBits2Float(0x8dfefa00), SkBits2Float(0xf0f9fad9)); // -1.5714
1e-30f, -6.1892e+29f |
| 6247 path.cubicTo(SkBits2Float(0x20fe58f9), SkBits2Float(0x0525fbed), SkBits2Floa
t(0x1905ffff), SkBits2Float(0x01f9f9f9), SkBits2Float(0xfbfe0ef9), SkBits2Float(
0xfb212fff)); // 4.30882e-19f, 7.80453e-36f, 6.92764e-24f, 9.18268e-38f, -2.638
29e+36f, -8.36933e+35f |
| 6248 |
| 6249 SkPath path2(path); |
| 6250 testPathOp(reporter, path1, path2, (SkPathOp)2, filename); |
| 6251 } |
| 6252 |
| 6253 static void fuzz763_1a(skiatest::Reporter* reporter, const char* filename) { |
| 6254 SkPath path; |
| 6255 path.setFillType((SkPath::FillType) 0); |
| 6256 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6257 path.cubicTo(SkBits2Float(0x154be880), SkBits2Float(0x80000640), SkBits2Floa
t(0x5559a419), SkBits2Float(0x59d55928), SkBits2Float(0x80045959), SkBits2Float(
0x40154be8)); // 4.11789e-26f, -2.24208e-42f, 1.49562e+13f, 7.50652e+15f, -3.99
394e-40f, 2.33276f |
| 6258 |
| 6259 SkPath path1(path); |
| 6260 path.reset(); |
| 6261 path.setFillType((SkPath::FillType) 0); |
| 6262 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6263 path.quadTo(SkBits2Float(0x5559a419), SkBits2Float(0x59d55928), SkBits2Float
(0xbd595959), SkBits2Float(0x3f3f3f09)); // 1.49562e+13f, 7.50652e+15f, -0.0530
637f, 0.747056f |
| 6264 path.moveTo(SkBits2Float(0x3f3f3f3f), SkBits2Float(0x3f3f3f3f)); // 0.74705
9f, 0.747059f |
| 6265 path.moveTo(SkBits2Float(0x3f3f3f3f), SkBits2Float(0xff3f3f3f)); // 0.74705
9f, -2.54211e+38f |
| 6266 path.lineTo(SkBits2Float(0x09090909), SkBits2Float(0x3038d509)); // 1.6495e
-33f, 6.72416e-10f |
| 6267 path.conicTo(SkBits2Float(0x5947ffff), SkBits2Float(0x40e88004), SkBits2Floa
t(0x00002059), SkBits2Float(0x28555900), SkBits2Float(0x5959d559)); // 3.51844e
+15f, 7.26563f, 1.16042e-41f, 1.18432e-14f, 3.83217e+15f |
| 6268 path.lineTo(SkBits2Float(0x3f3f3f3f), SkBits2Float(0xff3f3f3f)); // 0.74705
9f, -2.54211e+38f |
| 6269 path.close(); |
| 6270 path.moveTo(SkBits2Float(0x3f3f3f3f), SkBits2Float(0xff3f3f3f)); // 0.74705
9f, -2.54211e+38f |
| 6271 path.lineTo(SkBits2Float(0x38d57f4b), SkBits2Float(0x59597f4b)); // 0.00010
1803f, 3.82625e+15f |
| 6272 path.lineTo(SkBits2Float(0x3f3f3f3f), SkBits2Float(0xff3f3f3f)); // 0.74705
9f, -2.54211e+38f |
| 6273 path.close(); |
| 6274 path.moveTo(SkBits2Float(0x384700ff), SkBits2Float(0x0108804b)); // 4.74462
e-05f, 2.50713e-38f |
| 6275 |
| 6276 SkPath path2(path); |
| 6277 testPathOp(reporter, path1, path2, (SkPathOp)0, filename); |
| 6278 } |
| 6279 |
| 6280 // crbug.com/627780 |
| 6281 static void fuzz763_3a(skiatest::Reporter* reporter, const char* filename) { |
| 6282 SkPath path; |
| 6283 path.setFillType((SkPath::FillType) 1); |
| 6284 |
| 6285 SkPath path1(path); |
| 6286 path.reset(); |
| 6287 path.setFillType((SkPath::FillType) 0); |
| 6288 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6289 path.lineTo(SkBits2Float(0x555b292d), SkBits2Float(0x2a212a8c)); // 1.50606e+13
f, 1.43144e-13f |
| 6290 path.conicTo(SkBits2Float(0xc0032108), SkBits2Float(0x7a6a4b7b), SkBits2Float(0x
212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x6a3a7bc0)); // -2.04889f, 3
.04132e+35f, 5.77848e-19f, 4.7323e-37f, 5.63611e+25f |
| 6291 path.conicTo(SkBits2Float(0x3a2147ed), SkBits2Float(0xdf28282a), SkBits2Float(0x
3a8a3a21), SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3)); // 0.000615238f
, -1.2117e+19f, 0.00105459f, -8.10388e-33f, 0.00148185f |
| 6292 path.cubicTo(SkBits2Float(0x1d2a2928), SkBits2Float(0x63962be6), SkBits2Float(0x
272a812a), SkBits2Float(0x295b2d29), SkBits2Float(0x2a685568), SkBits2Float(0x68
295b2d)); // 2.25206e-21f, 5.54035e+21f, 2.36623e-15f, 4.86669e-14f, 2.06354e-1
3f, 3.19905e+24f |
| 6293 path.conicTo(SkBits2Float(0x2a8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x
7bc00321), SkBits2Float(0x7a6a4b77), SkBits2Float(0x3a214726)); // 2.49282e-13f
, 4.78968e-34f, 1.99397e+36f, 3.04132e+35f, 0.000615226f |
| 6294 path.moveTo(SkBits2Float(0x8adf2028), SkBits2Float(0x3a219a3a)); // -2.14862e-3
2f, 0.000616464f |
| 6295 path.quadTo(SkBits2Float(0x3ab38e28), SkBits2Float(0x29283ac2), SkBits2Float(0x2
be61d2a), SkBits2Float(0x812a4396)); // 0.0013699f, 3.73545e-14f, 1.63506e-12f,
-3.12726e-38f |
| 6296 |
| 6297 SkPath path2(path); |
| 6298 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 1, filename); |
| 6299 } |
| 6300 |
| 6301 // crbug.com/627689 |
| 6302 static void fuzz763_5a(skiatest::Reporter* reporter, const char* filename) { |
| 6303 SkPath path; |
| 6304 path.setFillType((SkPath::FillType) 1); |
| 6305 path.moveTo(SkBits2Float(0x38bd8610), SkBits2Float(0x00000000)); // 9.03719e-05
f, 0 |
| 6306 path.conicTo(SkBits2Float(0x4183d871), SkBits2Float(0x41fea321), SkBits2Float(0x
b700ff00), SkBits2Float(0x4240b8b8), SkBits2Float(0x3b058283)); // 16.4807f, 31
.8297f, -7.68877e-06f, 48.1804f, 0.0020372f |
| 6307 path.lineTo(SkBits2Float(0x3a3a3ab8), SkBits2Float(0xb8b8b8b8)); // 0.000710409
f, -8.80821e-05f |
| 6308 path.conicTo(SkBits2Float(0x3a455ec8), SkBits2Float(0xb8b8b8b3), SkBits2Float(0x
38b2418d), SkBits2Float(0xb730d014), SkBits2Float(0x3f7ffff3)); // 0.000752908f
, -8.80821e-05f, 8.49991e-05f, -1.05389e-05f, 0.999999f |
| 6309 path.quadTo(SkBits2Float(0x3a51246a), SkBits2Float(0xb6da45a3), SkBits2Float(0x3
8bc5c3c), SkBits2Float(0x00000000)); // 0.000797814f, -6.50501e-06f, 8.98172e-0
5f, 0 |
| 6310 path.lineTo(SkBits2Float(0x3a3a3ab8), SkBits2Float(0xb8b8b8b8)); // 0.000710409
f, -8.80821e-05f |
| 6311 path.quadTo(SkBits2Float(0x39a32d2d), SkBits2Float(0x00000000), SkBits2Float(0xb
8a13a00), SkBits2Float(0x00000000)); // 0.000311234f, 0, -7.68788e-05f, 0 |
| 6312 path.lineTo(SkBits2Float(0x3a3a3ab8), SkBits2Float(0xb8b8b8b8)); // 0.000710409
f, -8.80821e-05f |
| 6313 path.quadTo(SkBits2Float(0x39ba814c), SkBits2Float(0xb838fed2), SkBits2Float(0x0
0000000), SkBits2Float(0x00000000)); // 0.00035573f, -4.41063e-05f, 0, 0 |
| 6314 path.lineTo(SkBits2Float(0x38bd8610), SkBits2Float(0x00000000)); // 9.03719e-05
f, 0 |
| 6315 path.close(); |
| 6316 |
| 6317 SkPath path1(path); |
| 6318 path.reset(); |
| 6319 path.setFillType((SkPath::FillType) 0); |
| 6320 |
| 6321 SkPath path2(path); |
| 6322 testPathOp(reporter, path1, path2, (SkPathOp) 4, filename); |
| 6323 } |
| 6324 |
| 6325 // crbug.com/627401 |
| 6326 static void fuzz763_2a(skiatest::Reporter* reporter, const char* filename) { |
| 6327 SkPath path; |
| 6328 path.setFillType((SkPath::FillType) 1); |
| 6329 |
| 6330 SkPath path1(path); |
| 6331 path.reset(); |
| 6332 path.setFillType((SkPath::FillType) 0); |
| 6333 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6334 path.quadTo(SkBits2Float(0x3e484500), SkBits2Float(0x164f3a30), SkBits2Float(0x4
9484801), SkBits2Float(0x7d0100c8)); // 0.195576f, 1.67397e-25f, 820352, 1.0717
2e+37f |
| 6335 path.conicTo(SkBits2Float(0xff7f36fd), SkBits2Float(0x3e647d01), SkBits2Float(0x
0c00f430), SkBits2Float(0x486b6448), SkBits2Float(0x00484848)); // -3.39239e+38
f, 0.223133f, 9.93424e-32f, 241041, 6.63809e-39f |
| 6336 path.lineTo(SkBits2Float(0x4f4f557d), SkBits2Float(0x48480112)); // 3.47849e+09
f, 204804 |
| 6337 path.lineTo(SkBits2Float(0xf40c01ff), SkBits2Float(0x45008000)); // -4.43702e+3
1f, 2056 |
| 6338 path.moveTo(SkBits2Float(0x4bfffa00), SkBits2Float(0x7d4ac859)); // 3.35514e+07
f, 1.68465e+37f |
| 6339 path.conicTo(SkBits2Float(0x7d014f3e), SkBits2Float(0x00f4ff01), SkBits2Float(0x
6b64480c), SkBits2Float(0x48484848), SkBits2Float(0x557d0100)); // 1.07426e+37f
, 2.24993e-38f, 2.75975e+26f, 205089, 1.73863e+13f |
| 6340 |
| 6341 SkPath path2(path); |
| 6342 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 0, filename); |
| 6343 } |
| 6344 |
| 6345 // crbug.com/627761 |
| 6346 static void fuzz763_2b(skiatest::Reporter* reporter, const char* filename) { |
| 6347 SkPath path; |
| 6348 path.setFillType((SkPath::FillType) 1); |
| 6349 |
| 6350 SkPath path1(path); |
| 6351 path.reset(); |
| 6352 path.setFillType((SkPath::FillType) 0); |
| 6353 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x212a8c55)); // 4.76191e+16
f, 5.7784e-19f |
| 6354 path.moveTo(SkBits2Float(0x3b21081f), SkBits2Float(0x4b7bc003)); // 0.00245715f
, 1.64987e+07f |
| 6355 path.lineTo(SkBits2Float(0x2a8ced7a), SkBits2Float(0x21081f21)); // 2.50338e-13
f, 4.61198e-19f |
| 6356 path.conicTo(SkBits2Float(0x6a3a7bc0), SkBits2Float(0x4721ed7a), SkBits2Float(0x
282a3a21), SkBits2Float(0x3a21df28), SkBits2Float(0x4f9a3a8a)); // 5.63611e+25f
, 41453.5f, 9.4495e-15f, 0.000617492f, 5.17506e+09f |
| 6357 path.lineTo(SkBits2Float(0x3b21081f), SkBits2Float(0x4b7bc003)); // 0.00245715f
, 1.64987e+07f |
| 6358 path.close(); |
| 6359 path.moveTo(SkBits2Float(0x3b21081f), SkBits2Float(0x4b7bc003)); // 0.00245715f
, 1.64987e+07f |
| 6360 path.cubicTo(SkBits2Float(0x273ac23a), SkBits2Float(0x1d2a2928), SkBits2Float(0x
63962be6), SkBits2Float(0x272a812a), SkBits2Float(0x295b2d29), SkBits2Float(0x29
685568)); // 2.5918e-15f, 2.25206e-21f, 5.54035e+21f, 2.36623e-15f, 4.86669e-14
f, 5.15884e-14f |
| 6361 path.lineTo(SkBits2Float(0x081f2a21), SkBits2Float(0x7bc00321)); // 4.78968e-34
f, 1.99397e+36f |
| 6362 path.lineTo(SkBits2Float(0x282a3a21), SkBits2Float(0x3a21df28)); // 9.4495e-15f
, 0.000617492f |
| 6363 path.lineTo(SkBits2Float(0x3b21081f), SkBits2Float(0x4b7bc003)); // 0.00245715f
, 1.64987e+07f |
| 6364 path.close(); |
| 6365 path.moveTo(SkBits2Float(0x3b21081f), SkBits2Float(0x4b7bc003)); // 0.00245715f
, 1.64987e+07f |
| 6366 path.quadTo(SkBits2Float(0x8a4fc29a), SkBits2Float(0x3ab3283a), SkBits2Float(0x1
d2a2928), SkBits2Float(0x43962be6)); // -1.00033e-32f, 0.00136686f, 2.25206e-21
f, 300.343f |
| 6367 path.moveTo(SkBits2Float(0x5b2d2a81), SkBits2Float(0x29276829)); // 4.87419e+16
f, 3.71718e-14f |
| 6368 path.conicTo(SkBits2Float(0x1e2ab03a), SkBits2Float(0x2920213b), SkBits2Float(0x
3b3ac527), SkBits2Float(0xc422333b), SkBits2Float(0x6c2a9f1f)); // 9.03617e-21f
, 3.5556e-14f, 0.00284989f, -648.8f, 8.25075e+26f |
| 6369 path.quadTo(SkBits2Float(0xc25d2757), SkBits2Float(0x3a705921), SkBits2Float(0x2
a105152), SkBits2Float(0x28d91210)); // -55.2884f, 0.000916855f, 1.2818e-13f, 2
.40997e-14f |
| 6370 path.quadTo(SkBits2Float(0x68295b2d), SkBits2Float(0x2d296855), SkBits2Float(0x2
a8c555b), SkBits2Float(0x081f2a21)); // 3.19905e+24f, 9.6297e-12f, 2.49282e-13f
, 4.78968e-34f |
| 6371 path.lineTo(SkBits2Float(0x5b2d2a81), SkBits2Float(0x29276829)); // 4.87419e+16
f, 3.71718e-14f |
| 6372 path.close(); |
| 6373 path.moveTo(SkBits2Float(0x5b2d2a81), SkBits2Float(0x29276829)); // 4.87419e+16
f, 3.71718e-14f |
| 6374 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2a8ced7a), SkBits2Float(0x
21081f21), SkBits2Float(0xcb7bc003), SkBits2Float(0x47ed7a6a)); // 6.14991e+25f
, 2.50338e-13f, 4.61198e-19f, -1.64987e+07f, 121589 |
| 6375 path.lineTo(SkBits2Float(0x5b2d2a81), SkBits2Float(0x29276829)); // 4.87419e+16
f, 3.71718e-14f |
| 6376 path.close(); |
| 6377 path.moveTo(SkBits2Float(0x5b2d2a81), SkBits2Float(0x29276829)); // 4.87419e+16
f, 3.71718e-14f |
| 6378 path.quadTo(SkBits2Float(0xdf28282a), SkBits2Float(0x2d8a3a21), SkBits2Float(0x5
b682b68), SkBits2Float(0x5b292d55)); // -1.2117e+19f, 1.57146e-11f, 6.53499e+16
f, 4.76191e+16f |
| 6379 path.lineTo(SkBits2Float(0x2a212a8c), SkBits2Float(0x0321081f)); // 1.43144e-13
f, 4.7323e-37f |
| 6380 path.conicTo(SkBits2Float(0x7a6a4b7b), SkBits2Float(0x212a8ced), SkBits2Float(0x
0321081f), SkBits2Float(0x6a3a7bc0), SkBits2Float(0x3a21477a)); // 3.04132e+35f
, 5.77848e-19f, 4.7323e-37f, 5.63611e+25f, 0.000615231f |
| 6381 path.moveTo(SkBits2Float(0x21df2828), SkBits2Float(0x9a3a8a3a)); // 1.51217e-18
f, -3.85756e-23f |
| 6382 path.quadTo(SkBits2Float(0x3ab38a28), SkBits2Float(0x28273ac2), SkBits2Float(0xe
61d2a29), SkBits2Float(0x2a63962b)); // 0.00136978f, 9.2831e-15f, -1.85547e+23f
, 2.02138e-13f |
| 6383 path.conicTo(SkBits2Float(0x2d29272a), SkBits2Float(0x5568295b), SkBits2Float(0x
5b2d2968), SkBits2Float(0x5b2d6829), SkBits2Float(0x212a8c55)); // 9.61523e-12f
, 1.5954e+13f, 4.87407e+16f, 4.88097e+16f, 5.7784e-19f |
| 6384 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6385 path.conicTo(SkBits2Float(0x3a2147ed), SkBits2Float(0xdf28282a), SkBits2Float(0x
3a8a3a21), SkBits2Float(0x8a284f9a), SkBits2Float(0x3ac23ab3)); // 0.000615238f
, -1.2117e+19f, 0.00105459f, -8.10388e-33f, 0.00148185f |
| 6386 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f
, 6.14991e+25f |
| 6387 path.close(); |
| 6388 |
| 6389 SkPath path2(path); |
| 6390 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 4, filename); |
| 6391 } |
| 6392 |
| 6393 static void fuzz763_2c(skiatest::Reporter* reporter, const char* filename) { |
| 6394 SkPath path; |
| 6395 path.setFillType((SkPath::FillType) 1); |
| 6396 |
| 6397 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x36344a4a)); // 0, 2.68653e
-06f |
| 6398 path.cubicTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000), SkBits2Float(0x
364a4a4a), SkBits2Float(0x364a4a4a), SkBits2Float(0x00000000), SkBits2Float(0x00
000000)); // 0, 0, 3.01436e-06f, 3.01436e-06f, 0, 0 |
| 6399 path.lineTo(SkBits2Float(0x364a4a4a), SkBits2Float(0x00000000)); // 3.01436e-06
f, 0 |
| 6400 path.cubicTo(SkBits2Float(0x364a30f0), SkBits2Float(0x344ac7fb), SkBits2Float(0x
3656d432), SkBits2Float(0x34cabb48), SkBits2Float(0x367031a9), SkBits2Float(0x35
1802f1)); // 3.01288e-06f, 1.88855e-07f, 3.2012e-06f, 3.77617e-07f, 3.57917e-06
f, 5.66287e-07f |
| 6401 path.cubicTo(SkBits2Float(0x36a7b150), SkBits2Float(0x35ab09db), SkBits2Float(0x
371874ed), SkBits2Float(0x3604f2c7), SkBits2Float(0x3784e0c7), SkBits2Float(0x36
344a51)); // 4.99763e-06f, 1.27434e-06f, 9.08713e-06f, 1.98108e-06f, 1.58403e-0
5f, 2.68653e-06f |
| 6402 path.cubicTo(SkBits2Float(0x3743dc9a), SkBits2Float(0x36344a4f), SkBits2Float(0x
36fbef33), SkBits2Float(0x36344a4e), SkBits2Float(0x36604a35), SkBits2Float(0x36
344a4c)); // 1.16743e-05f, 2.68653e-06f, 7.50823e-06f, 2.68653e-06f, 3.34218e-0
6f, 2.68653e-06f |
| 6403 path.cubicTo(SkBits2Float(0x36531715), SkBits2Float(0x36344a4c), SkBits2Float(0x
3645e3f5), SkBits2Float(0x36344a4b), SkBits2Float(0x3638b0d4), SkBits2Float(0x36
344a4b)); // 3.14549e-06f, 2.68653e-06f, 2.9488e-06f, 2.68653e-06f, 2.75211e-06
f, 2.68653e-06f |
| 6404 path.cubicTo(SkBits2Float(0x35f64120), SkBits2Float(0x36344a4b), SkBits2Float(0x
35764124), SkBits2Float(0x36344a4a), SkBits2Float(0x00000000), SkBits2Float(0x36
344a4a)); // 1.83474e-06f, 2.68653e-06f, 9.17369e-07f, 2.68653e-06f, 0, 2.68653
e-06f |
| 6405 path.close(); |
| 6406 SkPath path1(path); |
| 6407 path.reset(); |
| 6408 path.setFillType((SkPath::FillType) 0); |
| 6409 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0 |
| 6410 path.cubicTo(SkBits2Float(0x1931204a), SkBits2Float(0x2ba1a14a), SkBits2Float(0x
4a4a08ff), SkBits2Float(0x4a4a08ff), SkBits2Float(0x4a4a4a34), SkBits2Float(0x4a
4a4a4a)); // 9.15721e-24f, 1.14845e-12f, 3.31014e+06f, 3.31014e+06f, 3.31432e+0
6f, 3.31432e+06f |
| 6411 path.moveTo(SkBits2Float(0x000010a1), SkBits2Float(0x19312000)); // 5.96533e-42
f, 9.15715e-24f |
| 6412 path.cubicTo(SkBits2Float(0x4a4a4a4a), SkBits2Float(0x4a4a4a4a), SkBits2Float(0x
a14a4a4a), SkBits2Float(0x08ff2ba1), SkBits2Float(0x08ff4a4a), SkBits2Float(0x4a
344a4a)); // 3.31432e+06f, 3.31432e+06f, -6.85386e-19f, 1.53575e-33f, 1.53647e-
33f, 2.95387e+06f |
| 6413 path.cubicTo(SkBits2Float(0x544a4a4a), SkBits2Float(0x4a4a4a4a), SkBits2Float(0x
2ba1a14a), SkBits2Float(0x4e4a08ff), SkBits2Float(0x4a4a4a4a), SkBits2Float(0xa1
a181ff)); // 3.47532e+12f, 3.31432e+06f, 1.14845e-12f, 8.47397e+08f, 3.31432e+0
6f, -1.09442e-18f |
| 6414 SkPath path2(path); |
| 6415 testPathOpCheck(reporter, path1, path2, kReverseDifference_SkPathOp, filenam
e, true); |
6045 } | 6416 } |
6046 | 6417 |
6047 static struct TestDesc failTests[] = { | 6418 static struct TestDesc failTests[] = { |
| 6419 TEST(fuzz763_2c), |
| 6420 TEST(fuzz763_2b), |
| 6421 TEST(fuzz763_2a), |
| 6422 TEST(fuzz763_5a), |
| 6423 TEST(fuzz763_3a), |
| 6424 TEST(fuzz763_1a), |
| 6425 TEST(fuzz763_1b), |
| 6426 TEST(fuzz763_1c), |
6048 TEST(fuzz763_2), | 6427 TEST(fuzz763_2), |
6049 TEST(fuzz763_5), | 6428 TEST(fuzz763_5), |
6050 TEST(fuzz763_3), | 6429 TEST(fuzz763_3), |
6051 TEST(fuzz763_4), | 6430 TEST(fuzz763_4), |
6052 TEST(fuzz763_9), | 6431 TEST(fuzz763_9), |
6053 TEST(fuzz1450_1), | 6432 TEST(fuzz1450_1), |
6054 TEST(fuzz1450_0), | 6433 TEST(fuzz1450_0), |
6055 TEST(bug597926_0), | 6434 TEST(bug597926_0), |
6056 TEST(fuzz535151), | 6435 TEST(fuzz535151), |
6057 TEST(fuzz753_91), | 6436 TEST(fuzz753_91), |
6058 TEST(fuzz714), | 6437 TEST(fuzz714), |
6059 TEST(fuzz487a), | 6438 TEST(fuzz487a), |
6060 TEST(fuzz433), | 6439 TEST(fuzz433), |
6061 TEST(fuzz1), | 6440 TEST(fuzz1), |
6062 TEST(fuzz487b), | 6441 TEST(fuzz487b), |
6063 TEST(fuzz433b), | 6442 TEST(fuzz433b), |
6064 TEST(bufferOverflow), | 6443 TEST(bufferOverflow), |
6065 }; | 6444 }; |
6066 | 6445 |
6067 static const size_t failTestCount = SK_ARRAY_COUNT(failTests); | 6446 static const size_t failTestCount = SK_ARRAY_COUNT(failTests); |
6068 | 6447 |
6069 DEF_TEST(PathOpsFailOp, reporter) { | 6448 DEF_TEST(PathOpsFailOp, reporter) { |
6070 #if DEBUG_SHOW_TEST_NAME | 6449 #if DEBUG_SHOW_TEST_NAME |
6071 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 6450 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); |
6072 #endif | 6451 #endif |
6073 RunTestSet(reporter, failTests, failTestCount, nullptr, nullptr, nullptr, fa
lse); | 6452 RunTestSet(reporter, failTests, failTestCount, nullptr, nullptr, nullptr, fa
lse); |
6074 } | 6453 } |
| 6454 |
| 6455 static struct TestDesc repTests[] = { |
| 6456 TEST(loops44i), |
| 6457 TEST(loops45i), |
| 6458 TEST(loops46i), |
| 6459 }; |
| 6460 |
| 6461 DEF_TEST(PathOpsRepOp, reporter) { |
| 6462 for (int index = 0; index < 2; ++index) |
| 6463 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n
ullptr, false); |
| 6464 } |
OLD | NEW |