* found in the LICENSE file.
*/
+#include "SkBitmap.h"
#include "SkCanvas.h"
#include "SkCubicClipper.h"
#include "SkGeometry.h"
#include "SkSurface.h"
-DEF_TEST(test_fuzz_crbug_698714, reporter) {\r
- auto surface(SkSurface::MakeRasterN32Premul(500, 500));\r
- SkCanvas* canvas = surface->getCanvas();\r
- SkPaint paint;\r
- paint.setAntiAlias(true);\r
- SkPath path;\r
- path.setFillType(SkPath::kWinding_FillType);\r
- path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0,0\r
- path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43430143)); //195.263f, 195.005f\r
- path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43434343)); //195.263f, 195.263f\r
- path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x434300be)); //-7.2741e-07f, 195.003f\r
- // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 3.85088e-29f,1.86082e-39f\r
- path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),\r
- SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),\r
- SkBits2Float(0x10434343), SkBits2Float(0x00144332));\r
- // 4.11823e-38f, 195.263f, 195.263f, 195.263f, -7.2741e-07f, 195.263f\r
- path.cubicTo(SkBits2Float(0x016037c0), SkBits2Float(0x43434343),\r
- SkBits2Float(0x43434343), SkBits2Float(0x43434343),\r
- SkBits2Float(0xb5434343), SkBits2Float(0x43434343));\r
- // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 195.263f, -2\r
- path.cubicTo(SkBits2Float(0x43434344), SkBits2Float(0x43434341),\r
- SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),\r
- SkBits2Float(0x43434343), SkBits2Float(0xc0000014));\r
- // -5.87228e+06f, 3.7773e-07f, 3.60231e-13f, -6.64511e+06f,2.77692e-15f, 2.48803e-15f\r
- path.cubicTo(SkBits2Float(0xcab33535), SkBits2Float(0x34cacaca),\r
- SkBits2Float(0x2acacaca), SkBits2Float(0xcacacae3),\r
- SkBits2Float(0x27481927), SkBits2Float(0x27334805));\r
- path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x43434343)); //-7.2741e-07f, 195.263f\r
- // 195.263f, 195.263f, -1.16387e-05f, 195.212f, 195.263f, -2\r
- path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),\r
- SkBits2Float(0xb74343b9), SkBits2Float(0x43433643),\r
- SkBits2Float(0x43434343), SkBits2Float(0xc0000014));\r
- path.lineTo(SkBits2Float(0xc7004343), SkBits2Float(0x27480527)); //-32835.3f, 2.77584e-15f\r
- path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0,0\r
- path.close();\r
- canvas->clipRect({0, 0, 65, 202});\r
- canvas->drawPath(path, paint);\r
-}\r
+DEF_TEST(test_fuzz_crbug_698714, reporter) {
+ auto surface(SkSurface::MakeRasterN32Premul(500, 500));
+ SkCanvas* canvas = surface->getCanvas();
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ SkPath path;
+ path.setFillType(SkPath::kWinding_FillType);
+ path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0,0
+ path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43430143)); //195.263f, 195.005f
+ path.lineTo(SkBits2Float(0x43434343), SkBits2Float(0x43434343)); //195.263f, 195.263f
+ path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x434300be)); //-7.2741e-07f, 195.003f
+ // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 3.85088e-29f,1.86082e-39f
+ path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),
+ SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),
+ SkBits2Float(0x10434343), SkBits2Float(0x00144332));
+ // 4.11823e-38f, 195.263f, 195.263f, 195.263f, -7.2741e-07f, 195.263f
+ path.cubicTo(SkBits2Float(0x016037c0), SkBits2Float(0x43434343),
+ SkBits2Float(0x43434343), SkBits2Float(0x43434343),
+ SkBits2Float(0xb5434343), SkBits2Float(0x43434343));
+ // 195.263f, 195.263f, -1.16387e-05f, 3.58641e-38f, 195.263f, -2
+ path.cubicTo(SkBits2Float(0x43434344), SkBits2Float(0x43434341),
+ SkBits2Float(0xb74343bd), SkBits2Float(0x01434343),
+ SkBits2Float(0x43434343), SkBits2Float(0xc0000014));
+ // -5.87228e+06f, 3.7773e-07f, 3.60231e-13f, -6.64511e+06f,2.77692e-15f, 2.48803e-15f
+ path.cubicTo(SkBits2Float(0xcab33535), SkBits2Float(0x34cacaca),
+ SkBits2Float(0x2acacaca), SkBits2Float(0xcacacae3),
+ SkBits2Float(0x27481927), SkBits2Float(0x27334805));
+ path.lineTo(SkBits2Float(0xb5434343), SkBits2Float(0x43434343)); //-7.2741e-07f, 195.263f
+ // 195.263f, 195.263f, -1.16387e-05f, 195.212f, 195.263f, -2
+ path.cubicTo(SkBits2Float(0x43434343), SkBits2Float(0x43434341),
+ SkBits2Float(0xb74343b9), SkBits2Float(0x43433643),
+ SkBits2Float(0x43434343), SkBits2Float(0xc0000014));
+ path.lineTo(SkBits2Float(0xc7004343), SkBits2Float(0x27480527)); //-32835.3f, 2.77584e-15f
+ path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0,0
+ path.close();
+ canvas->clipRect({0, 0, 65, 202});
+ canvas->drawPath(path, paint);
+}