| Index: fuzz/FilterFuzz.cpp
|
| diff --git a/samplecode/SampleFilterFuzz.cpp b/fuzz/FilterFuzz.cpp
|
| similarity index 94%
|
| copy from samplecode/SampleFilterFuzz.cpp
|
| copy to fuzz/FilterFuzz.cpp
|
| index 2be6c318891c4239673e8621a01749770660fad0..7a50b8a85e3653637e6fa67fe9b04b9457b8fe21 100644
|
| --- a/samplecode/SampleFilterFuzz.cpp
|
| +++ b/fuzz/FilterFuzz.cpp
|
| @@ -4,7 +4,7 @@
|
| * Use of this source code is governed by a BSD-style license that can be
|
| * found in the LICENSE file.
|
| */
|
| -#include "SampleCode.h"
|
| +#include "Fuzz.h"
|
| #include "Sk1DPathEffect.h"
|
| #include "Sk2DPathEffect.h"
|
| #include "SkAlphaThresholdFilter.h"
|
| @@ -44,23 +44,20 @@
|
| #include "SkTestImageFilters.h"
|
| #include "SkTileImageFilter.h"
|
| #include "SkTypeface.h"
|
| -#include "SkView.h"
|
| #include "SkXfermodeImageFilter.h"
|
| #include <stdio.h>
|
| #include <time.h>
|
|
|
| -//#define SK_ADD_RANDOM_BIT_FLIPS
|
| -//#define SK_FUZZER_IS_VERBOSE
|
| +#define SK_ADD_RANDOM_BIT_FLIPS
|
| +
|
| +static Fuzz* fuzz;
|
| +static const int kBitmapSize = 24;
|
|
|
| -static const uint32_t kSeed = (uint32_t)(time(nullptr));
|
| -static SkRandom gRand(kSeed);
|
| static bool return_large = false;
|
| static bool return_undef = false;
|
|
|
| -static const int kBitmapSize = 24;
|
| -
|
| static int R(float x) {
|
| - return (int)floor(SkScalarToFloat(gRand.nextUScalar1()) * x);
|
| + return (int)floor(SkScalarToFloat(fuzz->nextF1()) * x);
|
| }
|
|
|
| #if defined _WIN32
|
| @@ -582,7 +579,7 @@ static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) {
|
| make_image_filter());
|
| break;
|
| case MAGNIFIER:
|
| - filter = sk_sp<SkImageFilter>(SkMagnifierImageFilter::Create(make_rect(),
|
| + filter = sk_sp<SkImageFilter>(SkMagnifierImageFilter::Create(make_rect(),
|
| make_scalar(true)));
|
| break;
|
| case DOWN_SAMPLE:
|
| @@ -805,60 +802,13 @@ static void drawClippedBitmap(SkCanvas* canvas, int x, int y, const SkPaint& pai
|
| canvas->restore();
|
| }
|
|
|
| -static void do_fuzz(SkCanvas* canvas) {
|
| +DEF_FUZZ(SerializedImageFilter, f) {
|
| + fuzz = f;
|
| SkImageFilter* filter = make_serialized_image_filter();
|
|
|
| -#ifdef SK_FUZZER_IS_VERBOSE
|
| - static uint32_t numFilters = 0;
|
| - static uint32_t numValidFilters = 0;
|
| - if (0 == numFilters) {
|
| - printf("Fuzzing with %u\n", kSeed);
|
| - }
|
| - numFilters++;
|
| - if (filter) {
|
| - numValidFilters++;
|
| - }
|
| - printf("Filter no : %u. Valid filters so far : %u\r", numFilters, numValidFilters);
|
| - fflush(stdout);
|
| -#endif
|
| -
|
| SkPaint paint;
|
| SkSafeUnref(paint.setImageFilter(filter));
|
| - drawClippedBitmap(canvas, 0, 0, paint);
|
| + SkBitmap bitmap;
|
| + SkCanvas canvas(bitmap);
|
| + drawClippedBitmap(&canvas, 0, 0, paint);
|
| }
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -
|
| -class ImageFilterFuzzView : public SampleView {
|
| -public:
|
| - ImageFilterFuzzView() {
|
| - this->setBGColor(0xFFDDDDDD);
|
| - }
|
| -
|
| -protected:
|
| - // overrides from SkEventSink
|
| - virtual bool onQuery(SkEvent* evt) {
|
| - if (SampleCode::TitleQ(*evt)) {
|
| - SampleCode::TitleR(evt, "ImageFilterFuzzer");
|
| - return true;
|
| - }
|
| - return this->INHERITED::onQuery(evt);
|
| - }
|
| -
|
| - void drawBG(SkCanvas* canvas) {
|
| - canvas->drawColor(0xFFDDDDDD);
|
| - }
|
| -
|
| - virtual void onDrawContent(SkCanvas* canvas) {
|
| - do_fuzz(canvas);
|
| - this->inval(0);
|
| - }
|
| -
|
| -private:
|
| - typedef SkView INHERITED;
|
| -};
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -
|
| -static SkView* MyFactory() { return new ImageFilterFuzzView; }
|
| -static SkViewRegister reg(MyFactory);
|
|
|