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

Side by Side Diff: tests/PathOpsOpTest.cpp

Issue 2185703002: fix fuzz bugs (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 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 | « tests/PathOpsDebug.cpp ('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 6647 matching lines...) Expand 10 before | Expand all | Expand 10 after
6658 path.cubicTo(SkBits2Float(0x12102a10), SkBits2Float(0xe73a28d9), SkBits2Float(0x c8092763), SkBits2Float(0x2927b029), SkBits2Float(0x295b2d27), SkBits2Float(0x2d 685568)); // 4.54902e-28f, -8.79114e+23f, -140446, 3.72342e-14f, 4.86669e-14f, 1.32066e-11f 6658 path.cubicTo(SkBits2Float(0x12102a10), SkBits2Float(0xe73a28d9), SkBits2Float(0x c8092763), SkBits2Float(0x2927b029), SkBits2Float(0x295b2d27), SkBits2Float(0x2d 685568)); // 4.54902e-28f, -8.79114e+23f, -140446, 3.72342e-14f, 4.86669e-14f, 1.32066e-11f
6659 path.moveTo(SkBits2Float(0x68556809), SkBits2Float(0x555b2d29)); // 4.03113e+24 f, 1.50617e+13f 6659 path.moveTo(SkBits2Float(0x68556809), SkBits2Float(0x555b2d29)); // 4.03113e+24 f, 1.50617e+13f
6660 path.moveTo(SkBits2Float(0x1f2a212a), SkBits2Float(0x2d032108)); // 3.60263e-20 f, 7.45382e-12f 6660 path.moveTo(SkBits2Float(0x1f2a212a), SkBits2Float(0x2d032108)); // 3.60263e-20 f, 7.45382e-12f
6661 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0x2a552d29)); // 4.03114e+24 f, 1.89339e-13f 6661 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0x2a552d29)); // 4.03114e+24 f, 1.89339e-13f
6662 path.cubicTo(SkBits2Float(0x21295b2d), SkBits2Float(0x2a528c5b), SkBits2Float(0x 284f5b2d), SkBits2Float(0x218aa621), SkBits2Float(0x3f2d2db3), SkBits2Float(0x68 293a2a)); // 5.73801e-19f, 1.87004e-13f, 1.15106e-14f, 9.39522e-19f, 0.676479f, 3.19661e+24f 6662 path.cubicTo(SkBits2Float(0x21295b2d), SkBits2Float(0x2a528c5b), SkBits2Float(0x 284f5b2d), SkBits2Float(0x218aa621), SkBits2Float(0x3f2d2db3), SkBits2Float(0x68 293a2a)); // 5.73801e-19f, 1.87004e-13f, 1.15106e-14f, 9.39522e-19f, 0.676479f, 3.19661e+24f
6663 6663
6664 SkPath path2(path); 6664 SkPath path2(path);
6665 testPathOpFailSkipAssert(reporter, path1, path2, (SkPathOp) 0, filename); 6665 testPathOpFailSkipAssert(reporter, path1, path2, (SkPathOp) 0, filename);
6666 } 6666 }
6667 6667
6668 static void fuzz763_13(skiatest::Reporter* reporter, const char* filename) {
6669 SkPath path;
6670 path.setFillType((SkPath::FillType) 1);
6671
6672 SkPath path1(path);
6673 path.reset();
6674 path.setFillType((SkPath::FillType) 0);
6675 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6676 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x4793ed7a), SkBits2Float(0x 282a3a21), SkBits2Float(0x3adf2128), SkBits2Float(0x4f1a3a8a)); // 6.14991e+25f , 75739, 9.4495e-15f, 0.00170234f, 2.58753e+09f
6677 path.lineTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6678 path.close();
6679 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6680 path.cubicTo(SkBits2Float(0x3ac2213a), SkBits2Float(0x1d2a2928), SkBits2Float(0x 43962be6), SkBits2Float(0x272a8128), SkBits2Float(0x3a2a5529), SkBits2Float(0x3b 1e2ab0)); // 0.00148109f, 2.25206e-21f, 300.343f, 2.36623e-15f, 0.000649768f, 0 .00241343f
6681 path.lineTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6682 path.close();
6683 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6684 path.cubicTo(SkBits2Float(0x3b272927), SkBits2Float(0x381f203a), SkBits2Float(0x 2ac422c5), SkBits2Float(0xc25d27ec), SkBits2Float(0x3a705921), SkBits2Float(0x2a 105152)); // 0.00255067f, 3.79386e-05f, 3.48407e-13f, -55.289f, 0.000916855f, 1 .2818e-13f
6685 path.quadTo(SkBits2Float(0x633ad912), SkBits2Float(0x29c80927), SkBits2Float(0x2 72927b0), SkBits2Float(0x68295b2d)); // 3.44674e+21f, 8.88337e-14f, 2.3475e-15f , 3.19905e+24f
6686 path.lineTo(SkBits2Float(0x295b2d68), SkBits2Float(0x29685568)); // 4.86672e-14 f, 5.15884e-14f
6687 path.conicTo(SkBits2Float(0xaa8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x 5b2d0321), SkBits2Float(0x68556829), SkBits2Float(0x2a552d29)); // -2.49282e-13 f, 4.78968e-34f, 4.86986e+16f, 4.03114e+24f, 1.89339e-13f
6688 path.cubicTo(SkBits2Float(0x21295b2d), SkBits2Float(0x2a688c5b), SkBits2Float(0x 6829292d), SkBits2Float(0x2d296855), SkBits2Float(0x8c08555b), SkBits2Float(0x2a 2a291f)); // 5.73801e-19f, 2.06544e-13f, 3.19536e+24f, 9.6297e-12f, -1.05027e-3 1f, 1.51133e-13f
6689 path.conicTo(SkBits2Float(0x68295b21), SkBits2Float(0x2d296855), SkBits2Float(0x 2a8c555b), SkBits2Float(0x081f2a21), SkBits2Float(0x7bc00321)); // 3.19904e+24f , 9.6297e-12f, 2.49282e-13f, 4.78968e-34f, 1.99397e+36f
6690 path.lineTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6691 path.close();
6692 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6693 path.lineTo(SkBits2Float(0x5b2d6829), SkBits2Float(0x212a8c55)); // 4.88097e+16 f, 5.7784e-19f
6694 path.conicTo(SkBits2Float(0x8ced7aba), SkBits2Float(0x3f2a212a), SkBits2Float(0x 2d212d08), SkBits2Float(0x5568295b), SkBits2Float(0x29685b2d)); // -3.65895e-31 f, 0.664569f, 9.16179e-12f, 1.5954e+13f, 5.15934e-14f
6695 path.lineTo(SkBits2Float(0x68295b68), SkBits2Float(0x2d296855)); // 3.19906e+24 f, 9.6297e-12f
6696 path.moveTo(SkBits2Float(0x212a8c55), SkBits2Float(0x21081f2a)); // 5.7784e-19f , 4.61198e-19f
6697 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x2a8ced7a), SkBits2Float(0x 21081f21), SkBits2Float(0x6aba7b03), SkBits2Float(0x2147ed7a)); // 6.14991e+25f , 2.50338e-13f, 4.61198e-19f, 1.12721e+26f, 6.77381e-19f
6698 path.quadTo(SkBits2Float(0x6028282a), SkBits2Float(0x68292ddf), SkBits2Float(0x5 b2d555b), SkBits2Float(0x68556829)); // 4.84679e+19f, 3.1957e+24f, 4.8789e+16f, 4.03114e+24f
6699
6700 SkPath path2(path);
6701 testPathOp(reporter, path1, path2, (SkPathOp) 4, filename);
6702 }
6703
6704 static void fuzz763_14(skiatest::Reporter* reporter, const char* filename) {
6705 SkPath path;
6706 path.setFillType((SkPath::FillType) 0);
6707
6708 SkPath path1(path);
6709 path.reset();
6710 path.setFillType((SkPath::FillType) 0);
6711 path.moveTo(SkBits2Float(0x68556829), SkBits2Float(0xf45b2d29)); // 4.03114e+24 f, -6.94598e+31f
6712 path.moveTo(SkBits2Float(0x1f2a302a), SkBits2Float(0xc8032108)); // 3.60387e-20 f, -134276
6713 path.cubicTo(SkBits2Float(0x68392d55), SkBits2Float(0xf0db684b), SkBits2Float(0x 8c55272d), SkBits2Float(0x212a292a), SkBits2Float(0x302a5b25), SkBits2Float(0xf0 685568)); // 3.4979e+24f, -5.43226e+29f, -1.64207e-31f, 5.76527e-19f, 6.19752e- 10f, -2.87615e+29f
6714
6715 SkPath path2(path);
6716 testPathOpSkipAssert(reporter, path1, path2, (SkPathOp) 0, filename);
6717 }
6718
6719 static void fuzz763_15(skiatest::Reporter* reporter, const char* filename) {
6720 SkPath path;
6721 path.setFillType((SkPath::FillType) 1);
6722
6723 SkPath path1(path);
6724 path.reset();
6725 path.setFillType((SkPath::FillType) 0);
6726 path.moveTo(SkBits2Float(0x5b292d55), SkBits2Float(0x212a8c55)); // 4.76191e+16 f, 5.7784e-19f
6727 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a6b7bc4)); // 4.7323e-37f , 7.11705e+25f
6728 path.conicTo(SkBits2Float(0x212a8ced), SkBits2Float(0x0321081f), SkBits2Float(0x 2c6829c0), SkBits2Float(0x2a8c555b), SkBits2Float(0x081f2a29)); // 5.77848e-19f , 4.7323e-37f, 3.29924e-12f, 2.49282e-13f, 4.78969e-34f
6729 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a6b7bc4)); // 4.7323e-37f , 7.11705e+25f
6730 path.close();
6731 path.moveTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a6b7bc4)); // 4.7323e-37f , 7.11705e+25f
6732 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x4793ed7a), SkBits2Float(0x 282a3a21), SkBits2Float(0xdf218a28), SkBits2Float(0x4f1a3a3a)); // 6.14991e+25f , 75739, 9.4495e-15f, -1.16402e+19f, 2.58751e+09f
6733 path.quadTo(SkBits2Float(0x3ab38a28), SkBits2Float(0x283ac221), SkBits2Float(0xe 6432a29), SkBits2Float(0x2a96812b)); // 0.00136978f, 1.03672e-14f, -2.3041e+23f , 2.6735e-13f
6734 path.lineTo(SkBits2Float(0x5529272a), SkBits2Float(0x1eb03a2a)); // 1.16241e+13 f, 1.86588e-20f
6735 path.conicTo(SkBits2Float(0x2a272021), SkBits2Float(0x3ac52729), SkBits2Float(0x c422313b), SkBits2Float(0xec2a201f), SkBits2Float(0x21c25d27)); // 1.48437e-13f , 0.00150416f, -648.769f, -8.22676e+26f, 1.31706e-18f
6736 path.lineTo(SkBits2Float(0x0321081f), SkBits2Float(0x6a6b7bc4)); // 4.7323e-37f , 7.11705e+25f
6737 path.close();
6738 path.moveTo(SkBits2Float(0x1051523a), SkBits2Float(0xd912102a)); // 4.12813e-29 f, -2.56957e+15f
6739 path.close();
6740 path.moveTo(SkBits2Float(0x1051523a), SkBits2Float(0xd912102a)); // 4.12813e-29 f, -2.56957e+15f
6741 path.quadTo(SkBits2Float(0xc82763e7), SkBits2Float(0x2927b029), SkBits2Float(0x2 95b2d27), SkBits2Float(0x2d685568)); // -171408, 3.72342e-14f, 4.86669e-14f, 1. 32066e-11f
6742 path.moveTo(SkBits2Float(0x68556809), SkBits2Float(0x8c555b2d)); // 4.03113e+24 f, -1.64364e-31f
6743 path.moveTo(SkBits2Float(0x081f2a21), SkBits2Float(0x252d0321)); // 4.78968e-34 f, 1.50064e-16f
6744 path.moveTo(SkBits2Float(0x5568392a), SkBits2Float(0x5b2df068)); // 1.59583e+13 f, 4.89595e+16f
6745 path.quadTo(SkBits2Float(0x2a1f2a8c), SkBits2Float(0x21482a21), SkBits2Float(0x4 b7bc003), SkBits2Float(0x8ced3a6a)); // 1.41368e-13f, 6.78184e-19f, 1.64987e+07 f, -3.65508e-31f
6746 path.moveTo(SkBits2Float(0x21481f21), SkBits2Float(0x4b7bc003)); // 6.78038e-19 f, 1.64987e+07f
6747 path.conicTo(SkBits2Float(0x6829ed27), SkBits2Float(0x2d155b2d), SkBits2Float(0x 5568295b), SkBits2Float(0x5b2d2968), SkBits2Float(0x2a8c8f55)); // 3.20982e+24f , 8.48991e-12f, 1.5954e+13f, 4.87407e+16f, 2.49685e-13f
6748 path.lineTo(SkBits2Float(0x21481f21), SkBits2Float(0x4b7bc003)); // 6.78038e-19 f, 1.64987e+07f
6749 path.close();
6750 path.moveTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6751 path.conicTo(SkBits2Float(0x682d2fed), SkBits2Float(0x755b6829), SkBits2Float(0x 5b292d2b), SkBits2Float(0xc92a8c55), SkBits2Float(0x081f2a21)); // 3.27141e+24f , 2.78131e+32f, 4.76189e+16f, -698565, 4.78968e-34f
6752 path.lineTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6753 path.close();
6754 path.moveTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6755 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x212aed7a), SkBits2Float(0x 0321081f), SkBits2Float(0x293a7bc0), SkBits2Float(0x2147ed7a)); // 6.14991e+25f , 5.79125e-19f, 4.7323e-37f, 4.14076e-14f, 6.77381e-19f
6756 path.quadTo(SkBits2Float(0x6829682d), SkBits2Float(0x292d555b), SkBits2Float(0x2 92a8c55), SkBits2Float(0x21081f2a)); // 3.20001e+24f, 3.84878e-14f, 3.78693e-14 f, 4.61198e-19f
6757 path.conicTo(SkBits2Float(0x6a4b7bc0), SkBits2Float(0x218ced7a), SkBits2Float(0x 0321081f), SkBits2Float(0x6a3a7bc0), SkBits2Float(0x47ed3a7a)); // 6.14991e+25f , 9.54963e-19f, 4.7323e-37f, 5.63611e+25f, 121461
6758 path.lineTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6759 path.close();
6760 path.moveTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6761 path.quadTo(SkBits2Float(0x282a282a), SkBits2Float(0x8a3a21df), SkBits2Float(0x2 728282a), SkBits2Float(0x8a3a21df)); // 9.4456e-15f, -8.96194e-33f, 2.33365e-15 f, -8.96194e-33f
6762 path.quadTo(SkBits2Float(0x8a284f9a), SkBits2Float(0x3a3ac2b3), SkBits2Float(0x2 a292827), SkBits2Float(0x962be61d)); // -8.10388e-33f, 0.000712435f, 1.50241e-1 3f, -1.38859e-25f
6763 path.lineTo(SkBits2Float(0x272a802a), SkBits2Float(0x2a8c2d29)); // 2.36617e-15 f, 2.49003e-13f
6764 path.lineTo(SkBits2Float(0xc021211f), SkBits2Float(0x6a4b7b03)); // -2.51765f, 6.14982e+25f
6765 path.close();
6766 path.moveTo(SkBits2Float(0x4f9a3a29), SkBits2Float(0x3ab38a28)); // 5.17501e+09 f, 0.00136978f
6767 path.quadTo(SkBits2Float(0xc368305b), SkBits2Float(0x5b296855), SkBits2Float(0x2 d8c5568), SkBits2Float(0x1f2a2172)); // -232.189f, 4.7684e+16f, 1.59541e-11f, 3 .60266e-20f
6768 path.lineTo(SkBits2Float(0x29c00321), SkBits2Float(0x5b4b7b13)); // 8.52706e-14 f, 5.72747e+16f
6769
6770 SkPath path2(path);
6771 testPathOpFailSkipAssert(reporter, path1, path2, (SkPathOp) 4, filename);
6772 }
6773
6668 static struct TestDesc failTests[] = { 6774 static struct TestDesc failTests[] = {
6775 TEST(fuzz763_15),
6776 TEST(fuzz763_14),
6777 TEST(fuzz763_13),
6669 TEST(fuzz763_12), 6778 TEST(fuzz763_12),
6670 TEST(fuzz763_11), 6779 TEST(fuzz763_11),
6671 TEST(fuzz763_10), 6780 TEST(fuzz763_10),
6672 TEST(kfuzz2), 6781 TEST(kfuzz2),
6673 TEST(fuzz763_7), 6782 TEST(fuzz763_7),
6674 TEST(fuzz763_6), 6783 TEST(fuzz763_6),
6675 TEST(fuzz763_2c), 6784 TEST(fuzz763_2c),
6676 TEST(fuzz763_2b), 6785 TEST(fuzz763_2b),
6677 TEST(fuzz763_2a), 6786 TEST(fuzz763_2a),
6678 TEST(fuzz763_5a), 6787 TEST(fuzz763_5a),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
6711 static struct TestDesc repTests[] = { 6820 static struct TestDesc repTests[] = {
6712 TEST(loops44i), 6821 TEST(loops44i),
6713 TEST(loops45i), 6822 TEST(loops45i),
6714 TEST(loops46i), 6823 TEST(loops46i),
6715 }; 6824 };
6716 6825
6717 DEF_TEST(PathOpsRepOp, reporter) { 6826 DEF_TEST(PathOpsRepOp, reporter) {
6718 for (int index = 0; index < 2; ++index) 6827 for (int index = 0; index < 2; ++index)
6719 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n ullptr, false); 6828 RunTestSet(reporter, repTests, SK_ARRAY_COUNT(repTests), nullptr, nullptr, n ullptr, false);
6720 } 6829 }
OLDNEW
« no previous file with comments | « tests/PathOpsDebug.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698