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

Side by Side Diff: tests/PathOpsIssue3651.cpp

Issue 2128633003: pathops coincidence and security rewrite (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: require resulting t to be between 0 and 1 Created 4 years, 5 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
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 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 #endif 465 #endif
466 path.lineTo(SkBits2Float(0x43c02666), SkBits2Float(0x42823333)); // 384.3f, 65. 1f 466 path.lineTo(SkBits2Float(0x43c02666), SkBits2Float(0x42823333)); // 384.3f, 65. 1f
467 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65. 1f 467 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65. 1f
468 path.close(); 468 path.close();
469 return path; 469 return path;
470 } 470 }
471 471
472 static void issue3651_1a(skiatest::Reporter* reporter, const char* filename) { 472 static void issue3651_1a(skiatest::Reporter* reporter, const char* filename) {
473 SkPath path = path1_a(); 473 SkPath path = path1_a();
474 SkPath pathB = path2_a(); 474 SkPath pathB = path2_a();
475 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); 475 // DEBUG_UNDER_DEVELOPMENT issue3651_1a disable expectation check for now
476 testPathOpCheck(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename, !FLAGS_runFail);
476 } 477 }
477 478
478 static SkPath path3() { 479 static SkPath path3() {
479 SkPath path; 480 SkPath path;
480 path.moveTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5 f 481 path.moveTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5 f
481 path.lineTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5 f 482 path.lineTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5 f
482 path.cubicTo(SkBits2Float(0x42b1cccd), SkBits2Float(0x42bd0000), SkBits2Float(0x 42b33333), SkBits2Float(0x42bd2573), SkBits2Float(0x42b4999a), SkBits2Float(0x42 bd0000)); // 88.9f, 94.5f, 89.6f, 94.5731f, 90.3f, 94.5f 483 path.cubicTo(SkBits2Float(0x42b1cccd), SkBits2Float(0x42bd0000), SkBits2Float(0x 42b33333), SkBits2Float(0x42bd2573), SkBits2Float(0x42b4999a), SkBits2Float(0x42 bd0000)); // 88.9f, 94.5f, 89.6f, 94.5731f, 90.3f, 94.5f
483 path.cubicTo(SkBits2Float(0x42b60000), SkBits2Float(0x42bcda8d), SkBits2Float(0x 42b76666), SkBits2Float(0x42bc4598), SkBits2Float(0x42b8cccd), SkBits2Float(0x42 bc1f4b)); // 91, 94.4269f, 91.7f, 94.1359f, 92.4f, 94.0611f 484 path.cubicTo(SkBits2Float(0x42b60000), SkBits2Float(0x42bcda8d), SkBits2Float(0x 42b76666), SkBits2Float(0x42bc4598), SkBits2Float(0x42b8cccd), SkBits2Float(0x42 bc1f4b)); // 91, 94.4269f, 91.7f, 94.1359f, 92.4f, 94.0611f
484 path.cubicTo(SkBits2Float(0x42ba3333), SkBits2Float(0x42bbf8ff), SkBits2Float(0x 42bb999a), SkBits2Float(0x42bc1b9e), SkBits2Float(0x42bd0000), SkBits2Float(0x42 bc1a35)); // 93.1f, 93.9863f, 93.8f, 94.0539f, 94.5f, 94.0512f 485 path.cubicTo(SkBits2Float(0x42ba3333), SkBits2Float(0x42bbf8ff), SkBits2Float(0x 42bb999a), SkBits2Float(0x42bc1b9e), SkBits2Float(0x42bd0000), SkBits2Float(0x42 bc1a35)); // 93.1f, 93.9863f, 93.8f, 94.0539f, 94.5f, 94.0512f
485 path.cubicTo(SkBits2Float(0x42be6666), SkBits2Float(0x42bc18cb), SkBits2Float(0x 42bfcccd), SkBits2Float(0x42bc17f2), SkBits2Float(0x42c13333), SkBits2Float(0x42 bc16d0)); // 95.2f, 94.0484f, 95.9f, 94.0468f, 96.6f, 94.0446f 486 path.cubicTo(SkBits2Float(0x42be6666), SkBits2Float(0x42bc18cb), SkBits2Float(0x 42bfcccd), SkBits2Float(0x42bc17f2), SkBits2Float(0x42c13333), SkBits2Float(0x42 bc16d0)); // 95.2f, 94.0484f, 95.9f, 94.0468f, 96.6f, 94.0446f
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x42c99d06), SkBits2Float(0x 44042000), SkBits2Float(0x42c99bdf), SkBits2Float(0x44044ccd), SkBits2Float(0x42 c9999a)); // 527.8f, 100.807f, 528.5f, 100.804f, 529.2f, 100.8f 1196 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x42c99d06), SkBits2Float(0x 44042000), SkBits2Float(0x42c99bdf), SkBits2Float(0x44044ccd), SkBits2Float(0x42 c9999a)); // 527.8f, 100.807f, 528.5f, 100.804f, 529.2f, 100.8f
1196 path.lineTo(SkBits2Float(0x44044ccd), SkBits2Float(0x42c9999a)); // 529.2f, 100 .8f 1197 path.lineTo(SkBits2Float(0x44044ccd), SkBits2Float(0x42c9999a)); // 529.2f, 100 .8f
1197 path.lineTo(SkBits2Float(0x43dfa666), SkBits2Float(0x42c9999a)); // 447.3f, 100 .8f 1198 path.lineTo(SkBits2Float(0x43dfa666), SkBits2Float(0x42c9999a)); // 447.3f, 100 .8f
1198 path.close(); 1199 path.close();
1199 return path; 1200 return path;
1200 } 1201 }
1201 1202
1202 static void issue3651_1(skiatest::Reporter* reporter, const char* filename) { 1203 static void issue3651_1(skiatest::Reporter* reporter, const char* filename) {
1203 SkPath path = path1(); 1204 SkPath path = path1();
1204 SkPath pathB = path2(); 1205 SkPath pathB = path2();
1205 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); 1206 // DEBUG_UNDER_DEVELOPMENT issue3651_1 disable expectation check for now
1207 testPathOpCheck(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename, !FLAGS_runFail);
1206 } 1208 }
1207 1209
1208 static void issue3651_2(skiatest::Reporter* reporter, const char* filename) { 1210 static void issue3651_2(skiatest::Reporter* reporter, const char* filename) {
1209 SkPath path = path3(); 1211 SkPath path = path3();
1210 SkPath pathB = path4(); 1212 SkPath pathB = path4();
1211 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); 1213 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename);
1212 } 1214 }
1213 1215
1214 static void issue3651_3(skiatest::Reporter* reporter, const char* filename) { 1216 static void issue3651_3(skiatest::Reporter* reporter, const char* filename) {
1215 SkPath path = path5(); 1217 SkPath path = path5();
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1649 path.cubicTo(SkBits2Float(0x43795555), SkBits2Float(0x4295a806), SkBits2Float(0x 437a1111), SkBits2Float(0x42959dad), SkBits2Float(0x437acccd), SkBits2Float(0x42 95999a)); // 249.333f, 74.8282f, 250.067f, 74.808f, 250.8f, 74.8f 1651 path.cubicTo(SkBits2Float(0x43795555), SkBits2Float(0x4295a806), SkBits2Float(0x 437a1111), SkBits2Float(0x42959dad), SkBits2Float(0x437acccd), SkBits2Float(0x42 95999a)); // 249.333f, 74.8282f, 250.067f, 74.808f, 250.8f, 74.8f
1650 path.cubicTo(SkBits2Float(0x437b8889), SkBits2Float(0x42959588), SkBits2Float(0x 437c4444), SkBits2Float(0x4295999a), SkBits2Float(0x437d0000), SkBits2Float(0x42 95999a)); // 251.533f, 74.7921f, 252.267f, 74.8f, 253, 74.8f 1652 path.cubicTo(SkBits2Float(0x437b8889), SkBits2Float(0x42959588), SkBits2Float(0x 437c4444), SkBits2Float(0x4295999a), SkBits2Float(0x437d0000), SkBits2Float(0x42 95999a)); // 251.533f, 74.7921f, 252.267f, 74.8f, 253, 74.8f
1651 path.lineTo(SkBits2Float(0x437d0000), SkBits2Float(0x4295999a)); // 253, 74.8f 1653 path.lineTo(SkBits2Float(0x437d0000), SkBits2Float(0x4295999a)); // 253, 74.8f
1652 path.lineTo(SkBits2Float(0x42886666), SkBits2Float(0x4295999a)); // 68.2f, 74.8 f 1654 path.lineTo(SkBits2Float(0x42886666), SkBits2Float(0x4295999a)); // 68.2f, 74.8 f
1653 path.close(); 1655 path.close();
1654 testPathOp(reporter, pathA, path, SkPathOp::kUnion_SkPathOp, filename); 1656 testPathOp(reporter, pathA, path, SkPathOp::kUnion_SkPathOp, filename);
1655 } 1657 }
1656 1658
1657 1659
1658 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; 1660 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
1659 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; 1661 static void (*firstTest)(skiatest::Reporter* , const char* filename) = issue3651 _1;
1660 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; 1662 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
1661 1663
1662 static struct TestDesc tests[] = { 1664 static struct TestDesc tests[] = {
1663 TEST(issue3651_6), 1665 TEST(issue3651_6),
1664 TEST(issue3651_1a), 1666 TEST(issue3651_1a),
1665 TEST(issue3651_1), 1667 TEST(issue3651_1),
1666 TEST(issue3651_7), 1668 TEST(issue3651_7),
1667 TEST(issue3651_5), 1669 TEST(issue3651_5),
1668 TEST(issue3651_4), 1670 TEST(issue3651_4),
1669 TEST(issue3651_2), 1671 TEST(issue3651_2),
1670 TEST(issue3651_3), 1672 TEST(issue3651_3),
1671 }; 1673 };
1672 1674
1673 static const size_t testCount = SK_ARRAY_COUNT(tests); 1675 static const size_t testCount = SK_ARRAY_COUNT(tests);
1674 1676
1675 static bool runReverse = false; 1677 static bool runReverse = false;
1676 1678
1677 DEF_TEST(PathOpsIssue3651, reporter) { 1679 DEF_TEST(PathOpsIssue3651, reporter) {
1678 #if DEBUG_SHOW_TEST_NAME 1680 #if DEBUG_SHOW_TEST_NAME
1679 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 1681 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
1680 #endif 1682 #endif
1681 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse); 1683 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse);
1682 } 1684 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698