Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(402)

Unified Diff: fuzz/FilterFuzz.cpp

Issue 1710183002: Do an in-place replacement of SkRandom with Fuzz for FilterFuzz (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: add comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | fuzz/Fuzz.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « no previous file | fuzz/Fuzz.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698