| Index: tests/PathOpsOpTest.cpp
|
| diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
|
| index 0b0e02438e5af907e99e5b3fa4ec86339e834ee0..4977b28c300edc73f48dae88e5a5debd2b3fd6a8 100644
|
| --- a/tests/PathOpsOpTest.cpp
|
| +++ b/tests/PathOpsOpTest.cpp
|
| @@ -3511,7 +3511,7 @@ static void issue2808(skiatest::Reporter* reporter, const char* filename) {
|
| testPathOp(reporter, path1, path2, kUnion_PathOp, filename);
|
| }
|
|
|
| -static void (*firstTest)(skiatest::Reporter* , const char* filename) = cubicOp95u;
|
| +static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
|
| static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
|
|
|
| static struct TestDesc tests[] = {
|
| @@ -3807,7 +3807,101 @@ static void fuzz433b(skiatest::Reporter* reporter, const char* filename) {
|
| testPathFailOp(reporter, path1, path2, kUnion_PathOp, filename);
|
| }
|
|
|
| +static void fuzz487a(skiatest::Reporter* reporter, const char* filename) {
|
| + SkPath path;
|
| + path.setFillType((SkPath::FillType) 0);
|
| +path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42633333));
|
| +path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc));
|
| +path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41a3ffff));
|
| +path.lineTo(SkBits2Float(0x42c20001), SkBits2Float(0x425d999a));
|
| +path.lineTo(SkBits2Float(0x42c20001), SkBits2Float(0x425d999a));
|
| +path.cubicTo(SkBits2Float(0x429c6668), SkBits2Float(0x425d999a), SkBits2Float(0x4279999c), SkBits2Float(0x42886667), SkBits2Float(0x42673335), SkBits2Float(0x42ab0000));
|
| +path.lineTo(SkBits2Float(0x41c0ccd0), SkBits2Float(0x42990000));
|
| +path.cubicTo(SkBits2Float(0x41b33336), SkBits2Float(0x42a5999a), SkBits2Float(0x41ac0003), SkBits2Float(0x42b2cccd), SkBits2Float(0x41ac0003), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999c), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999c), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4261999c), SkBits2Float(0x434d3333), SkBits2Float(0x4364e667), SkBits2Float(0x4346b333), SkBits2Float(0x4364e667), SkBits2Float(0x43400000));
|
| +path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.close();
|
| +
|
| + SkPath path1(path);
|
| + path.reset();
|
| + path.setFillType((SkPath::FillType) 0);
|
| +path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x42a20000), SkBits2Float(0x43016667), SkBits2Float(0x4287cccd), SkBits2Float(0x42ea999a), SkBits2Float(0x4273999a));
|
| +path.lineTo(SkBits2Float(0x4306cccd), SkBits2Float(0x41f5999a));
|
| +path.cubicTo(SkBits2Float(0x42f76667), SkBits2Float(0x41c26667), SkBits2Float(0x42dd999a), SkBits2Float(0x41a4cccd), SkBits2Float(0x42c23334), SkBits2Float(0x41a4cccd));
|
| +path.lineTo(SkBits2Float(0x42c23334), SkBits2Float(0x425e0000));
|
| +path.cubicTo(SkBits2Float(0x42a43334), SkBits2Float(0x425e0000), SkBits2Float(0x428a0001), SkBits2Float(0x427ecccd), SkBits2Float(0x42780002), SkBits2Float(0x4297999a));
|
| +path.lineTo(SkBits2Float(0x41fccccd), SkBits2Float(0x42693333));
|
| +path.cubicTo(SkBits2Float(0x41c9999a), SkBits2Float(0x428acccd), SkBits2Float(0x41ac0000), SkBits2Float(0x42a4999a), SkBits2Float(0x41ac0000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4261999a), SkBits2Float(0x42de0000), SkBits2Float(0x42813333), SkBits2Float(0x42f83333), SkBits2Float(0x42996666), SkBits2Float(0x4303199a));
|
| +path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x431cb334));
|
| +path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd));
|
| +path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd));
|
| +path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd));
|
| +path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334));
|
| +path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43080000));
|
| +path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.close();
|
| +
|
| + SkPath path2(path);
|
| + testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename);
|
| +}
|
| +
|
| +static void fuzz487b(skiatest::Reporter* reporter, const char* filename) {
|
| + SkPath path;
|
| + path.setFillType((SkPath::FillType) 0);
|
| +path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x429a6666), SkBits2Float(0x42f9999a), SkBits2Float(0x4275999a), SkBits2Float(0x42d70001), SkBits2Float(0x42633333));
|
| +path.lineTo(SkBits2Float(0x42e90001), SkBits2Float(0x41b8cccc));
|
| +path.cubicTo(SkBits2Float(0x42dc6667), SkBits2Float(0x41ab3332), SkBits2Float(0x42cf3334), SkBits2Float(0x41a3ffff), SkBits2Float(0x42c20001), SkBits2Float(0x41a3ffff));
|
| +path.lineTo(SkBits2Float(0x42c20001), SkBits2Float(0x425d999a));
|
| +path.lineTo(SkBits2Float(0x42c20001), SkBits2Float(0x425d999a));
|
| +path.cubicTo(SkBits2Float(0x429c6668), SkBits2Float(0x425d999a), SkBits2Float(0x4279999c), SkBits2Float(0x42886667), SkBits2Float(0x42673335), SkBits2Float(0x42ab0000));
|
| +path.lineTo(SkBits2Float(0x41c0ccd0), SkBits2Float(0x42990000));
|
| +path.cubicTo(SkBits2Float(0x41b33336), SkBits2Float(0x42a5999a), SkBits2Float(0x41ac0003), SkBits2Float(0x42b2cccd), SkBits2Float(0x41ac0003), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999c), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999c), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4261999c), SkBits2Float(0x434d3333), SkBits2Float(0x4364e667), SkBits2Float(0x4346b333), SkBits2Float(0x4364e667), SkBits2Float(0x43400000));
|
| +path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.close();
|
| +
|
| + SkPath path1(path);
|
| + path.reset();
|
| + path.setFillType((SkPath::FillType) 0);
|
| +path.moveTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4309999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4309999a), SkBits2Float(0x42a20000), SkBits2Float(0x43016667), SkBits2Float(0x4287cccd), SkBits2Float(0x42ea999a), SkBits2Float(0x4273999a));
|
| +path.lineTo(SkBits2Float(0x4306cccd), SkBits2Float(0x41f5999a));
|
| +path.cubicTo(SkBits2Float(0x42f76667), SkBits2Float(0x41c26667), SkBits2Float(0x42dd999a), SkBits2Float(0x41a4cccd), SkBits2Float(0x42c23334), SkBits2Float(0x41a4cccd));
|
| +path.lineTo(SkBits2Float(0x42c23334), SkBits2Float(0x425e0000));
|
| +path.cubicTo(SkBits2Float(0x42a43334), SkBits2Float(0x425e0000), SkBits2Float(0x428a0001), SkBits2Float(0x427ecccd), SkBits2Float(0x42780002), SkBits2Float(0x4297999a));
|
| +path.lineTo(SkBits2Float(0x41fccccd), SkBits2Float(0x42693333));
|
| +path.cubicTo(SkBits2Float(0x41c9999a), SkBits2Float(0x428acccd), SkBits2Float(0x41ac0000), SkBits2Float(0x42a4999a), SkBits2Float(0x41ac0000), SkBits2Float(0x42c00000));
|
| +path.lineTo(SkBits2Float(0x4261999a), SkBits2Float(0x42c00000));
|
| +path.cubicTo(SkBits2Float(0x4261999a), SkBits2Float(0x42de0000), SkBits2Float(0x42813333), SkBits2Float(0x42f83333), SkBits2Float(0x42996666), SkBits2Float(0x4303199a));
|
| +path.cubicTo(SkBits2Float(0x4272cccc), SkBits2Float(0x4303199a), SkBits2Float(0x423d3332), SkBits2Float(0x430de667), SkBits2Float(0x422d9999), SkBits2Float(0x431cb334));
|
| +path.lineTo(SkBits2Float(0x7086a1dc), SkBits2Float(0x42eecccd));
|
| +path.lineTo(SkBits2Float(0x41eb3333), SkBits2Float(0xc12ccccd));
|
| +path.lineTo(SkBits2Float(0x42053333), SkBits2Float(0xc1cccccd));
|
| +path.lineTo(SkBits2Float(0x42780000), SkBits2Float(0xc18f3334));
|
| +path.cubicTo(SkBits2Float(0x43206666), SkBits2Float(0x43134ccd), SkBits2Float(0x43213333), SkBits2Float(0x430db333), SkBits2Float(0x43213333), SkBits2Float(0x43080000));
|
| +path.lineTo(SkBits2Float(0x432c8000), SkBits2Float(0x42c00000));
|
| +path.close();
|
| +
|
| + SkPath path2(path);
|
| + testPathFailOp(reporter, path1, path2, (SkPathOp) 2, filename);
|
| +}
|
| +
|
| static struct TestDesc failTests[] = {
|
| + TEST(fuzz487a),
|
| + TEST(fuzz487b),
|
| TEST(fuzz433b),
|
| TEST(fuzz433),
|
| TEST(bufferOverflow),
|
|
|