Lines Matching refs:fuzz
8 #include "fuzz/Fuzz.h"
25 static void init_string(Fuzz* fuzz, char* str, size_t bufSize) {
27 fuzz->nextRange(&str[i], 0x20, 0x7E); // printable ASCII
33 static void init_paint(Fuzz* fuzz, SkPaint* p) {
35 fuzz->next(&b);
39 fuzz->nextRange(&tmp_u8, 0, (int)SkBlendMode::kLastMode);
43 fuzz->next(&co);
46 fuzz->next(&b);
49 fuzz->nextRange(&tmp_u8, 0, (int)SkPaint::kLast_Cap);
52 fuzz->nextRange(&tmp_u8, 0, (int)SkPaint::kLast_Join);
56 fuzz->next(&sc);
59 fuzz->next(&sc);
62 fuzz->nextRange(&tmp_u8, 0, (int)SkPaint::kStrokeAndFill_Style);
66 static void init_bitmap(Fuzz* fuzz, SkBitmap* bmp) {
68 fuzz->nextRange(&colorType, 0, (int)kLastEnum_SkColorType);
74 fuzz->next(&b);
83 fuzz->next(&c);
86 fuzz->next(&b);
89 init_paint(fuzz, &p);
92 fuzz->next(&c);
97 static void init_surface(Fuzz* fuzz, sk_sp<SkSurface>* s) {
99 fuzz->nextRange(&x, 1, kMaxX);
100 fuzz->nextRange(&y, 1, kMaxY);
110 static void fuzz_drawText(Fuzz* fuzz, sk_sp<SkTypeface> typeface) {
113 init_paint(fuzz, &p);
115 init_surface(fuzz, &surface);
118 init_string(fuzz, text, kTxtLen);
121 fuzz->next(&x, &y);
130 fuzz->next(&b);
132 fuzz->next(&b);
134 fuzz->next(&b);
136 fuzz->next(&b);
138 fuzz->next(&b);
140 fuzz->next(&b);
142 fuzz->next(&x);
144 fuzz->next(&x);
146 fuzz->next(&x);
150 fuzz->next(&x);
151 fuzz->next(&y);
155 static void fuzz_drawCircle(Fuzz* fuzz) {
157 init_paint(fuzz, &p);
159 init_surface(fuzz, &surface);
162 fuzz->next(&a, &b, &c);
166 static void fuzz_drawLine(Fuzz* fuzz) {
168 init_paint(fuzz, &p);
170 init_surface(fuzz, &surface);
173 fuzz->next(&a, &b, &c, &d);
177 static void fuzz_drawRect(Fuzz* fuzz) {
179 init_paint(fuzz, &p);
181 init_surface(fuzz, &surface);
184 fuzz->next(&a, &b, &c, &d);
192 fuzz->next(&bl);
193 fuzz->next(&a, &b, &c, &d);
198 static void fuzz_drawPath(Fuzz* fuzz) {
200 init_paint(fuzz, &p);
202 init_surface(fuzz, &surface);
204 // TODO(kjlubick): put the ability to fuzz a path in shared file, with
207 fuzz->nextRange(&i, 0, 10); // set i to number of operations to perform
211 fuzz->nextRange(&j, 0, 5); // set j to choose operation to perform
214 fuzz->next(&a, &b);
218 fuzz->next(&a, &b);
222 fuzz->next(&a, &b, &c, &d);
226 fuzz->next(&a, &b, &c, &d, &e);
230 fuzz->next(&a, &b, &c, &d, &e, &f);
234 fuzz->next(&a, &b, &c, &d, &e);
245 fuzz->next(&bl);
249 static void fuzz_drawImage(Fuzz* fuzz) {
251 init_paint(fuzz, &p);
253 init_surface(fuzz, &surface);
255 init_bitmap(fuzz, &bmp);
260 fuzz->next(&bl);
262 fuzz->next(&a, &b);
268 fuzz->next(&a, &b);
271 fuzz->nextRange(&x, 0, 1);
277 static void fuzz_drawPaint(Fuzz* fuzz) {
279 init_paint(fuzz, &p);
281 init_surface(fuzz, &surface);
286 DEF_FUZZ(DrawFunctions, fuzz) {
288 fuzz->next(&i);
295 fuzz->signalBug();
298 fuzz_drawText(fuzz, f);
303 fuzz_drawRect(fuzz);
307 fuzz_drawCircle(fuzz);
311 fuzz_drawLine(fuzz);
315 fuzz_drawPath(fuzz);
319 fuzz_drawImage(fuzz);
323 fuzz_drawPaint(fuzz);