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

Side by Side Diff: tests/PathOpsOpTest.cpp

Issue 2250573003: fix fuzz bug (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: another fuzz fix Created 4 years, 4 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 | « src/pathops/SkPathOpsTSect.h ('k') | no next file » | 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 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 7178 matching lines...) Expand 10 before | Expand all | Expand 10 after
7189 path.lineTo(SkBits2Float(0x73737300), SkBits2Float(0x73735273)); // 1.9288e+31f , 1.9278e+31f 7189 path.lineTo(SkBits2Float(0x73737300), SkBits2Float(0x73735273)); // 1.9288e+31f , 1.9278e+31f
7190 path.close(); 7190 path.close();
7191 path.moveTo(SkBits2Float(0x73737300), SkBits2Float(0x73735273)); // 1.9288e+31f , 1.9278e+31f 7191 path.moveTo(SkBits2Float(0x73737300), SkBits2Float(0x73735273)); // 1.9288e+31f , 1.9278e+31f
7192 path.cubicTo(SkBits2Float(0x299e9e9e), SkBits2Float(0xecececec), SkBits2Float(0x ececb6ec), SkBits2Float(0xf0ececec), SkBits2Float(0x0000ecec), SkBits2Float(0x9e be6e6e)); // 7.04413e-14f, -2.2914e+27f, -2.28936e+27f, -5.86599e+29f, 8.49916e -41f, -2.01627e-20f 7192 path.cubicTo(SkBits2Float(0x299e9e9e), SkBits2Float(0xecececec), SkBits2Float(0x ececb6ec), SkBits2Float(0xf0ececec), SkBits2Float(0x0000ecec), SkBits2Float(0x9e be6e6e)); // 7.04413e-14f, -2.2914e+27f, -2.28936e+27f, -5.86599e+29f, 8.49916e -41f, -2.01627e-20f
7193 path.cubicTo(SkBits2Float(0x9e9e9e9e), SkBits2Float(0xe8009e9e), SkBits2Float(0x 9e9e9e9e), SkBits2Float(0xecec9e9e), SkBits2Float(0xec3333ec), SkBits2Float(0xec ecf0ec)); // -1.67945e-20f, -2.42956e+24f, -1.67945e-20f, -2.28844e+27f, -8.665 72e+26f, -2.29155e+27f 7193 path.cubicTo(SkBits2Float(0x9e9e9e9e), SkBits2Float(0xe8009e9e), SkBits2Float(0x 9e9e9e9e), SkBits2Float(0xecec9e9e), SkBits2Float(0xec3333ec), SkBits2Float(0xec ecf0ec)); // -1.67945e-20f, -2.42956e+24f, -1.67945e-20f, -2.28844e+27f, -8.665 72e+26f, -2.29155e+27f
7194 7194
7195 SkPath path2(path); 7195 SkPath path2(path);
7196 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 2, filename); 7196 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 2, filename);
7197 } 7197 }
7198 7198
7199 static void fuzz763_25(skiatest::Reporter* reporter, const char* filename) {
7200 SkPath path;
7201 path.setFillType((SkPath::FillType) 1);
7202 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x6a4b7bc4)); // 0, 6.14991e +25f
7203 path.conicTo(SkBits2Float(0x653140d9), SkBits2Float(0x6a4b4f74), SkBits2Float(0x 65906630), SkBits2Float(0x6a25a070), SkBits2Float(0x3f6728a2)); // 5.23159e+22f , 6.14468e+25f, 8.52382e+22f, 5.00576e+25f, 0.902964f
7204 path.cubicTo(SkBits2Float(0x68295bc5), SkBits2Float(0x00000000), SkBits2Float(0x 682958ff), SkBits2Float(0x00000000), SkBits2Float(0x68286829), SkBits2Float(0x00 000000)); // 3.19909e+24f, 0, 3.19889e+24f, 0, 3.18112e+24f, 0
7205 path.lineTo(SkBits2Float(0x68555b29), SkBits2Float(0x00000000)); // 4.03018e+24 f, 0
7206 path.conicTo(SkBits2Float(0x00000000), SkBits2Float(0x682d2927), SkBits2Float(0x 00000000), SkBits2Float(0x00000000), SkBits2Float(0x6829686f)); // 0, 3.27091e+ 24f, 0, 0, 3.20003e+24f
7207 path.lineTo(SkBits2Float(0xdf218a28), SkBits2Float(0x00000000)); // -1.16402e+1 9f, 0
7208 path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x6a4b7bc4)); // 0, 6.14991e +25f
7209 path.close();
7210 path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0
7211 path.conicTo(SkBits2Float(0x6642c40c), SkBits2Float(0x00000000), SkBits2Float(0x 65906630), SkBits2Float(0x6a25a070), SkBits2Float(0x3edcd74d)); // 2.29939e+23f , 0, 8.52382e+22f, 5.00576e+25f, 0.43133f
7212 path.conicTo(SkBits2Float(0x68295afa), SkBits2Float(0x00000000), SkBits2Float(0x 00000000), SkBits2Float(0x00000000), SkBits2Float(0x4277a57b)); // 3.19903e+24f , 0, 0, 0, 61.9116f
7213 path.close();
7214
7215 SkPath path1(path);
7216 path.reset();
7217 path.setFillType((SkPath::FillType) 0);
7218
7219 SkPath path2(path);
7220 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 4, filename);
7221 }
7222
7223
7224 static void fuzz763_26(skiatest::Reporter* reporter, const char* filename) {
7225 SkPath path;
7226 path.setFillType((SkPath::FillType) 0);
7227
7228 SkPath path1(path);
7229 path.reset();
7230 path.setFillType((SkPath::FillType) 0);
7231 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0x555b2d29)); // 4.03114e+24 f, 1.50617e+13f
7232 path.moveTo(SkBits2Float(0x1f2a312a), SkBits2Float(0xc003210a)); // 3.60396e-20 f, -2.04889f
7233 path.cubicTo(SkBits2Float(0x68372d55), SkBits2Float(0xf05b684b), SkBits2Float(0x 8c55272d), SkBits2Float(0x212a292a), SkBits2Float(0x0321082a), SkBits2Float(0x6a 4b7bc0)); // 3.46012e+24f, -2.71613e+29f, -1.64207e-31f, 5.76527e-19f, 4.7323e- 37f, 6.14991e+25f
7234 path.conicTo(SkBits2Float(0x212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x 6a4b7bc0), SkBits2Float(0x2829ed84), SkBits2Float(0x69555b2d)); // 5.77848e-19f , 4.7323e-37f, 6.14991e+25f, 9.43289e-15f, 1.61207e+25f
7235 path.moveTo(SkBits2Float(0x68315b2d), SkBits2Float(0xf0682955)); // 3.35016e+24 f, -2.87402e+29f
7236 path.conicTo(SkBits2Float(0x212a1f5b), SkBits2Float(0x8cef552a), SkBits2Float(0x 295b2d2a), SkBits2Float(0x68210368), SkBits2Float(0x7bc05508)); // 5.76397e-19f , -3.6875e-31f, 4.86669e-14f, 3.04146e+24f, 1.99729e+36f
7237 path.lineTo(SkBits2Float(0x68315b2d), SkBits2Float(0xf0682955)); // 3.35016e+24 f, -2.87402e+29f
7238 path.close();
7239 path.moveTo(SkBits2Float(0x68315b2d), SkBits2Float(0xf0682955)); // 3.35016e+24 f, -2.87402e+29f
7240 path.lineTo(SkBits2Float(0x5b2c6829), SkBits2Float(0x212a8c55)); // 4.85282e+16 f, 5.7784e-19f
7241 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a4b7bc0)); // 4.7323e-37f , 6.14991e+25f
7242 path.conicTo(SkBits2Float(0x68385b2d), SkBits2Float(0x555bf055), SkBits2Float(0x 2a1f2a8c), SkBits2Float(0x03212121), SkBits2Float(0x5a4b7bc0)); // 3.48239e+24f , 1.51141e+13f, 1.41368e-13f, 4.73517e-37f, 1.43189e+16f
7243 path.conicTo(SkBits2Float(0xc08c2aed), SkBits2Float(0x211f2108), SkBits2Float(0x 6a4b7b03), SkBits2Float(0x6829ed27), SkBits2Float(0x2d555b2d)); // -4.38024f, 5 .3915e-19f, 6.14982e+25f, 3.20982e+24f, 1.21279e-11f
7244 path.moveTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7245 path.conicTo(SkBits2Float(0x2a8c555b), SkBits2Float(0x6e2a1f72), SkBits2Float(0x 0321082a), SkBits2Float(0x6a4b7bc0), SkBits2Float(0x4793ed7a)); // 2.49282e-13f , 1.31626e+28f, 4.7323e-37f, 6.14991e+25f, 75739
7246 path.lineTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7247 path.close();
7248 path.moveTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7249 path.quadTo(SkBits2Float(0x2128282a), SkBits2Float(0x3a8a3adf), SkBits2Float(0x8 a284f1a), SkBits2Float(0x2c213ab3)); // 5.69738e-19f, 0.00105461f, -8.10378e-33 f, 2.29121e-12f
7250 path.lineTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7251 path.close();
7252 path.moveTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7253 path.quadTo(SkBits2Float(0x1d2a2928), SkBits2Float(0x43962be6), SkBits2Float(0x3 a2a812a), SkBits2Float(0x2127ed29)); // 2.25206e-21f, 300.343f, 0.000650423f, 5 .68957e-19f
7254 path.conicTo(SkBits2Float(0x03210831), SkBits2Float(0x6a4b7bc0), SkBits2Float(0x 6829ed27), SkBits2Float(0x55555b2d), SkBits2Float(0x1e2a3a2a)); // 4.73231e-37f , 6.14991e+25f, 3.20982e+24f, 1.46617e+13f, 9.01175e-21f
7255 path.conicTo(SkBits2Float(0x27202140), SkBits2Float(0x3a3b2769), SkBits2Float(0x c4371f20), SkBits2Float(0xecc52a22), SkBits2Float(0x21512727)); // 2.22225e-15f , 0.000713936f, -732.486f, -1.90686e+27f, 7.08638e-19f
7256 path.lineTo(SkBits2Float(0x68355b2d), SkBits2Float(0xf0685527)); // 3.42572e+24 f, -2.87614e+29f
7257 path.close();
7258 path.moveTo(SkBits2Float(0x6829523a), SkBits2Float(0x2d555b2d)); // 3.19839e+24 f, 1.21279e-11f
7259 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0x5b2d5529)); // 4.03114e+24 f, 4.87888e+16f
7260 path.moveTo(SkBits2Float(0x1f2a322a), SkBits2Float(0xc0032108)); // 3.60404e-20 f, -2.04889f
7261 path.cubicTo(SkBits2Float(0x68572d55), SkBits2Float(0xf05bd24b), SkBits2Float(0x 8c55272d), SkBits2Float(0x212a292a), SkBits2Float(0x0321082a), SkBits2Float(0xed 4b7bc0)); // 4.06458e+24f, -2.72126e+29f, -1.64207e-31f, 5.76527e-19f, 4.7323e- 37f, -3.93594e+27f
7262 path.conicTo(SkBits2Float(0x212a8c6a), SkBits2Float(0x0329081f), SkBits2Float(0x 6a4b7bc0), SkBits2Float(0x2829ed84), SkBits2Float(0x2d555b2d)); // 5.77841e-19f , 4.9674e-37f, 6.14991e+25f, 9.43289e-15f, 1.21279e-11f
7263 path.moveTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7264 path.conicTo(SkBits2Float(0x212a1f5b), SkBits2Float(0x8cef552a), SkBits2Float(0x 295b2d2a), SkBits2Float(0x68210368), SkBits2Float(0x7bc05508)); // 5.76397e-19f , -3.6875e-31f, 4.86669e-14f, 3.04146e+24f, 1.99729e+36f
7265 path.lineTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7266 path.close();
7267 path.moveTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7268 path.lineTo(SkBits2Float(0x555b1b29), SkBits2Float(0x6c212a8c)); // 1.50569e+13 f, 7.79352e+26f
7269 path.conicTo(SkBits2Float(0x084b0321), SkBits2Float(0x6ac07b2a), SkBits2Float(0x 395b2d7a), SkBits2Float(0x8c5bf055), SkBits2Float(0x1f212a3a)); // 6.10918e-34f , 1.16348e+26f, 0.000209024f, -1.69435e-31f, 3.4128e-20f
7270 path.conicTo(SkBits2Float(0x290321d9), SkBits2Float(0x555b2d68), SkBits2Float(0x 2a8c558c), SkBits2Float(0x2a212a1f), SkBits2Float(0x7bc00321)); // 2.91172e-14f , 1.50618e+13f, 2.49284e-13f, 1.43143e-13f, 1.99397e+36f
7271 path.lineTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7272 path.close();
7273 path.moveTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7274 path.lineTo(SkBits2Float(0x8c2aed7a), SkBits2Float(0x1f2128c0)); // -1.31678e-3 1f, 3.41268e-20f
7275 path.lineTo(SkBits2Float(0x68385b2d), SkBits2Float(0xf0682955)); // 3.48239e+24 f, -2.87402e+29f
7276 path.close();
7277
7278 SkPath path2(path);
7279 testPathOpFailSkipAssert(reporter, path1, path2, (SkPathOp) 0, filename);
7280 }
7281
7199 static struct TestDesc failTests[] = { 7282 static struct TestDesc failTests[] = {
7283 TEST(fuzz763_26),
7284 TEST(fuzz763_25),
7285 TEST(fuzz763_24),
7200 TEST(fuzz763_23), 7286 TEST(fuzz763_23),
7201 TEST(fuzz763_24),
7202 TEST(fuzz763_22), 7287 TEST(fuzz763_22),
7203 TEST(fuzz763_21), 7288 TEST(fuzz763_21),
7204 TEST(fuzz763_20), 7289 TEST(fuzz763_20),
7205 TEST(fuzz763_19), 7290 TEST(fuzz763_19),
7206 TEST(fuzz763_18), 7291 TEST(fuzz763_18),
7207 TEST(fuzz763_17), 7292 TEST(fuzz763_17),
7208 TEST(fuzz763_16), 7293 TEST(fuzz763_16),
7209 TEST(fuzz763_15), 7294 TEST(fuzz763_15),
7210 TEST(fuzz763_14), 7295 TEST(fuzz763_14),
7211 TEST(fuzz763_13), 7296 TEST(fuzz763_13),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
7254 static struct TestDesc repTests[] = { 7339 static struct TestDesc repTests[] = {
7255 TEST(loops44i), 7340 TEST(loops44i),
7256 TEST(loops45i), 7341 TEST(loops45i),
7257 TEST(loops46i), 7342 TEST(loops46i),
7258 }; 7343 };
7259 7344
7260 DEF_TEST(PathOpsRepOp, reporter) { 7345 DEF_TEST(PathOpsRepOp, reporter) {
7261 for (int index = 0; index < 2; ++index) 7346 for (int index = 0; index < 2; ++index)
7262 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n ullptr, false); 7347 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n ullptr, false);
7263 } 7348 }
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsTSect.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698