diff options
author | caryclark <caryclark@google.com> | 2016-10-20 08:32:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-20 08:32:18 -0700 |
commit | a35ab3e6e024d0b548ded26a2e3b8ecd838ead93 (patch) | |
tree | c009069f86b1129fcf5037ffc8e8fbf1b9ba010f /tests/PathOpsQuadReduceOrderTest.cpp | |
parent | 65820db5e15201a3f30968420232d36c0ca89cd8 (diff) |
fix fuzzers
Many old pathops-related fuzz failures have built up while
the codebase was under a state a flux. Now that the code
is stable, address these failures.
Most of the CL plumbs the debug global state to downstream
routines so that, if the data is not trusted (ala fuzzed)
the function can safely exit without asserting.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426173002
Review-Url: https://chromiumcodereview.appspot.com/2426173002
Diffstat (limited to 'tests/PathOpsQuadReduceOrderTest.cpp')
-rw-r--r-- | tests/PathOpsQuadReduceOrderTest.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tests/PathOpsQuadReduceOrderTest.cpp b/tests/PathOpsQuadReduceOrderTest.cpp index dd2c493f78..4f62026fa7 100644 --- a/tests/PathOpsQuadReduceOrderTest.cpp +++ b/tests/PathOpsQuadReduceOrderTest.cpp @@ -10,7 +10,7 @@ #include "SkReduceOrder.h" #include "Test.h" -static const SkDQuad testSet[] = { +static const QuadPts testSet[] = { {{{1, 1}, {2, 2}, {1, 1.000003}}}, {{{1, 0}, {2, 6}, {3, 0}}} }; @@ -19,7 +19,9 @@ static const size_t testSetCount = SK_ARRAY_COUNT(testSet); static void oneOffTest(skiatest::Reporter* reporter) { for (size_t index = 0; index < testSetCount; ++index) { - const SkDQuad& quad = testSet[index]; + const QuadPts& q = testSet[index]; + SkDQuad quad; + quad.debugSet(q.fPts); SkReduceOrder reducer; SkDEBUGCODE(int result = ) reducer.reduce(quad); SkASSERT(result == 3); @@ -47,14 +49,18 @@ static void standardTestCases(skiatest::Reporter* reporter) { : SK_MaxS32; for (index = firstQuadraticLineTest; index < quadraticLines_count; ++index) { - const SkDQuad& quad = quadraticLines[index]; + const QuadPts& q = quadraticLines[index]; + SkDQuad quad; + quad.debugSet(q.fPts); order = reducer.reduce(quad); if (order != 2) { SkDebugf("[%d] line quad order=%d\n", (int) index, order); } } for (index = firstQuadraticModLineTest; index < quadraticModEpsilonLines_count; ++index) { - const SkDQuad& quad = quadraticModEpsilonLines[index]; + const QuadPts& q = quadraticModEpsilonLines[index]; + SkDQuad quad; + quad.debugSet(q.fPts); order = reducer.reduce(quad); if (order != 2 && order != 3) { // FIXME: data probably is not good SkDebugf("[%d] line mod quad order=%d\n", (int) index, order); |