diff options
author | caryclark <caryclark@google.com> | 2016-06-28 09:23:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-28 09:23:57 -0700 |
commit | 3f0753d3eccece8ac7f02f6af36d66a96c3dfb26 (patch) | |
tree | a7dca73764a07182471f1c69de159d92059ee9bf /tests/PathOpsExtendedTest.cpp | |
parent | 74139f1b49d02b38006170c3e50439c1b33b175f (diff) |
fix fuzz bugs
Detect more places where the pathops numerics cause numbers
to become nearly identical and subsequently fail. These tests
have extreme inputs and cannot succeed.
Also remove the expectSuccess parameter from PathOpsDebug
and check instead in the test framework.
R=mbarbella@chromium.org
TBR=reed@google.com
BUG=623072,623022
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2103513002
Review-Url: https://codereview.chromium.org/2103513002
Diffstat (limited to 'tests/PathOpsExtendedTest.cpp')
-rw-r--r-- | tests/PathOpsExtendedTest.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/PathOpsExtendedTest.cpp b/tests/PathOpsExtendedTest.cpp index 572766086a..b71b115439 100644 --- a/tests/PathOpsExtendedTest.cpp +++ b/tests/PathOpsExtendedTest.cpp @@ -487,8 +487,8 @@ static void showName(const SkPath& a, const SkPath& b, const SkPathOp shapeOp) { } #endif -bool OpDebug(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result, - bool expectSuccess SkDEBUGPARAMS(bool skipAssert) +bool OpDebug(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result + SkDEBUGPARAMS(bool skipAssert) SkDEBUGPARAMS(const char* testName)); static bool innerPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b, @@ -497,10 +497,12 @@ static bool innerPathOp(skiatest::Reporter* reporter, const SkPath& a, const SkP showName(a, b, shapeOp); #endif SkPath out; - if (!OpDebug(a, b, shapeOp, &out, expectSuccess SkDEBUGPARAMS(skipAssert) + if (!OpDebug(a, b, shapeOp, &out SkDEBUGPARAMS(skipAssert) SkDEBUGPARAMS(testName))) { - SkDebugf("%s did not expect failure\n", __FUNCTION__); - REPORTER_ASSERT(reporter, 0); + if (expectSuccess) { + SkDebugf("%s did not expect failure\n", __FUNCTION__); + REPORTER_ASSERT(reporter, 0); + } return false; } if (!reporter->verbose()) { @@ -556,6 +558,11 @@ bool testPathSkipAssertOp(skiatest::Reporter* reporter, const SkPath& a, const S return innerPathOp(reporter, a, b, shapeOp, testName, true, true); } +bool testPathFailSkipAssertOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b, + const SkPathOp shapeOp, const char* testName) { + return innerPathOp(reporter, a, b, shapeOp, testName, false, true); +} + bool testPathFailOp(skiatest::Reporter* reporter, const SkPath& a, const SkPath& b, const SkPathOp shapeOp, const char* testName) { #if DEBUG_SHOW_TEST_NAME |