Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: tests/PathOpsFuzz763Test.cpp

Issue 1037573004: cumulative pathops patch (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix pathopsinverse gm Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/PathOpsExtendedTest.cpp ('k') | tests/PathOpsInverseTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 #define TEST(name) { name, #name } 10 #define TEST(name) { name, #name }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 path.quadTo(SkBits2Float(0xc05413cd), SkBits2Float(0x41c80000), SkBits2Float(0x0 0000000), SkBits2Float(0x41c80000)); 114 path.quadTo(SkBits2Float(0xc05413cd), SkBits2Float(0x41c80000), SkBits2Float(0x0 0000000), SkBits2Float(0x41c80000));
115 path.quadTo(SkBits2Float(0x405413cd), SkBits2Float(0x41c80000), SkBits2Float(0x4 0b504f3), SkBits2Float(0x41dabec3)); 115 path.quadTo(SkBits2Float(0x405413cd), SkBits2Float(0x41c80000), SkBits2Float(0x4 0b504f3), SkBits2Float(0x41dabec3));
116 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1000000), SkBits2Float(0x42040000)); 116 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1000000), SkBits2Float(0x42040000));
117 path.close(); 117 path.close();
118 118
119 SkPath path2(path); 119 SkPath path2(path);
120 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 120 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
121 } 121 }
122 122
123 static void fuzz763_378(skiatest::Reporter* reporter, const char* filename) { 123 static void fuzz763_378(skiatest::Reporter* reporter, const char* filename) {
124 #ifdef SK_BUILD_FOR_ANDROID
125 if (!FLAGS_runFail) {
126 return; // fails on nexus 9 in release, possibly related to fus ed multiply-add
127 }
128 #endif
129 SkPath path; 124 SkPath path;
130 path.setFillType((SkPath::FillType) 1); 125 path.setFillType((SkPath::FillType) 1);
131 path.moveTo(SkBits2Float(0x41013776), SkBits2Float(0xc25007a8)); 126 path.moveTo(SkBits2Float(0x41013776), SkBits2Float(0xc25007a8));
132 path.quadTo(SkBits2Float(0x412f219e), SkBits2Float(0xc256a86f), SkBits2Float(0x4 1625842), SkBits2Float(0xc2533a60)); 127 path.quadTo(SkBits2Float(0x412f219e), SkBits2Float(0xc256a86f), SkBits2Float(0x4 1625842), SkBits2Float(0xc2533a60));
133 path.quadTo(SkBits2Float(0x418ac776), SkBits2Float(0xc24fcc52), SkBits2Float(0x4 1980904), SkBits2Float(0xc24451c8)); 128 path.quadTo(SkBits2Float(0x418ac776), SkBits2Float(0xc24fcc52), SkBits2Float(0x4 1980904), SkBits2Float(0xc24451c8));
134 path.quadTo(SkBits2Float(0x41a54a92), SkBits2Float(0xc238d73e), SkBits2Float(0x4 19e6e72), SkBits2Float(0xc22c0994)); 129 path.quadTo(SkBits2Float(0x41a54a92), SkBits2Float(0xc238d73e), SkBits2Float(0x4 19e6e72), SkBits2Float(0xc22c0994));
135 path.quadTo(SkBits2Float(0x41979256), SkBits2Float(0xc21f3bea), SkBits2Float(0x4 1809d42), SkBits2Float(0xc2189b23)); 130 path.quadTo(SkBits2Float(0x41979256), SkBits2Float(0xc21f3bea), SkBits2Float(0x4 1809d42), SkBits2Float(0xc2189b23));
136 path.quadTo(SkBits2Float(0x4153505c), SkBits2Float(0xc211fa5c), SkBits2Float(0x4 12019b5), SkBits2Float(0xc215686b)); 131 path.quadTo(SkBits2Float(0x4153505c), SkBits2Float(0xc211fa5c), SkBits2Float(0x4 12019b5), SkBits2Float(0xc215686b));
137 path.quadTo(SkBits2Float(0x40d9c61e), SkBits2Float(0xc218d67a), SkBits2Float(0x4 0a4bfe8), SkBits2Float(0xc2245104)); 132 path.quadTo(SkBits2Float(0x40d9c61e), SkBits2Float(0xc218d67a), SkBits2Float(0x4 0a4bfe8), SkBits2Float(0xc2245104));
138 path.quadTo(SkBits2Float(0x405f7360), SkBits2Float(0xc22fcb8e), SkBits2Float(0x4 08b2a24), SkBits2Float(0xc23c9937)); 133 path.quadTo(SkBits2Float(0x405f7360), SkBits2Float(0xc22fcb8e), SkBits2Float(0x4 08b2a24), SkBits2Float(0xc23c9937));
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 path.quadTo(SkBits2Float(0xc218d5ba), SkBits2Float(0x40d9e7cc), SkBits2Float(0xc 2156751), SkBits2Float(0x41202a2d)); 207 path.quadTo(SkBits2Float(0xc218d5ba), SkBits2Float(0x40d9e7cc), SkBits2Float(0xc 2156751), SkBits2Float(0x41202a2d));
213 path.quadTo(SkBits2Float(0xc211f8e8), SkBits2Float(0x41536071), SkBits2Float(0xc 218995e), SkBits2Float(0x4180a5aa)); 208 path.quadTo(SkBits2Float(0xc211f8e8), SkBits2Float(0x41536071), SkBits2Float(0xc 218995e), SkBits2Float(0x4180a5aa));
214 path.quadTo(SkBits2Float(0xc21f39d4), SkBits2Float(0x41979b1c), SkBits2Float(0xc 22c0765), SkBits2Float(0x419e77ee)); 209 path.quadTo(SkBits2Float(0xc21f39d4), SkBits2Float(0x41979b1c), SkBits2Float(0xc 22c0765), SkBits2Float(0x419e77ee));
215 path.quadTo(SkBits2Float(0xc238d4f6), SkBits2Float(0x41a554c0), SkBits2Float(0xc 2444fb0), SkBits2Float(0x419813d4)); 210 path.quadTo(SkBits2Float(0xc238d4f6), SkBits2Float(0x41a554c0), SkBits2Float(0xc 2444fb0), SkBits2Float(0x419813d4));
216 path.close(); 211 path.close();
217 SkPath path2(path); 212 SkPath path2(path);
218 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 213 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l);
219 } 214 }
220 215
221 static void fuzz763_378b(skiatest::Reporter* reporter, const char* filename) { 216 static void fuzz763_378b(skiatest::Reporter* reporter, const char* filename) {
222 #ifdef SK_BUILD_FOR_ANDROID
223 if (!FLAGS_runFail) {
224 return; // fails on nexus 9 in release, possibly related to fus ed multiply-add
225 }
226 #endif
227 SkPath path; 217 SkPath path;
228 path.setFillType((SkPath::FillType) 1); 218 path.setFillType((SkPath::FillType) 1);
229 path.moveTo(-47.1494f, 4.35143f); 219 path.moveTo(-47.1494f, 4.35143f);
230 path.quadTo(-39.8075f, 18.9486f, -43.0083f, 19.8062f); 220 path.quadTo(-39.8075f, 18.9486f, -43.0083f, 19.8062f);
231 path.quadTo(-50.35f, 5.21042f, -52.0068f, 8.08022f); 221 path.quadTo(-50.35f, 5.21042f, -52.0068f, 8.08022f);
232 path.quadTo(-53.6632f, 10.9494f, -52.8062f, 14.1494f); 222 path.quadTo(-53.6632f, 10.9494f, -52.8062f, 14.1494f);
233 path.quadTo(-53.6639f, 10.9486f, -52.007f, 8.07884f); 223 path.quadTo(-53.6639f, 10.9486f, -52.007f, 8.07884f);
234 path.quadTo(-50.3502f, 5.20908f, -47.1494f, 4.35143f); 224 path.quadTo(-50.3502f, 5.20908f, -47.1494f, 4.35143f);
235 path.close(); 225 path.close();
236 SkPath path1(path); 226 SkPath path1(path);
237 path.reset(); 227 path.reset();
238 path.setFillType((SkPath::FillType) 0); 228 path.setFillType((SkPath::FillType) 0);
239 path.moveTo(SkBits2Float(0xc2444fb0), SkBits2Float(0x419813d4)); 229 path.moveTo(SkBits2Float(0xc2444fb0), SkBits2Float(0x419813d4));
240 path.quadTo(SkBits2Float(0xc24fca68), SkBits2Float(0x418ad2e8), SkBits2Float(0xc 25338d1), SkBits2Float(0x41626f8c)); 230 path.quadTo(SkBits2Float(0xc24fca68), SkBits2Float(0x418ad2e8), SkBits2Float(0xc 25338d1), SkBits2Float(0x41626f8c));
241 path.quadTo(SkBits2Float(0xc256a73a), SkBits2Float(0x412f3944), SkBits2Float(0xc 25006c4), SkBits2Float(0x41014e62)); 231 path.quadTo(SkBits2Float(0xc256a73a), SkBits2Float(0x412f3944), SkBits2Float(0xc 25006c4), SkBits2Float(0x41014e62));
242 path.quadTo(SkBits2Float(0xc21f39d4), SkBits2Float(0x41979b1c), SkBits2Float(0xc 22c0765), SkBits2Float(0x419e77ee)); 232 path.quadTo(SkBits2Float(0xc21f39d4), SkBits2Float(0x41979b1c), SkBits2Float(0xc 22c0765), SkBits2Float(0x419e77ee));
243 path.quadTo(SkBits2Float(0xc238d4f6), SkBits2Float(0x41a554c0), SkBits2Float(0xc 2444fb0), SkBits2Float(0x419813d4)); 233 path.quadTo(SkBits2Float(0xc238d4f6), SkBits2Float(0x41a554c0), SkBits2Float(0xc 2444fb0), SkBits2Float(0x419813d4));
244 path.close(); 234 path.close();
245 SkPath path2(path); 235 SkPath path2(path);
246 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 236 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
247 } 237 }
248 238
249 static void fuzz763_378c(skiatest::Reporter* reporter, const char* filename) { 239 static void fuzz763_378c(skiatest::Reporter* reporter, const char* filename) {
250 SkPath path; 240 SkPath path;
251 path.setFillType((SkPath::FillType) 1); 241 path.setFillType((SkPath::FillType) 1);
252 path.moveTo(-47.1494f, 4.35143f); 242 path.moveTo(-47.1494f, 4.35143f);
253 path.quadTo(-46.208f, 20.6664f, -43.0072f, 19.8086f); 243 path.quadTo(-46.208f, 20.6664f, -43.0072f, 19.8086f);
254 path.quadTo(-39.8065f, 18.9507f, -38.1498f, 16.0809f); 244 path.quadTo(-39.8065f, 18.9507f, -38.1498f, 16.0809f);
255 path.quadTo(-36.4931f, 13.211f, -37.3509f, 10.0103f); 245 path.quadTo(-36.4931f, 13.211f, -37.3509f, 10.0103f);
256 path.quadTo(-37.351f, 10.0098f, -37.3512f, 10.0093f); 246 path.quadTo(-37.351f, 10.0098f, -37.3512f, 10.0093f);
257 path.close(); 247 path.close();
258 SkPath path1(path); 248 SkPath path1(path);
259 path.reset(); 249 path.reset();
260 path.setFillType((SkPath::FillType) 0); 250 path.setFillType((SkPath::FillType) 0);
261 path.moveTo(-49.0778f, 19.0097f); 251 path.moveTo(-49.0778f, 19.0097f);
262 path.quadTo(-38.2087f, 6.80955f, -37.3509f, 10.0103f); 252 path.quadTo(-38.2087f, 6.80955f, -37.3509f, 10.0103f);
263 path.quadTo(-36.4931f, 13.211f, -38.1498f, 16.0809f); 253 path.quadTo(-36.4931f, 13.211f, -38.1498f, 16.0809f);
264 path.quadTo(-39.8065f, 18.9507f, -43.0072f, 19.8086f); 254 path.quadTo(-39.8065f, 18.9507f, -43.0072f, 19.8086f);
265 path.close(); 255 path.close();
266 SkPath path2(path); 256 SkPath path2(path);
267 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 257 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l);
268 } 258 }
269 259
270 static void fuzz763_378d(skiatest::Reporter* reporter, const char* filename) { 260 static void fuzz763_378d(skiatest::Reporter* reporter, const char* filename) {
271 SkPath path; 261 SkPath path;
272 path.setFillType((SkPath::FillType) 1); 262 path.setFillType((SkPath::FillType) 1);
273 path.moveTo(-47.1494f, 4.35143f); 263 path.moveTo(-47.1494f, 4.35143f);
274 path.quadTo(-38.2091f, 6.80749f, -37.3514f, 10.0083f); // required 264 path.quadTo(-38.2091f, 6.80749f, -37.3514f, 10.0083f); // required
275 path.quadTo(-36.4938f, 13.2091f, -38.1506f, 16.0788f); // required 265 path.quadTo(-36.4938f, 13.2091f, -38.1506f, 16.0788f); // required
276 path.close(); 266 path.close();
277 SkPath path1(path); 267 SkPath path1(path);
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 path.quadTo(SkBits2Float(0xc2564948), SkBits2Float(0x413644ce), SkBits2Float(0xc 24fc102), SkBits2Float(0x41082296)); 488 path.quadTo(SkBits2Float(0xc2564948), SkBits2Float(0x413644ce), SkBits2Float(0xc 24fc102), SkBits2Float(0x41082296));
499 path.quadTo(SkBits2Float(0xc24938bd), SkBits2Float(0x40b400bc), SkBits2Float(0xc 23c727f), SkBits2Float(0x4097b660)); 489 path.quadTo(SkBits2Float(0xc24938bd), SkBits2Float(0x40b400bc), SkBits2Float(0xc 23c727f), SkBits2Float(0x4097b660));
500 path.quadTo(SkBits2Float(0xc22fac40), SkBits2Float(0x4076d800), SkBits2Float(0xc 22423b2), SkBits2Float(0x40afae2c)); 490 path.quadTo(SkBits2Float(0xc22fac40), SkBits2Float(0x4076d800), SkBits2Float(0xc 22423b2), SkBits2Float(0x40afae2c));
501 path.quadTo(SkBits2Float(0xc2189b24), SkBits2Float(0x40e3f058), SkBits2Float(0xc 21511d9), SkBits2Float(0x41251125)); 491 path.quadTo(SkBits2Float(0xc2189b24), SkBits2Float(0x40e3f058), SkBits2Float(0xc 21511d9), SkBits2Float(0x41251125));
502 path.quadTo(SkBits2Float(0xc211888d), SkBits2Float(0x41582a1e), SkBits2Float(0xc 21810d2), SkBits2Float(0x4183262b)); 492 path.quadTo(SkBits2Float(0xc211888d), SkBits2Float(0x41582a1e), SkBits2Float(0xc 21810d2), SkBits2Float(0x4183262b));
503 path.quadTo(SkBits2Float(0xc21e9918), SkBits2Float(0x419a3747), SkBits2Float(0xc 22b5f56), SkBits2Float(0x41a149de)); 493 path.quadTo(SkBits2Float(0xc21e9918), SkBits2Float(0x419a3747), SkBits2Float(0xc 22b5f56), SkBits2Float(0x41a149de));
504 path.quadTo(SkBits2Float(0xc2382594), SkBits2Float(0x41a85c76), SkBits2Float(0xc 243ae22), SkBits2Float(0x419b4beb)); 494 path.quadTo(SkBits2Float(0xc2382594), SkBits2Float(0x41a85c76), SkBits2Float(0xc 243ae22), SkBits2Float(0x419b4beb));
505 path.close(); 495 path.close();
506 496
507 SkPath path2(path); 497 SkPath path2(path);
508 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 498 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l);
509 } 499 }
510 500
511 static void fuzz763_8712(skiatest::Reporter* reporter, const char* filename) { 501 static void fuzz763_8712(skiatest::Reporter* reporter, const char* filename) {
512 SkPath path; 502 SkPath path;
513 path.setFillType((SkPath::FillType) 1); 503 path.setFillType((SkPath::FillType) 1);
514 path.moveTo(SkBits2Float(0x40dce520), SkBits2Float(0xc250b45c)); 504 path.moveTo(SkBits2Float(0x40dce520), SkBits2Float(0xc250b45c));
515 path.quadTo(SkBits2Float(0x411bc0ec), SkBits2Float(0xc25796e0), SkBits2Float(0x4 14f4352), SkBits2Float(0xc25472d6)); 505 path.quadTo(SkBits2Float(0x411bc0ec), SkBits2Float(0xc25796e0), SkBits2Float(0x4 14f4352), SkBits2Float(0xc25472d6));
516 path.quadTo(SkBits2Float(0x418162dd), SkBits2Float(0xc2514ece), SkBits2Float(0x4 18f27e4), SkBits2Float(0xc245fb37)); 506 path.quadTo(SkBits2Float(0x418162dd), SkBits2Float(0xc2514ece), SkBits2Float(0x4 18f27e4), SkBits2Float(0xc245fb37));
517 path.quadTo(SkBits2Float(0x419cecea), SkBits2Float(0xc23aa7a0), SkBits2Float(0x4 196a4d8), SkBits2Float(0xc22dc706)); 507 path.quadTo(SkBits2Float(0x419cecea), SkBits2Float(0xc23aa7a0), SkBits2Float(0x4 196a4d8), SkBits2Float(0xc22dc706));
518 path.quadTo(SkBits2Float(0x41905cc8), SkBits2Float(0xc220e66c), SkBits2Float(0x4 1736b34), SkBits2Float(0xc21a03e9)); 508 path.quadTo(SkBits2Float(0x41905cc8), SkBits2Float(0xc220e66c), SkBits2Float(0x4 1736b34), SkBits2Float(0xc21a03e9));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 path.quadTo(SkBits2Float(0xc2559cca), SkBits2Float(0x4142831e), SkBits2Float(0xc 24f3eed), SkBits2Float(0x4114026c)); 578 path.quadTo(SkBits2Float(0xc2559cca), SkBits2Float(0x4142831e), SkBits2Float(0xc 24f3eed), SkBits2Float(0x4114026c));
589 path.quadTo(SkBits2Float(0xc248e111), SkBits2Float(0x40cb0370), SkBits2Float(0xc 23c281b), SkBits2Float(0x40ad4390)); 579 path.quadTo(SkBits2Float(0xc248e111), SkBits2Float(0x40cb0370), SkBits2Float(0xc 23c281b), SkBits2Float(0x40ad4390));
590 path.quadTo(SkBits2Float(0xc22f6f26), SkBits2Float(0x408f83a8), SkBits2Float(0xc 223cefa), SkBits2Float(0x40c2728a)); 580 path.quadTo(SkBits2Float(0xc22f6f26), SkBits2Float(0x408f83a8), SkBits2Float(0xc 223cefa), SkBits2Float(0x40c2728a));
591 path.quadTo(SkBits2Float(0xc2182ecc), SkBits2Float(0x40f5616e), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d)); 581 path.quadTo(SkBits2Float(0xc2182ecc), SkBits2Float(0x40f5616e), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d));
592 path.quadTo(SkBits2Float(0xc210bed3), SkBits2Float(0x41607862), SkBits2Float(0xc 2171cb0), SkBits2Float(0x41877c8b)); 582 path.quadTo(SkBits2Float(0xc210bed3), SkBits2Float(0x41607862), SkBits2Float(0xc 2171cb0), SkBits2Float(0x41877c8b));
593 path.quadTo(SkBits2Float(0xc21d7a8c), SkBits2Float(0x419ebce4), SkBits2Float(0xc 22a3381), SkBits2Float(0x41a62cde)); 583 path.quadTo(SkBits2Float(0xc21d7a8c), SkBits2Float(0x419ebce4), SkBits2Float(0xc 22a3381), SkBits2Float(0x41a62cde));
594 path.quadTo(SkBits2Float(0xc236ec77), SkBits2Float(0x41ad9cd6), SkBits2Float(0xc 2428ca4), SkBits2Float(0x41a0e11e)); 584 path.quadTo(SkBits2Float(0xc236ec77), SkBits2Float(0x41ad9cd6), SkBits2Float(0xc 2428ca4), SkBits2Float(0x41a0e11e));
595 path.close(); 585 path.close();
596 586
597 SkPath path2(path); 587 SkPath path2(path);
598 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 588 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
599 } 589 }
600 590
601 static void fuzz763_8712a(skiatest::Reporter* reporter, const char* filename) { 591 static void fuzz763_8712a(skiatest::Reporter* reporter, const char* filename) {
602 SkPath path; 592 SkPath path;
603 path.setFillType((SkPath::FillType) 1); 593 path.setFillType((SkPath::FillType) 1);
604 path.moveTo(SkBits2Float(0xc23c98fa), SkBits2Float(0x408b3eec)); 594 path.moveTo(SkBits2Float(0xc23c98fa), SkBits2Float(0x408b3eec));
605 path.quadTo(SkBits2Float(0xc22fcb5c), SkBits2Float(0x405f9a18), SkBits2Float(0xc 22450bb), SkBits2Float(0x40a4d200)); 595 path.quadTo(SkBits2Float(0xc22fcb5c), SkBits2Float(0x405f9a18), SkBits2Float(0xc 22450bb), SkBits2Float(0x40a4d200));
606 path.quadTo(SkBits2Float(0xc218d61a), SkBits2Float(0x40d9d6f4), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef)); 596 path.quadTo(SkBits2Float(0xc218d61a), SkBits2Float(0x40d9d6f4), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef));
607 path.quadTo(SkBits2Float(0xc2152d73), SkBits2Float(0x412389fb), SkBits2Float(0xc 214fe6a), SkBits2Float(0x4126ec3a)); 597 path.quadTo(SkBits2Float(0xc2152d73), SkBits2Float(0x412389fb), SkBits2Float(0xc 214fe6a), SkBits2Float(0x4126ec3a));
608 path.quadTo(SkBits2Float(0xc214b621), SkBits2Float(0x412a3217), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d)); 598 path.quadTo(SkBits2Float(0xc214b621), SkBits2Float(0x412a3217), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d));
(...skipping 14 matching lines...) Expand all
623 path.quadTo(SkBits2Float(0xc2559cca), SkBits2Float(0x4142831e), SkBits2Float(0xc 24f3eed), SkBits2Float(0x4114026c)); 613 path.quadTo(SkBits2Float(0xc2559cca), SkBits2Float(0x4142831e), SkBits2Float(0xc 24f3eed), SkBits2Float(0x4114026c));
624 path.quadTo(SkBits2Float(0xc248e111), SkBits2Float(0x40cb0370), SkBits2Float(0xc 23c281b), SkBits2Float(0x40ad4390)); 614 path.quadTo(SkBits2Float(0xc248e111), SkBits2Float(0x40cb0370), SkBits2Float(0xc 23c281b), SkBits2Float(0x40ad4390));
625 path.quadTo(SkBits2Float(0xc22f6f26), SkBits2Float(0x408f83a8), SkBits2Float(0xc 223cefa), SkBits2Float(0x40c2728a)); 615 path.quadTo(SkBits2Float(0xc22f6f26), SkBits2Float(0x408f83a8), SkBits2Float(0xc 223cefa), SkBits2Float(0x40c2728a));
626 path.quadTo(SkBits2Float(0xc2182ecc), SkBits2Float(0x40f5616e), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d)); 616 path.quadTo(SkBits2Float(0xc2182ecc), SkBits2Float(0x40f5616e), SkBits2Float(0xc 21476d0), SkBits2Float(0x412d948d));
627 path.quadTo(SkBits2Float(0xc210bed3), SkBits2Float(0x41607862), SkBits2Float(0xc 2171cb0), SkBits2Float(0x41877c8b)); 617 path.quadTo(SkBits2Float(0xc210bed3), SkBits2Float(0x41607862), SkBits2Float(0xc 2171cb0), SkBits2Float(0x41877c8b));
628 path.quadTo(SkBits2Float(0xc21d7a8c), SkBits2Float(0x419ebce4), SkBits2Float(0xc 22a3381), SkBits2Float(0x41a62cde)); 618 path.quadTo(SkBits2Float(0xc21d7a8c), SkBits2Float(0x419ebce4), SkBits2Float(0xc 22a3381), SkBits2Float(0x41a62cde));
629 path.quadTo(SkBits2Float(0xc236ec77), SkBits2Float(0x41ad9cd6), SkBits2Float(0xc 2428ca4), SkBits2Float(0x41a0e11e)); 619 path.quadTo(SkBits2Float(0xc236ec77), SkBits2Float(0x41ad9cd6), SkBits2Float(0xc 2428ca4), SkBits2Float(0x41a0e11e));
630 path.close(); 620 path.close();
631 621
632 SkPath path2(path); 622 SkPath path2(path);
633 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 623 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
634 } 624 }
635 625
636 static void fuzz763_4014(skiatest::Reporter* reporter, const char* filename) { 626 static void fuzz763_4014(skiatest::Reporter* reporter, const char* filename) {
637 SkPath path; 627 SkPath path;
638 path.setFillType((SkPath::FillType) 1); 628 path.setFillType((SkPath::FillType) 1);
639 path.moveTo(SkBits2Float(0x4126977e), SkBits2Float(0xc24e5cc8)); 629 path.moveTo(SkBits2Float(0x4126977e), SkBits2Float(0xc24e5cc8));
640 path.quadTo(SkBits2Float(0x4155a79e), SkBits2Float(0xc2547762), SkBits2Float(0x4 1841952), SkBits2Float(0xc250767b)); 630 path.quadTo(SkBits2Float(0x4155a79e), SkBits2Float(0xc2547762), SkBits2Float(0x4 1841952), SkBits2Float(0xc250767b));
641 path.quadTo(SkBits2Float(0x419d5ed4), SkBits2Float(0xc24c7594), SkBits2Float(0x4 1a99408), SkBits2Float(0xc240b18c)); 631 path.quadTo(SkBits2Float(0x419d5ed4), SkBits2Float(0xc24c7594), SkBits2Float(0x4 1a99408), SkBits2Float(0xc240b18c));
642 path.quadTo(SkBits2Float(0x41b5c93d), SkBits2Float(0xc234ed84), SkBits2Float(0x4 1adc770), SkBits2Float(0xc2284ac3)); 632 path.quadTo(SkBits2Float(0x41b5c93d), SkBits2Float(0xc234ed84), SkBits2Float(0x4 1adc770), SkBits2Float(0xc2284ac3));
643 path.quadTo(SkBits2Float(0x41a5c5a2), SkBits2Float(0xc21ba802), SkBits2Float(0x4 18e3d92), SkBits2Float(0xc2158d68)); 633 path.quadTo(SkBits2Float(0x41a5c5a2), SkBits2Float(0xc21ba802), SkBits2Float(0x4 18e3d92), SkBits2Float(0xc2158d68));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 path.quadTo(SkBits2Float(0xc25868d8), SkBits2Float(0x41085856), SkBits2Float(0xc 25145a6), SkBits2Float(0x40b75684)); 702 path.quadTo(SkBits2Float(0xc25868d8), SkBits2Float(0x41085856), SkBits2Float(0xc 25145a6), SkBits2Float(0x40b75684));
713 path.quadTo(SkBits2Float(0xc24a2274), SkBits2Float(0x403bf8b8), SkBits2Float(0xc 23d30a0), SkBits2Float(0x400e5c28)); 703 path.quadTo(SkBits2Float(0xc24a2274), SkBits2Float(0x403bf8b8), SkBits2Float(0xc 23d30a0), SkBits2Float(0x400e5c28));
714 path.quadTo(SkBits2Float(0xc2303ecc), SkBits2Float(0x3fc17f10), SkBits2Float(0xc 2251387), SkBits2Float(0x4052f2a8)); 704 path.quadTo(SkBits2Float(0xc2303ecc), SkBits2Float(0x3fc17f10), SkBits2Float(0xc 2251387), SkBits2Float(0x4052f2a8));
715 path.quadTo(SkBits2Float(0xc219e842), SkBits2Float(0x40a292e2), SkBits2Float(0xc 2170e78), SkBits2Float(0x410510c3)); 705 path.quadTo(SkBits2Float(0xc219e842), SkBits2Float(0x40a292e2), SkBits2Float(0xc 2170e78), SkBits2Float(0x410510c3));
716 path.quadTo(SkBits2Float(0xc21434af), SkBits2Float(0x4138d815), SkBits2Float(0xc 21b57e0), SkBits2Float(0x41658529)); 706 path.quadTo(SkBits2Float(0xc21434af), SkBits2Float(0x4138d815), SkBits2Float(0xc 21b57e0), SkBits2Float(0x41658529));
717 path.quadTo(SkBits2Float(0xc2227b12), SkBits2Float(0x4189191e), SkBits2Float(0xc 22f6ce6), SkBits2Float(0x418eccb0)); 707 path.quadTo(SkBits2Float(0xc2227b12), SkBits2Float(0x4189191e), SkBits2Float(0xc 22f6ce6), SkBits2Float(0x418eccb0));
718 path.quadTo(SkBits2Float(0xc23c5ebc), SkBits2Float(0x41948044), SkBits2Float(0xc 2478a00), SkBits2Float(0x418639e0)); 708 path.quadTo(SkBits2Float(0xc23c5ebc), SkBits2Float(0x41948044), SkBits2Float(0xc 2478a00), SkBits2Float(0x418639e0));
719 path.close(); 709 path.close();
720 710
721 SkPath path2(path); 711 SkPath path2(path);
722 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 712 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
723 } 713 }
724 714
725 static void fuzz763_4014a(skiatest::Reporter* reporter, const char* filename) { 715 static void fuzz763_4014a(skiatest::Reporter* reporter, const char* filename) {
726 SkPath path; 716 SkPath path;
727 path.setFillType((SkPath::FillType) 1); 717 path.setFillType((SkPath::FillType) 1);
728 path.moveTo(SkBits2Float(0xc23d30a0), SkBits2Float(0x400e5c28)); // -47.2975f, 2.22437f 718 path.moveTo(SkBits2Float(0xc23d30a0), SkBits2Float(0x400e5c28)); // -47.2975f, 2.22437f
729 path.quadTo(SkBits2Float(0xc2303ecc), SkBits2Float(0x3fc17f10), SkBits2Float(0xc 2251387), SkBits2Float(0x4052f2a8)); // -44.0613f, 1.51169f, -41.2691f, 3.29606 f 719 path.quadTo(SkBits2Float(0xc2303ecc), SkBits2Float(0x3fc17f10), SkBits2Float(0xc 2251387), SkBits2Float(0x4052f2a8)); // -44.0613f, 1.51169f, -41.2691f, 3.29606 f
730 path.quadTo(SkBits2Float(0xc219e842), SkBits2Float(0x40a292e2), SkBits2Float(0xc 2170e78), SkBits2Float(0x410510c3)); // -38.4768f, 5.08043f, -37.7641f, 8.31659 f 720 path.quadTo(SkBits2Float(0xc219e842), SkBits2Float(0x40a292e2), SkBits2Float(0xc 2170e78), SkBits2Float(0x410510c3)); // -38.4768f, 5.08043f, -37.7641f, 8.31659 f
731 path.quadTo(SkBits2Float(0xc216ac8b), SkBits2Float(0x410c0373), SkBits2Float(0xc 21678a8), SkBits2Float(0x4112d552)); // -37.6685f, 8.75084f, -37.6178f, 9.17708 f 721 path.quadTo(SkBits2Float(0xc216ac8b), SkBits2Float(0x410c0373), SkBits2Float(0xc 21678a8), SkBits2Float(0x4112d552)); // -37.6685f, 8.75084f, -37.6178f, 9.17708 f
732 path.quadTo(SkBits2Float(0xc215ddb7), SkBits2Float(0x411942a8), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef)); // -37.4665f, 9.57877f, -37.3514f, 10.0083 f 722 path.quadTo(SkBits2Float(0xc215ddb7), SkBits2Float(0x411942a8), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef)); // -37.4665f, 9.57877f, -37.3514f, 10.0083 f
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x4 2040000), SkBits2Float(0x42240000)); 925 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x42240000), SkBits2Float(0x4 2040000), SkBits2Float(0x42240000));
936 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x4 1dabec3), SkBits2Float(0x421aa09e)); 926 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x42240000), SkBits2Float(0x4 1dabec3), SkBits2Float(0x421aa09e));
937 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x4 1c80000), SkBits2Float(0x42040000)); 927 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x4211413d), SkBits2Float(0x4 1c80000), SkBits2Float(0x42040000));
938 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3)); 928 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3));
939 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000)); 929 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000));
940 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3)); 930 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3));
941 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000)); 931 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000));
942 path.close(); 932 path.close();
943 933
944 SkPath path2(path); 934 SkPath path2(path);
945 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 935 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l);
946 } 936 }
947 937
948 static void fuzz763_24588(skiatest::Reporter* reporter, const char* filename) { 938 static void fuzz763_24588(skiatest::Reporter* reporter, const char* filename) {
949 SkPath path; 939 SkPath path;
950 path.setFillType((SkPath::FillType) 1); 940 path.setFillType((SkPath::FillType) 1);
951 path.moveTo(SkBits2Float(0x413a5194), SkBits2Float(0xc24d4e33)); // 11.6449f, - 51.3264f 941 path.moveTo(SkBits2Float(0x413a5194), SkBits2Float(0xc24d4e33)); // 11.6449f, - 51.3264f
952 path.quadTo(SkBits2Float(0x4169f3fc), SkBits2Float(0xc2532032), SkBits2Float(0x4 18e0c8b), SkBits2Float(0xc24ed218)); // 14.6221f, -52.7814f, 17.7561f, -51.7052 f 942 path.quadTo(SkBits2Float(0x4169f3fc), SkBits2Float(0xc2532032), SkBits2Float(0x4 18e0c8b), SkBits2Float(0xc24ed218)); // 14.6221f, -52.7814f, 17.7561f, -51.7052 f
953 path.quadTo(SkBits2Float(0x41a71f17), SkBits2Float(0xc24a83ff), SkBits2Float(0x4 1b2c316), SkBits2Float(0xc23e9b65)); // 20.8902f, -50.6289f, 22.3453f, -47.6518 f 943 path.quadTo(SkBits2Float(0x41a71f17), SkBits2Float(0xc24a83ff), SkBits2Float(0x4 1b2c316), SkBits2Float(0xc23e9b65)); // 20.8902f, -50.6289f, 22.3453f, -47.6518 f
954 path.quadTo(SkBits2Float(0x41be6714), SkBits2Float(0xc232b2cb), SkBits2Float(0x4 1b5cae0), SkBits2Float(0xc2262985)); // 23.8003f, -44.6746f, 22.7241f, -41.5405 f 944 path.quadTo(SkBits2Float(0x41be6714), SkBits2Float(0xc232b2cb), SkBits2Float(0x4 1b5cae0), SkBits2Float(0xc2262985)); // 23.8003f, -44.6746f, 22.7241f, -41.5405 f
955 path.quadTo(SkBits2Float(0x41ad2ead), SkBits2Float(0xc219a03f), SkBits2Float(0x4 1955d79), SkBits2Float(0xc213ce40)); // 21.6478f, -38.4065f, 18.6706f, -36.9514 f 945 path.quadTo(SkBits2Float(0x41ad2ead), SkBits2Float(0xc219a03f), SkBits2Float(0x4 1955d79), SkBits2Float(0xc213ce40)); // 21.6478f, -38.4065f, 18.6706f, -36.9514 f
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 path.quadTo(SkBits2Float(0x4124f7c7), SkBits2Float(0x4215aa28), SkBits2Float(0x4 156b15b), SkBits2Float(0x421110b0)); // 10.3105f, 37.4162f, 13.4183f, 36.2663f 1124 path.quadTo(SkBits2Float(0x4124f7c7), SkBits2Float(0x4215aa28), SkBits2Float(0x4 156b15b), SkBits2Float(0x421110b0)); // 10.3105f, 37.4162f, 13.4183f, 36.2663f
1135 path.quadTo(SkBits2Float(0x41843577), SkBits2Float(0x420c7739), SkBits2Float(0x4 19c4b3e), SkBits2Float(0x421200ec)); // 16.5261f, 35.1164f, 19.5367f, 36.5009f 1125 path.quadTo(SkBits2Float(0x41843577), SkBits2Float(0x420c7739), SkBits2Float(0x4 19c4b3e), SkBits2Float(0x421200ec)); // 16.5261f, 35.1164f, 19.5367f, 36.5009f
1136 path.quadTo(SkBits2Float(0x41b46104), SkBits2Float(0x42178a9f), SkBits2Float(0x4 1bd93f2), SkBits2Float(0x4223f904)); // 22.5474f, 37.8854f, 23.6972f, 40.9932f 1126 path.quadTo(SkBits2Float(0x41b46104), SkBits2Float(0x42178a9f), SkBits2Float(0x4 1bd93f2), SkBits2Float(0x4223f904)); // 22.5474f, 37.8854f, 23.6972f, 40.9932f
1137 path.quadTo(SkBits2Float(0x41c6c6e0), SkBits2Float(0x42306768), SkBits2Float(0x4 1bbb37b), SkBits2Float(0x423c724c)); // 24.8471f, 44.101f, 23.4626f, 47.1116f 1127 path.quadTo(SkBits2Float(0x41c6c6e0), SkBits2Float(0x42306768), SkBits2Float(0x4 1bbb37b), SkBits2Float(0x423c724c)); // 24.8471f, 44.101f, 23.4626f, 47.1116f
1138 path.close(); 1128 path.close();
1139 1129
1140 SkPath path2(path); 1130 SkPath path2(path);
1141 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 1131 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
1142 } 1132 }
1143 1133
1144 //SkOpSegment.cpp:3475: failed assertion "firstAngle"
1145 static void fuzz763_17370(skiatest::Reporter* reporter, const char* filename) { 1134 static void fuzz763_17370(skiatest::Reporter* reporter, const char* filename) {
1146 SkPath path; 1135 SkPath path;
1147 path.setFillType((SkPath::FillType) 1); 1136 path.setFillType((SkPath::FillType) 1);
1148 path.moveTo(SkBits2Float(0x41fb8980), SkBits2Float(0xc20d9cf4)); // 31.4421f, - 35.4033f 1137 path.moveTo(SkBits2Float(0x41fb8980), SkBits2Float(0xc20d9cf4)); // 31.4421f, - 35.4033f
1149 path.quadTo(SkBits2Float(0x42081e43), SkBits2Float(0xc215e4e6), SkBits2Float(0x4 2154ac6), SkBits2Float(0xc2146e6f)); // 34.0296f, -37.4735f, 37.323f, -37.1078f 1138 path.quadTo(SkBits2Float(0x42081e43), SkBits2Float(0xc215e4e6), SkBits2Float(0x4 2154ac6), SkBits2Float(0xc2146e6f)); // 34.0296f, -37.4735f, 37.323f, -37.1078f
1150 path.quadTo(SkBits2Float(0x4222774a), SkBits2Float(0xc212f7f8), SkBits2Float(0x4 22abf3a), SkBits2Float(0xc2089e76)); // 40.6165f, -36.7422f, 42.6867f, -34.1547 f 1139 path.quadTo(SkBits2Float(0x4222774a), SkBits2Float(0xc212f7f8), SkBits2Float(0x4 22abf3a), SkBits2Float(0xc2089e76)); // 40.6165f, -36.7422f, 42.6867f, -34.1547 f
1151 path.quadTo(SkBits2Float(0x4233072c), SkBits2Float(0xc1fc89e5), SkBits2Float(0x4 23190b5), SkBits2Float(0xc1e230df)); // 44.757f, -31.5673f, 44.3913f, -28.2739f 1140 path.quadTo(SkBits2Float(0x4233072c), SkBits2Float(0xc1fc89e5), SkBits2Float(0x4 23190b5), SkBits2Float(0xc1e230df)); // 44.757f, -31.5673f, 44.3913f, -28.2739f
1152 path.quadTo(SkBits2Float(0x42301a3e), SkBits2Float(0xc1c7d7d8), SkBits2Float(0x4 225c0bc), SkBits2Float(0xc1b747f6)); // 44.0256f, -24.9804f, 41.4382f, -22.9101 f 1141 path.quadTo(SkBits2Float(0x42301a3e), SkBits2Float(0xc1c7d7d8), SkBits2Float(0x4 225c0bc), SkBits2Float(0xc1b747f6)); // 44.0256f, -24.9804f, 41.4382f, -22.9101 f
1153 path.quadTo(SkBits2Float(0x421b6738), SkBits2Float(0xc1a6b815), SkBits2Float(0x4 20e3ab6), SkBits2Float(0xc1a9a502)); // 38.8508f, -20.8399f, 35.5573f, -21.2056 f 1142 path.quadTo(SkBits2Float(0x421b6738), SkBits2Float(0xc1a6b815), SkBits2Float(0x4 20e3ab6), SkBits2Float(0xc1a9a502)); // 38.8508f, -20.8399f, 35.5573f, -21.2056 f
1154 path.quadTo(SkBits2Float(0x42010e32), SkBits2Float(0xc1ac91ef), SkBits2Float(0x4 1f18c82), SkBits2Float(0xc1c144f4)); // 32.2639f, -21.5713f, 30.1936f, -24.1587 f 1143 path.quadTo(SkBits2Float(0x42010e32), SkBits2Float(0xc1ac91ef), SkBits2Float(0x4 1f18c82), SkBits2Float(0xc1c144f4)); // 32.2639f, -21.5713f, 30.1936f, -24.1587 f
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 path.quadTo(SkBits2Float(0x420b6f41), SkBits2Float(0x4228f9ea), SkBits2Float(0x4 1fc602b), SkBits2Float(0x42288353)); // 34.8586f, 42.2441f, 31.547f, 42.1282f 1429 path.quadTo(SkBits2Float(0x420b6f41), SkBits2Float(0x4228f9ea), SkBits2Float(0x4 1fc602b), SkBits2Float(0x42288353)); // 34.8586f, 42.2441f, 31.547f, 42.1282f
1441 path.quadTo(SkBits2Float(0x41e1e1d7), SkBits2Float(0x42280cbd), SkBits2Float(0x4 1cfcdb9), SkBits2Float(0x421e5af7)); // 28.2353f, 42.0124f, 25.9755f, 39.5888f 1430 path.quadTo(SkBits2Float(0x41e1e1d7), SkBits2Float(0x42280cbd), SkBits2Float(0x4 1cfcdb9), SkBits2Float(0x421e5af7)); // 28.2353f, 42.0124f, 25.9755f, 39.5888f
1442 path.quadTo(SkBits2Float(0x41bdb999), SkBits2Float(0x4214a933), SkBits2Float(0x4 1bea6c6), SkBits2Float(0x42076a08)); // 23.7156f, 37.1652f, 23.8314f, 33.8535f 1431 path.quadTo(SkBits2Float(0x41bdb999), SkBits2Float(0x4214a933), SkBits2Float(0x4 1bea6c6), SkBits2Float(0x42076a08)); // 23.7156f, 37.1652f, 23.8314f, 33.8535f
1443 path.quadTo(SkBits2Float(0x41bf93f3), SkBits2Float(0x41f455bd), SkBits2Float(0x4 1d2f77e), SkBits2Float(0x41e2419e)); // 23.9472f, 30.5419f, 26.3708f, 28.282f 1432 path.quadTo(SkBits2Float(0x41bf93f3), SkBits2Float(0x41f455bd), SkBits2Float(0x4 1d2f77e), SkBits2Float(0x41e2419e)); // 23.9472f, 30.5419f, 26.3708f, 28.282f
1444 path.quadTo(SkBits2Float(0x41e65b07), SkBits2Float(0x41d02d7f), SkBits2Float(0x4 2006cae), SkBits2Float(0x41d11aac)); // 28.7944f, 26.0222f, 32.1061f, 26.138f 1433 path.quadTo(SkBits2Float(0x41e65b07), SkBits2Float(0x41d02d7f), SkBits2Float(0x4 2006cae), SkBits2Float(0x41d11aac)); // 28.7944f, 26.0222f, 32.1061f, 26.138f
1445 path.quadTo(SkBits2Float(0x420dabd9), SkBits2Float(0x41d207d9), SkBits2Float(0x4 216b5e7), SkBits2Float(0x41e56b63)); // 35.4178f, 26.2538f, 37.6776f, 28.6774f 1434 path.quadTo(SkBits2Float(0x420dabd9), SkBits2Float(0x41d207d9), SkBits2Float(0x4 216b5e7), SkBits2Float(0x41e56b63)); // 35.4178f, 26.2538f, 37.6776f, 28.6774f
1446 path.quadTo(SkBits2Float(0x421fbff7), SkBits2Float(0x41f8ceed), SkBits2Float(0x4 21f4961), SkBits2Float(0x4209a6a0)); // 39.9375f, 31.101f, 39.8217f, 34.4127f 1435 path.quadTo(SkBits2Float(0x421fbff7), SkBits2Float(0x41f8ceed), SkBits2Float(0x4 21f4961), SkBits2Float(0x4209a6a0)); // 39.9375f, 31.101f, 39.8217f, 34.4127f
1447 path.close(); 1436 path.close();
1448 1437
1449 SkPath path2(path); 1438 SkPath path2(path);
1450 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 1439 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
1451 } 1440 }
1452 1441
1453 static void fuzz763_1597464(skiatest::Reporter* reporter, const char* filename) { 1442 static void fuzz763_1597464(skiatest::Reporter* reporter, const char* filename) {
1454 SkPath path; 1443 SkPath path;
1455 path.setFillType((SkPath::FillType) 1); 1444 path.setFillType((SkPath::FillType) 1);
1456 path.moveTo(SkBits2Float(0x4101092a), SkBits2Float(0xc2500973)); // 8.06474f, - 52.0092f 1445 path.moveTo(SkBits2Float(0x4101092a), SkBits2Float(0xc2500973)); // 8.06474f, - 52.0092f
1457 path.quadTo(SkBits2Float(0x412ef1d8), SkBits2Float(0xc256aade), SkBits2Float(0x4 1622940), SkBits2Float(0xc2533d84)); // 10.934f, -53.6669f, 14.1351f, -52.8101f 1446 path.quadTo(SkBits2Float(0x412ef1d8), SkBits2Float(0xc256aade), SkBits2Float(0x4 1622940), SkBits2Float(0xc2533d84)); // 10.934f, -53.6669f, 14.1351f, -52.8101f
1458 path.quadTo(SkBits2Float(0x418ab055), SkBits2Float(0xc24fd02d), SkBits2Float(0x4 197f32a), SkBits2Float(0xc2445602)); // 17.3361f, -51.9533f, 18.9937f, -49.084f 1447 path.quadTo(SkBits2Float(0x418ab055), SkBits2Float(0xc24fd02d), SkBits2Float(0x4 197f32a), SkBits2Float(0xc2445602)); // 17.3361f, -51.9533f, 18.9937f, -49.084f
1459 path.quadTo(SkBits2Float(0x41a535ff), SkBits2Float(0xc238dbd6), SkBits2Float(0x4 19e5b4c), SkBits2Float(0xc22c0dfb)); // 20.6514f, -46.2147f, 19.7946f, -43.0137 f 1448 path.quadTo(SkBits2Float(0x41a535ff), SkBits2Float(0xc238dbd6), SkBits2Float(0x4 19e5b4c), SkBits2Float(0xc22c0dfb)); // 20.6514f, -46.2147f, 19.7946f, -43.0137 f
1460 path.quadTo(SkBits2Float(0x4197809e), SkBits2Float(0xc21f4021), SkBits2Float(0x4 1808c46), SkBits2Float(0xc2189eb6)); // 18.9378f, -39.8126f, 16.0685f, -38.155f 1449 path.quadTo(SkBits2Float(0x4197809e), SkBits2Float(0xc21f4021), SkBits2Float(0x4 1808c46), SkBits2Float(0xc2189eb6)); // 18.9378f, -39.8126f, 16.0685f, -38.155f
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1535 path.quadTo(SkBits2Float(0xc218d435), SkBits2Float(0x40da2bd2), SkBits2Float(0xc 2156516), SkBits2Float(0x41204b6b)); // -38.2072f, 6.81785f, -37.3487f, 10.0184 f 1524 path.quadTo(SkBits2Float(0xc218d435), SkBits2Float(0x40da2bd2), SkBits2Float(0xc 2156516), SkBits2Float(0x41204b6b)); // -38.2072f, 6.81785f, -37.3487f, 10.0184 f
1536 path.quadTo(SkBits2Float(0xc211f5f7), SkBits2Float(0x415380eb), SkBits2Float(0xc 21895c9), SkBits2Float(0x4180b6a4)); // -36.4902f, 13.219f, -38.1463f, 16.0892f 1525 path.quadTo(SkBits2Float(0xc211f5f7), SkBits2Float(0x415380eb), SkBits2Float(0xc 21895c9), SkBits2Float(0x4180b6a4)); // -36.4902f, 13.219f, -38.1463f, 16.0892f
1537 path.quadTo(SkBits2Float(0xc21f359c), SkBits2Float(0x4197acd2), SkBits2Float(0xc 22c02fc), SkBits2Float(0x419e8b10)); // -39.8024f, 18.9594f, -43.0029f, 19.8179 f 1526 path.quadTo(SkBits2Float(0xc21f359c), SkBits2Float(0x4197acd2), SkBits2Float(0xc 22c02fc), SkBits2Float(0x419e8b10)); // -39.8024f, 18.9594f, -43.0029f, 19.8179 f
1538 path.quadTo(SkBits2Float(0xc238d05c), SkBits2Float(0x41a56952), SkBits2Float(0xc 2444b74), SkBits2Float(0x419829ad)); // -46.2035f, 20.6764f, -49.0737f, 19.0203 f 1527 path.quadTo(SkBits2Float(0xc238d05c), SkBits2Float(0x41a56952), SkBits2Float(0xc 2444b74), SkBits2Float(0x419829ad)); // -46.2035f, 20.6764f, -49.0737f, 19.0203 f
1539 path.close(); 1528 path.close();
1540 1529
1541 SkPath path2(path); 1530 SkPath path2(path);
1542 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 1531 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
1543 } 1532 }
1544 1533
1545 // SkOpSegment.cpp:4010: failed assertion "span->fOppSum == -0x7FFFFFFF || span- >fOppSum == oppWinding
1546 static void fuzz763_34974(skiatest::Reporter* reporter, const char* filename) { 1534 static void fuzz763_34974(skiatest::Reporter* reporter, const char* filename) {
1547 SkPath path; 1535 SkPath path;
1548 path.setFillType((SkPath::FillType) 1); 1536 path.setFillType((SkPath::FillType) 1);
1537 #if 00
1549 path.moveTo(SkBits2Float(0x41015326), SkBits2Float(0xc2500694)); 1538 path.moveTo(SkBits2Float(0x41015326), SkBits2Float(0xc2500694));
1550 path.quadTo(SkBits2Float(0x412f3e30), SkBits2Float(0xc256a6fa), SkBits2Float(0x4 1627462), SkBits2Float(0xc253387e)); 1539 path.quadTo(SkBits2Float(0x412f3e30), SkBits2Float(0xc256a6fa), SkBits2Float(0x4 1627462), SkBits2Float(0xc253387e));
1551 path.quadTo(SkBits2Float(0x418ad549), SkBits2Float(0xc24fca02), SkBits2Float(0x4 1981613), SkBits2Float(0xc2444f40)); 1540 path.quadTo(SkBits2Float(0x418ad549), SkBits2Float(0xc24fca02), SkBits2Float(0x4 1981613), SkBits2Float(0xc2444f40));
1552 path.quadTo(SkBits2Float(0x41a556de), SkBits2Float(0xc238d47d), SkBits2Float(0x4 19e79e6), SkBits2Float(0xc22c06f0)); 1541 path.quadTo(SkBits2Float(0x41a556de), SkBits2Float(0xc238d47d), SkBits2Float(0x4 19e79e6), SkBits2Float(0xc22c06f0));
1553 path.quadTo(SkBits2Float(0x41979cee), SkBits2Float(0xc21f3964), SkBits2Float(0x4 180a76a), SkBits2Float(0xc21898ff)); 1542 path.quadTo(SkBits2Float(0x41979cee), SkBits2Float(0xc21f3964), SkBits2Float(0x4 180a76a), SkBits2Float(0xc21898ff));
1554 path.quadTo(SkBits2Float(0x415363c9), SkBits2Float(0xc211f89a), SkBits2Float(0x4 1202d96), SkBits2Float(0xc2156716)); 1543 path.quadTo(SkBits2Float(0x415363c9), SkBits2Float(0xc211f89a), SkBits2Float(0x4 1202d96), SkBits2Float(0xc2156716));
1555 path.quadTo(SkBits2Float(0x40d9eeca), SkBits2Float(0xc218d592), SkBits2Float(0x4 0a4eba0), SkBits2Float(0xc2245054)); 1544 path.quadTo(SkBits2Float(0x40d9eeca), SkBits2Float(0xc218d592), SkBits2Float(0x4 0a4eba0), SkBits2Float(0xc2245054));
1556 path.quadTo(SkBits2Float(0x405fd0f0), SkBits2Float(0xc22fcb17), SkBits2Float(0x4 08b5c58), SkBits2Float(0xc23c98a3)); 1545 path.quadTo(SkBits2Float(0x405fd0f0), SkBits2Float(0xc22fcb17), SkBits2Float(0x4 08b5c58), SkBits2Float(0xc23c98a3));
1557 path.quadTo(SkBits2Float(0x40a6d038), SkBits2Float(0xc249662f), SkBits2Float(0x4 1015326), SkBits2Float(0xc2500694)); 1546 path.quadTo(SkBits2Float(0x40a6d038), SkBits2Float(0xc249662f), SkBits2Float(0x4 1015326), SkBits2Float(0xc2500694));
1558 path.close(); 1547 path.close();
1548 #endif
1549 #if 000
1559 path.moveTo(SkBits2Float(0xc21a9c18), SkBits2Float(0xc21aa524)); 1550 path.moveTo(SkBits2Float(0xc21a9c18), SkBits2Float(0xc21aa524));
1560 path.quadTo(SkBits2Float(0xc2113c71), SkBits2Float(0xc2240440), SkBits2Float(0xc 203fb34), SkBits2Float(0xc22403dc)); 1551 path.quadTo(SkBits2Float(0xc2113c71), SkBits2Float(0xc2240440), SkBits2Float(0xc 203fb34), SkBits2Float(0xc22403dc));
1561 path.quadTo(SkBits2Float(0xc1ed73ee), SkBits2Float(0xc2240379), SkBits2Float(0xc 1dab5b7), SkBits2Float(0xc21aa3d1)); 1552 path.quadTo(SkBits2Float(0xc1ed73ee), SkBits2Float(0xc2240379), SkBits2Float(0xc 1dab5b7), SkBits2Float(0xc21aa3d1));
1562 path.quadTo(SkBits2Float(0xc1c7f781), SkBits2Float(0xc211442a), SkBits2Float(0xc 1c7f847), SkBits2Float(0xc20402ed)); 1553 path.quadTo(SkBits2Float(0xc1c7f781), SkBits2Float(0xc211442a), SkBits2Float(0xc 1c7f847), SkBits2Float(0xc20402ed));
1563 path.quadTo(SkBits2Float(0xc1c7f90e), SkBits2Float(0xc1ed835f), SkBits2Float(0xc 1dab85d), SkBits2Float(0xc1dac529)); 1554 path.quadTo(SkBits2Float(0xc1c7f90e), SkBits2Float(0xc1ed835f), SkBits2Float(0xc 1dab85d), SkBits2Float(0xc1dac529));
1564 path.quadTo(SkBits2Float(0xc1ed77ad), SkBits2Float(0xc1c806f2), SkBits2Float(0xc 203fd13), SkBits2Float(0xc1c807b9)); 1555 path.quadTo(SkBits2Float(0xc1ed77ad), SkBits2Float(0xc1c806f2), SkBits2Float(0xc 203fd13), SkBits2Float(0xc1c807b9));
1565 path.quadTo(SkBits2Float(0xc2113e50), SkBits2Float(0xc1c8087f), SkBits2Float(0xc 21a9d6b), SkBits2Float(0xc1dac7cf)); 1556 path.quadTo(SkBits2Float(0xc2113e50), SkBits2Float(0xc1c8087f), SkBits2Float(0xc 21a9d6b), SkBits2Float(0xc1dac7cf));
1566 path.quadTo(SkBits2Float(0xc223fc87), SkBits2Float(0xc1ed871e), SkBits2Float(0xc 223fc24), SkBits2Float(0xc20404cc)); 1557 path.quadTo(SkBits2Float(0xc223fc87), SkBits2Float(0xc1ed871e), SkBits2Float(0xc 223fc24), SkBits2Float(0xc20404cc));
1567 path.quadTo(SkBits2Float(0xc223fbc0), SkBits2Float(0xc2114609), SkBits2Float(0xc 21a9c18), SkBits2Float(0xc21aa524)); 1558 path.quadTo(SkBits2Float(0xc223fbc0), SkBits2Float(0xc2114609), SkBits2Float(0xc 21a9c18), SkBits2Float(0xc21aa524));
1568 path.close(); 1559 path.close();
1560 #endif
1561 #if 00
1569 path.moveTo(SkBits2Float(0xc19e6455), SkBits2Float(0xc19e6455)); 1562 path.moveTo(SkBits2Float(0xc19e6455), SkBits2Float(0xc19e6455));
1570 path.quadTo(SkBits2Float(0xc1399153), SkBits2Float(0xc1e00000), SkBits2Float(0x0 0000000), SkBits2Float(0xc1e00000)); 1563 path.quadTo(SkBits2Float(0xc1399153), SkBits2Float(0xc1e00000), SkBits2Float(0x0 0000000), SkBits2Float(0xc1e00000));
1571 path.quadTo(SkBits2Float(0x41399153), SkBits2Float(0xc1e00000), SkBits2Float(0x4 19e6455), SkBits2Float(0xc19e6455)); 1564 path.quadTo(SkBits2Float(0x41399153), SkBits2Float(0xc1e00000), SkBits2Float(0x4 19e6455), SkBits2Float(0xc19e6455));
1572 path.quadTo(SkBits2Float(0x41e00000), SkBits2Float(0xc1399153), SkBits2Float(0x4 1e00000), SkBits2Float(0x00000000)); 1565 path.quadTo(SkBits2Float(0x41e00000), SkBits2Float(0xc1399153), SkBits2Float(0x4 1e00000), SkBits2Float(0x00000000));
1573 path.quadTo(SkBits2Float(0x41e00000), SkBits2Float(0x41399153), SkBits2Float(0x4 19e6455), SkBits2Float(0x419e6455)); 1566 path.quadTo(SkBits2Float(0x41e00000), SkBits2Float(0x41399153), SkBits2Float(0x4 19e6455), SkBits2Float(0x419e6455));
1574 path.quadTo(SkBits2Float(0x415b75ce), SkBits2Float(0x41cf0dc3), SkBits2Float(0x4 0b878fc), SkBits2Float(0x41db9f74)); 1567 path.quadTo(SkBits2Float(0x415b75ce), SkBits2Float(0x41cf0dc3), SkBits2Float(0x4 0b878fc), SkBits2Float(0x41db9f74));
1575 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x41ee1ba4), SkBits2Float(0x4 1000000), SkBits2Float(0x42040000)); 1568 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x41ee1ba4), SkBits2Float(0x4 1000000), SkBits2Float(0x42040000));
1576 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x4211413d), SkBits2Float(0x4 0b504f3), SkBits2Float(0x421aa09e)); 1569 path.quadTo(SkBits2Float(0x41000000), SkBits2Float(0x4211413d), SkBits2Float(0x4 0b504f3), SkBits2Float(0x421aa09e));
1577 path.quadTo(SkBits2Float(0x405413cd), SkBits2Float(0x42240000), SkBits2Float(0x0 0000000), SkBits2Float(0x42240000)); 1570 path.quadTo(SkBits2Float(0x405413cd), SkBits2Float(0x42240000), SkBits2Float(0x0 0000000), SkBits2Float(0x42240000));
1578 path.quadTo(SkBits2Float(0xc05413cd), SkBits2Float(0x42240000), SkBits2Float(0xc 0b504f3), SkBits2Float(0x421aa09e)); 1571 path.quadTo(SkBits2Float(0xc05413cd), SkBits2Float(0x42240000), SkBits2Float(0xc 0b504f3), SkBits2Float(0x421aa09e));
1579 path.quadTo(SkBits2Float(0xc1000000), SkBits2Float(0x4211413d), SkBits2Float(0xc 1000000), SkBits2Float(0x42040000)); 1572 path.quadTo(SkBits2Float(0xc1000000), SkBits2Float(0x4211413d), SkBits2Float(0xc 1000000), SkBits2Float(0x42040000));
1580 path.quadTo(SkBits2Float(0xc1000000), SkBits2Float(0x41ee1ba4), SkBits2Float(0xc 0b878fc), SkBits2Float(0x41db9f74)); 1573 path.quadTo(SkBits2Float(0xc1000000), SkBits2Float(0x41ee1ba4), SkBits2Float(0xc 0b878fc), SkBits2Float(0x41db9f74));
1581 path.quadTo(SkBits2Float(0xc15b75ce), SkBits2Float(0x41cf0dc3), SkBits2Float(0xc 19e6455), SkBits2Float(0x419e6455)); 1574 path.quadTo(SkBits2Float(0xc15b75ce), SkBits2Float(0x41cf0dc3), SkBits2Float(0xc 19e6455), SkBits2Float(0x419e6455));
1582 path.quadTo(SkBits2Float(0xc1e00000), SkBits2Float(0x41399153), SkBits2Float(0xc 1e00000), SkBits2Float(0x00000000)); 1575 path.quadTo(SkBits2Float(0xc1e00000), SkBits2Float(0x41399153), SkBits2Float(0xc 1e00000), SkBits2Float(0x00000000));
1583 path.quadTo(SkBits2Float(0xc1e00000), SkBits2Float(0xc1399153), SkBits2Float(0xc 19e6455), SkBits2Float(0xc19e6455)); 1576 path.quadTo(SkBits2Float(0xc1e00000), SkBits2Float(0xc1399153), SkBits2Float(0xc 19e6455), SkBits2Float(0xc19e6455));
1584 path.close(); 1577 path.close();
1578 #endif
1579 #if 01
1585 path.moveTo(SkBits2Float(0xc2533a24), SkBits2Float(0x41625bba)); 1580 path.moveTo(SkBits2Float(0xc2533a24), SkBits2Float(0x41625bba));
1586 path.lineTo(SkBits2Float(0xc2533ab2), SkBits2Float(0x4162536e)); 1581 path.lineTo(SkBits2Float(0xc2533ab2), SkBits2Float(0x4162536e));
1587 path.lineTo(SkBits2Float(0xc2533af7), SkBits2Float(0x41624f68)); 1582 path.lineTo(SkBits2Float(0xc2533af7), SkBits2Float(0x41624f68));
1588 path.quadTo(SkBits2Float(0xc2533a8e), SkBits2Float(0x41625591), SkBits2Float(0xc 2533a24), SkBits2Float(0x41625bba)); 1583 path.quadTo(SkBits2Float(0xc2533a8e), SkBits2Float(0x41625591), SkBits2Float(0xc 2533a24), SkBits2Float(0x41625bba));
1589 path.close(); 1584 path.close();
1585 #endif
1586 #if 0
1590 path.moveTo(SkBits2Float(0x41dac664), SkBits2Float(0x41dab723)); 1587 path.moveTo(SkBits2Float(0x41dac664), SkBits2Float(0x41dab723));
1591 path.quadTo(SkBits2Float(0x41ed82ea), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000)); 1588 path.quadTo(SkBits2Float(0x41ed82ea), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000));
1592 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3)); 1589 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3));
1593 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000)); 1590 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000));
1594 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x4211413d), SkBits2Float(0x4 21aa09e), SkBits2Float(0x421aa09e)); 1591 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x4211413d), SkBits2Float(0x4 21aa09e), SkBits2Float(0x421aa09e));
1595 path.lineTo(SkBits2Float(0x421a9d9a), SkBits2Float(0x421aa3a2)); 1592 path.lineTo(SkBits2Float(0x421a9d9a), SkBits2Float(0x421aa3a2));
1596 path.quadTo(SkBits2Float(0x42113e0a), SkBits2Float(0x422402d5), SkBits2Float(0x4 203fccd), SkBits2Float(0x42240293)); 1593 path.quadTo(SkBits2Float(0x42113e0a), SkBits2Float(0x422402d5), SkBits2Float(0x4 203fccd), SkBits2Float(0x42240293));
1597 path.quadTo(SkBits2Float(0x41ed7721), SkBits2Float(0x42240251), SkBits2Float(0x4 1dab8bb), SkBits2Float(0x421aa2c0)); 1594 path.quadTo(SkBits2Float(0x41ed7721), SkBits2Float(0x42240251), SkBits2Float(0x4 1dab8bb), SkBits2Float(0x421aa2c0));
1598 path.quadTo(SkBits2Float(0x41c7fa56), SkBits2Float(0x42114330), SkBits2Float(0x4 1c7fada), SkBits2Float(0x420401f3)); 1595 path.quadTo(SkBits2Float(0x41c7fa56), SkBits2Float(0x42114330), SkBits2Float(0x4 1c7fada), SkBits2Float(0x420401f3));
1599 path.quadTo(SkBits2Float(0x41c7fb5f), SkBits2Float(0x41ed9352), SkBits2Float(0x4 1daa13c), SkBits2Float(0x41dadc57)); 1596 path.quadTo(SkBits2Float(0x41c7fb5f), SkBits2Float(0x41ed9352), SkBits2Float(0x4 1daa13c), SkBits2Float(0x41dadc57));
1600 path.quadTo(SkBits2Float(0x41daa91d), SkBits2Float(0x41dad46f), SkBits2Float(0x4 1dab101), SkBits2Float(0x41dacc89)); 1597 path.quadTo(SkBits2Float(0x41daa91d), SkBits2Float(0x41dad46f), SkBits2Float(0x4 1dab101), SkBits2Float(0x41dacc89));
1601 path.quadTo(SkBits2Float(0x41dab5bf), SkBits2Float(0x41dac7c8), SkBits2Float(0x4 1daba7f), SkBits2Float(0x41dac307)); 1598 path.quadTo(SkBits2Float(0x41dab5bf), SkBits2Float(0x41dac7c8), SkBits2Float(0x4 1daba7f), SkBits2Float(0x41dac307));
1602 path.lineTo(SkBits2Float(0x41dabec3), SkBits2Float(0x41dabec3)); 1599 path.lineTo(SkBits2Float(0x41dabec3), SkBits2Float(0x41dabec3));
1603 path.quadTo(SkBits2Float(0x41dac293), SkBits2Float(0x41dabaf3), SkBits2Float(0x4 1dac664), SkBits2Float(0x41dab723)); 1600 path.quadTo(SkBits2Float(0x41dac293), SkBits2Float(0x41dabaf3), SkBits2Float(0x4 1dac664), SkBits2Float(0x41dab723));
1604 path.close(); 1601 path.close();
1602 #endif
1603 #if 00001
1605 path.moveTo(SkBits2Float(0xc23c9951), SkBits2Float(0x408b2180)); 1604 path.moveTo(SkBits2Float(0xc23c9951), SkBits2Float(0x408b2180));
1606 path.quadTo(SkBits2Float(0xc22fcba2), SkBits2Float(0x405f6340), SkBits2Float(0xc 2245122), SkBits2Float(0x40a4b85c)); 1605 path.quadTo(SkBits2Float(0xc22fcba2), SkBits2Float(0x405f6340), SkBits2Float(0xc 2245122), SkBits2Float(0x40a4b85c));
1607 path.quadTo(SkBits2Float(0xc218dd36), SkBits2Float(0x40d9a0b8), SkBits2Float(0xc 2156c96), SkBits2Float(0x411fdb9a)); 1606 path.quadTo(SkBits2Float(0xc218dd36), SkBits2Float(0x40d9a0b8), SkBits2Float(0xc 2156c96), SkBits2Float(0x411fdb9a));
1608 path.lineTo(SkBits2Float(0xc2156b9c), SkBits2Float(0x411fea15)); 1607 path.lineTo(SkBits2Float(0xc2156b9c), SkBits2Float(0x411fea15));
1609 path.quadTo(SkBits2Float(0xc2156a20), SkBits2Float(0x4120002c), SkBits2Float(0xc 21568a5), SkBits2Float(0x41201647)); 1608 path.quadTo(SkBits2Float(0xc2156a20), SkBits2Float(0x4120002c), SkBits2Float(0xc 21568a5), SkBits2Float(0x41201647));
1610 path.lineTo(SkBits2Float(0xc21568a3), SkBits2Float(0x41201660)); 1609 path.lineTo(SkBits2Float(0xc21568a3), SkBits2Float(0x41201660));
1611 path.lineTo(SkBits2Float(0xc2156841), SkBits2Float(0x41201c29)); 1610 path.lineTo(SkBits2Float(0xc2156841), SkBits2Float(0x41201c29));
1612 path.quadTo(SkBits2Float(0xc215680f), SkBits2Float(0x41201f0a), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef)); 1611 path.quadTo(SkBits2Float(0xc215680f), SkBits2Float(0x41201f0a), SkBits2Float(0xc 21567dd), SkBits2Float(0x412021ef));
1613 path.quadTo(SkBits2Float(0xc21562d2), SkBits2Float(0x41206d52), SkBits2Float(0xc 2155ca3), SkBits2Float(0x4120cb63)); 1612 path.quadTo(SkBits2Float(0xc21562d2), SkBits2Float(0x41206d52), SkBits2Float(0xc 2155ca3), SkBits2Float(0x4120cb63));
1614 path.quadTo(SkBits2Float(0xc212057d), SkBits2Float(0x4153a15f), SkBits2Float(0xc 2189adf), SkBits2Float(0x41809e82)); 1613 path.quadTo(SkBits2Float(0xc212057d), SkBits2Float(0x4153a15f), SkBits2Float(0xc 2189adf), SkBits2Float(0x41809e82));
1615 path.quadTo(SkBits2Float(0xc21f3b9a), SkBits2Float(0x419793a4), SkBits2Float(0xc 22c0940), SkBits2Float(0x419e6fdc)); 1614 path.quadTo(SkBits2Float(0xc21f3b9a), SkBits2Float(0x419793a4), SkBits2Float(0xc 22c0940), SkBits2Float(0x419e6fdc));
1616 path.quadTo(SkBits2Float(0xc238d6e6), SkBits2Float(0x41a54c16), SkBits2Float(0xc 2445177), SkBits2Float(0x41980aa0)); 1615 path.quadTo(SkBits2Float(0xc238d6e6), SkBits2Float(0x41a54c16), SkBits2Float(0xc 2445177), SkBits2Float(0x41980aa0));
1617 path.quadTo(SkBits2Float(0xc24fcb1e), SkBits2Float(0x418aca39), SkBits2Float(0xc 2533998), SkBits2Float(0x416263e8)); 1616 path.quadTo(SkBits2Float(0xc24fcb1e), SkBits2Float(0x418aca39), SkBits2Float(0xc 2533998), SkBits2Float(0x416263e8));
1618 path.quadTo(SkBits2Float(0xc24fcb5c), SkBits2Float(0x418acd2f), SkBits2Float(0xc 24450bb), SkBits2Float(0x41980e6c)); 1617 path.quadTo(SkBits2Float(0xc24fcb5c), SkBits2Float(0x418acd2f), SkBits2Float(0xc 24450bb), SkBits2Float(0x41980e6c));
1619 path.quadTo(SkBits2Float(0xc238d61a), SkBits2Float(0x41a54fa9), SkBits2Float(0xc 22c087c), SkBits2Float(0x419e7330)); 1618 path.quadTo(SkBits2Float(0xc238d61a), SkBits2Float(0x41a54fa9), SkBits2Float(0xc 22c087c), SkBits2Float(0x419e7330));
1620 path.quadTo(SkBits2Float(0xc21f3ade), SkBits2Float(0x419796b9), SkBits2Float(0xc 2189a40), SkBits2Float(0x4180a176)); 1619 path.quadTo(SkBits2Float(0xc21f3ade), SkBits2Float(0x419796b9), SkBits2Float(0xc 2189a40), SkBits2Float(0x4180a176));
1621 path.lineTo(SkBits2Float(0xc2533b22), SkBits2Float(0x41624cea)); 1620 path.lineTo(SkBits2Float(0xc2533b22), SkBits2Float(0x41624cea));
1622 path.quadTo(SkBits2Float(0xc256a842), SkBits2Float(0x412f19c8), SkBits2Float(0xc 25007d7), SkBits2Float(0x410132b2)); 1621 path.quadTo(SkBits2Float(0xc256a842), SkBits2Float(0x412f19c8), SkBits2Float(0xc 25007d7), SkBits2Float(0x410132b2));
1623 path.quadTo(SkBits2Float(0xc24966ff), SkBits2Float(0x40a69160), SkBits2Float(0xc 23c9951), SkBits2Float(0x408b2180)); 1622 path.quadTo(SkBits2Float(0xc24966ff), SkBits2Float(0x40a69160), SkBits2Float(0xc 23c9951), SkBits2Float(0x408b2180));
1624 path.close(); 1623 path.close();
1624 #endif
1625 1625
1626 SkPath path1(path); 1626 SkPath path1(path);
1627 path.reset(); 1627 path.reset();
1628 path.setFillType((SkPath::FillType) 0); 1628 path.setFillType((SkPath::FillType) 0);
1629 #if 01
1629 path.moveTo(SkBits2Float(0xc2445236), SkBits2Float(0x419806c2)); 1630 path.moveTo(SkBits2Float(0xc2445236), SkBits2Float(0x419806c2));
1630 path.quadTo(SkBits2Float(0xc24fccb6), SkBits2Float(0x418ac513), SkBits2Float(0xc 2533ab2), SkBits2Float(0x4162536e)); 1631 path.quadTo(SkBits2Float(0xc24fccb6), SkBits2Float(0x418ac513), SkBits2Float(0xc 2533ab2), SkBits2Float(0x4162536e));
1631 path.quadTo(SkBits2Float(0xc256a8ae), SkBits2Float(0x412f1cb2), SkBits2Float(0xc 25007d7), SkBits2Float(0x410132b2)); 1632 path.quadTo(SkBits2Float(0xc256a8ae), SkBits2Float(0x412f1cb2), SkBits2Float(0xc 25007d7), SkBits2Float(0x410132b2));
1632 path.quadTo(SkBits2Float(0xc24966ff), SkBits2Float(0x40a69160), SkBits2Float(0xc 23c9951), SkBits2Float(0x408b2180)); 1633 path.quadTo(SkBits2Float(0xc24966ff), SkBits2Float(0x40a69160), SkBits2Float(0xc 23c9951), SkBits2Float(0x408b2180));
1633 path.quadTo(SkBits2Float(0xc22fcba2), SkBits2Float(0x405f6340), SkBits2Float(0xc 2245122), SkBits2Float(0x40a4b85c)); 1634 path.quadTo(SkBits2Float(0xc22fcba2), SkBits2Float(0x405f6340), SkBits2Float(0xc 2245122), SkBits2Float(0x40a4b85c));
1634 path.quadTo(SkBits2Float(0xc218d6a2), SkBits2Float(0x40d9bf1c), SkBits2Float(0xc 21568a5), SkBits2Float(0x41201647)); 1635 path.quadTo(SkBits2Float(0xc218d6a2), SkBits2Float(0x40d9bf1c), SkBits2Float(0xc 21568a5), SkBits2Float(0x41201647));
1635 path.quadTo(SkBits2Float(0xc211faaa), SkBits2Float(0x41534d02), SkBits2Float(0xc 2189b82), SkBits2Float(0x41809b82)); 1636 path.quadTo(SkBits2Float(0xc211faaa), SkBits2Float(0x41534d02), SkBits2Float(0xc 2189b82), SkBits2Float(0x41809b82));
1636 path.quadTo(SkBits2Float(0xc21f3c59), SkBits2Float(0x41979082), SkBits2Float(0xc 22c0a07), SkBits2Float(0x419e6c7a)); 1637 path.quadTo(SkBits2Float(0xc21f3c59), SkBits2Float(0x41979082), SkBits2Float(0xc 22c0a07), SkBits2Float(0x419e6c7a));
1637 path.quadTo(SkBits2Float(0xc238d7b6), SkBits2Float(0x41a54872), SkBits2Float(0xc 2445236), SkBits2Float(0x419806c2)); 1638 path.quadTo(SkBits2Float(0xc238d7b6), SkBits2Float(0x41a54872), SkBits2Float(0xc 2445236), SkBits2Float(0x419806c2));
1638 path.close(); 1639 path.close();
1639 1640 #endif
1640 SkPath path2(path); 1641 SkPath path2(path);
1641 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l); 1642 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
1642 } 1643 }
1643 1644
1644 static void fuzz763_2211264(skiatest::Reporter* reporter, const char* filename) { 1645 static void fuzz763_2211264(skiatest::Reporter* reporter, const char* filename) {
1645 SkPath path; 1646 SkPath path;
1646 path.setFillType((SkPath::FillType) 1); 1647 path.setFillType((SkPath::FillType) 1);
1647 path.moveTo(SkBits2Float(0x41017a68), SkBits2Float(0xc250050e)); 1648 path.moveTo(SkBits2Float(0x41017a68), SkBits2Float(0xc250050e));
1648 path.quadTo(SkBits2Float(0x412f66b2), SkBits2Float(0xc256a4e9), SkBits2Float(0x4 1629c3c), SkBits2Float(0xc25335d1)); 1649 path.quadTo(SkBits2Float(0x412f66b2), SkBits2Float(0xc256a4e9), SkBits2Float(0x4 1629c3c), SkBits2Float(0xc25335d1));
1649 path.quadTo(SkBits2Float(0x418ae8e6), SkBits2Float(0xc24fc6bc), SkBits2Float(0x4 198289b), SkBits2Float(0xc2444ba9)); 1650 path.quadTo(SkBits2Float(0x418ae8e6), SkBits2Float(0xc24fc6bc), SkBits2Float(0x4 198289b), SkBits2Float(0xc2444ba9));
1650 path.quadTo(SkBits2Float(0x41a56850), SkBits2Float(0xc238d096), SkBits2Float(0x4 19e8a20), SkBits2Float(0xc22c0333)); 1651 path.quadTo(SkBits2Float(0x41a56850), SkBits2Float(0xc238d096), SkBits2Float(0x4 19e8a20), SkBits2Float(0xc22c0333));
1651 path.quadTo(SkBits2Float(0x4197abf4), SkBits2Float(0xc21f35d0), SkBits2Float(0x4 180b5d0), SkBits2Float(0xc21895f6)); 1652 path.quadTo(SkBits2Float(0x4197abf4), SkBits2Float(0xc21f35d0), SkBits2Float(0x4 180b5d0), SkBits2Float(0xc21895f6));
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 path.quadTo(SkBits2Float(0x42581210), SkBits2Float(0x4110b128), SkBits2Float(0x4 24dc3b4), SkBits2Float(0x41320868)); 2191 path.quadTo(SkBits2Float(0x42581210), SkBits2Float(0x4110b128), SkBits2Float(0x4 24dc3b4), SkBits2Float(0x41320868));
2191 path.quadTo(SkBits2Float(0x4243755a), SkBits2Float(0x41535fa6), SkBits2Float(0x4 23646ec), SkBits2Float(0x414dcc96)); 2192 path.quadTo(SkBits2Float(0x4243755a), SkBits2Float(0x41535fa6), SkBits2Float(0x4 23646ec), SkBits2Float(0x414dcc96));
2192 path.quadTo(SkBits2Float(0x4229187e), SkBits2Float(0x41483989), SkBits2Float(0x4 220c2ae), SkBits2Float(0x411f001d)); 2193 path.quadTo(SkBits2Float(0x4229187e), SkBits2Float(0x41483989), SkBits2Float(0x4 220c2ae), SkBits2Float(0x411f001d));
2193 path.quadTo(SkBits2Float(0x42186cde), SkBits2Float(0x40eb8d66), SkBits2Float(0x4 219d1a2), SkBits2Float(0x408219f4)); 2194 path.quadTo(SkBits2Float(0x42186cde), SkBits2Float(0x40eb8d66), SkBits2Float(0x4 219d1a2), SkBits2Float(0x408219f4));
2194 path.quadTo(SkBits2Float(0x421b3666), SkBits2Float(0x3f453420), SkBits2Float(0x4 22584c1), SkBits2Float(0xbfa81fe0)); 2195 path.quadTo(SkBits2Float(0x421b3666), SkBits2Float(0x3f453420), SkBits2Float(0x4 22584c1), SkBits2Float(0xbfa81fe0));
2195 path.quadTo(SkBits2Float(0x422fd31c), SkBits2Float(0xc0596cf0), SkBits2Float(0x4 23d018a), SkBits2Float(0xc04320b0)); 2196 path.quadTo(SkBits2Float(0x422fd31c), SkBits2Float(0xc0596cf0), SkBits2Float(0x4 23d018a), SkBits2Float(0xc04320b0));
2196 path.quadTo(SkBits2Float(0x424a2ff8), SkBits2Float(0xc02cd470), SkBits2Float(0x4 25285c7), SkBits2Float(0xbdfdd900)); 2197 path.quadTo(SkBits2Float(0x424a2ff8), SkBits2Float(0xc02cd470), SkBits2Float(0x4 25285c7), SkBits2Float(0xbdfdd900));
2197 path.close(); 2198 path.close();
2198 2199
2199 SkPath path2(path); 2200 SkPath path2(path);
2200 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 2201 testPathOpCheck(reporter, path1, path2, (SkPathOp) 2, filename, FLAGS_runFai l);
2201 } 2202 }
2202 2203
2203 static void fuzz763_2674194(skiatest::Reporter* reporter, const char* filename) { 2204 static void fuzz763_2674194(skiatest::Reporter* reporter, const char* filename) {
2204 if (!FLAGS_runFail) { // FIXME: asserts in alignSpanState
2205 return;
2206 }
2207 SkPath path; 2205 SkPath path;
2208 path.setFillType((SkPath::FillType) 1); 2206 path.setFillType((SkPath::FillType) 1);
2209 path.moveTo(SkBits2Float(0xbfb16e10), SkBits2Float(0xc252733b)); 2207 path.moveTo(SkBits2Float(0xbfb16e10), SkBits2Float(0xc252733b));
2210 path.quadTo(SkBits2Float(0x3f91df50), SkBits2Float(0xc25b07b4), SkBits2Float(0x4 08e27f4), SkBits2Float(0xc259f3f8)); 2208 path.quadTo(SkBits2Float(0x3f91df50), SkBits2Float(0xc25b07b4), SkBits2Float(0x4 08e27f4), SkBits2Float(0xc259f3f8));
2211 path.quadTo(SkBits2Float(0x40f7d814), SkBits2Float(0xc258e03e), SkBits2Float(0x4 11e3df0), SkBits2Float(0xc24ec5d2)); 2209 path.quadTo(SkBits2Float(0x40f7d814), SkBits2Float(0xc258e03e), SkBits2Float(0x4 11e3df0), SkBits2Float(0xc24ec5d2));
2212 path.quadTo(SkBits2Float(0x41408fd4), SkBits2Float(0xc244ab67), SkBits2Float(0x4 13c40e6), SkBits2Float(0xc2377562)); 2210 path.quadTo(SkBits2Float(0x41408fd4), SkBits2Float(0xc244ab67), SkBits2Float(0x4 13c40e6), SkBits2Float(0xc2377562));
2213 path.quadTo(SkBits2Float(0x4137f1f8), SkBits2Float(0xc22a3f5f), SkBits2Float(0x4 10f884c), SkBits2Float(0xc221aae6)); 2211 path.quadTo(SkBits2Float(0x4137f1f8), SkBits2Float(0xc22a3f5f), SkBits2Float(0x4 10f884c), SkBits2Float(0xc221aae6));
2214 path.quadTo(SkBits2Float(0x40ce3d3c), SkBits2Float(0xc219166c), SkBits2Float(0x4 0491a38), SkBits2Float(0xc21a2a28)); 2212 path.quadTo(SkBits2Float(0x40ce3d3c), SkBits2Float(0xc219166c), SkBits2Float(0x4 0491a38), SkBits2Float(0xc21a2a28));
2215 path.quadTo(SkBits2Float(0xbe246080), SkBits2Float(0xc21b3de4), SkBits2Float(0xc 0138d98), SkBits2Float(0xc225584f)); 2213 path.quadTo(SkBits2Float(0xbe246080), SkBits2Float(0xc21b3de4), SkBits2Float(0xc 0138d98), SkBits2Float(0xc225584f));
2216 path.quadTo(SkBits2Float(0xc08e6a98), SkBits2Float(0xc22f72ba), SkBits2Float(0xc 085ccbc), SkBits2Float(0xc23ca8be)); 2214 path.quadTo(SkBits2Float(0xc08e6a98), SkBits2Float(0xc22f72ba), SkBits2Float(0xc 085ccbc), SkBits2Float(0xc23ca8be));
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
2389 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3)); // 25, 29.6863f, 27.3431f, 27.3431f 2387 path.quadTo(SkBits2Float(0x41c80000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 1dabec3), SkBits2Float(0x41dabec3)); // 25, 29.6863f, 27.3431f, 27.3431f
2390 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000)); // 29.6863f, 25, 33, 25 2388 path.quadTo(SkBits2Float(0x41ed7d86), SkBits2Float(0x41c80000), SkBits2Float(0x4 2040000), SkBits2Float(0x41c80000)); // 29.6863f, 25, 33, 25
2391 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3)); // 36.3137f, 25, 38.6569f, 27.3431f 2389 path.quadTo(SkBits2Float(0x4211413d), SkBits2Float(0x41c80000), SkBits2Float(0x4 21aa09e), SkBits2Float(0x41dabec3)); // 36.3137f, 25, 38.6569f, 27.3431f
2392 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000)); // 41, 29.6863f, 41, 33 2390 path.quadTo(SkBits2Float(0x42240000), SkBits2Float(0x41ed7d86), SkBits2Float(0x4 2240000), SkBits2Float(0x42040000)); // 41, 29.6863f, 41, 33
2393 path.close(); 2391 path.close();
2394 2392
2395 SkPath path2(path); 2393 SkPath path2(path);
2396 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename); 2394 testPathOp(reporter, path1, path2, (SkPathOp) 2, filename);
2397 } 2395 }
2398 2396
2397 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
2399 static void (*firstTest)(skiatest::Reporter* , const char* filename) = fuzz763_2 674194; 2398 static void (*firstTest)(skiatest::Reporter* , const char* filename) = fuzz763_2 674194;
2400 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; 2399 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
2401 2400
2402 static struct TestDesc tests[] = { 2401 static struct TestDesc tests[] = {
2403 TEST(fuzz763_10022998), 2402 TEST(fuzz763_10022998),
2404 TEST(fuzz763_2674194), 2403 TEST(fuzz763_2674194),
2405 TEST(fuzz763_5485218), 2404 TEST(fuzz763_5485218),
2406 TEST(fuzz763_1026368), 2405 TEST(fuzz763_1026368),
2407 TEST(fuzz763_3283699), 2406 TEST(fuzz763_3283699),
2408 TEST(fuzz763_6411089), 2407 TEST(fuzz763_6411089),
(...skipping 24 matching lines...) Expand all
2433 }; 2432 };
2434 2433
2435 static const size_t testCount = SK_ARRAY_COUNT(tests); 2434 static const size_t testCount = SK_ARRAY_COUNT(tests);
2436 2435
2437 static bool runReverse = false; 2436 static bool runReverse = false;
2438 2437
2439 DEF_TEST(PathOpsFuzz763, reporter) { 2438 DEF_TEST(PathOpsFuzz763, reporter) {
2440 #if DEBUG_SHOW_TEST_NAME 2439 #if DEBUG_SHOW_TEST_NAME
2441 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 2440 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
2442 #endif 2441 #endif
2443 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); 2442 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse);
2444 } 2443 }
OLDNEW
« no previous file with comments | « tests/PathOpsExtendedTest.cpp ('k') | tests/PathOpsInverseTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698