diff options
author | Kevin Lubick <kjlubick@google.com> | 2018-02-27 08:30:43 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-27 13:47:28 +0000 |
commit | db1e5c6474c1cd0969006a0c0554f8fdc63c42c8 (patch) | |
tree | 2811124d6c9a78348e75ee35a0ccb2c456a0608e /fuzz | |
parent | 0157085b8788fb9d95c2f926499dcab81cf035b9 (diff) |
Port 3 API fuzzers to be oss-fuzz friendly
Also Remove ScaleToSides, which we hadn't been running for a while.
Bug: skia:
Change-Id: I772dad722c34681392d5b635b3de716f3b00d597
Reviewed-on: https://skia-review.googlesource.com/110443
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Diffstat (limited to 'fuzz')
-rw-r--r-- | fuzz/Fuzz.h | 5 | ||||
-rw-r--r-- | fuzz/FuzzCommon.h | 2 | ||||
-rw-r--r-- | fuzz/FuzzScaleToSides.cpp | 43 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzAPIImageFilter.cpp | 16 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzAnimatedImage.cpp | 2 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzDrawFunctions.cpp | 16 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzGradients.cpp | 17 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzImage.cpp | 2 | ||||
-rw-r--r-- | fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp | 2 |
9 files changed, 56 insertions, 49 deletions
diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h index 9dad0595e7..221b8f87bf 100644 --- a/fuzz/Fuzz.h +++ b/fuzz/Fuzz.h @@ -134,9 +134,10 @@ struct Fuzzable { void (*fn)(Fuzz*); }; +// Not static so that we can link these into oss-fuzz harnesses if we like. #define DEF_FUZZ(name, f) \ - static void fuzz_##name(Fuzz*); \ + void fuzz_##name(Fuzz*); \ sk_tools::Registry<Fuzzable> register_##name({#name, fuzz_##name}); \ - static void fuzz_##name(Fuzz* f) + void fuzz_##name(Fuzz* f) #endif//Fuzz_DEFINED diff --git a/fuzz/FuzzCommon.h b/fuzz/FuzzCommon.h index f0efc19a1a..c908606be1 100644 --- a/fuzz/FuzzCommon.h +++ b/fuzz/FuzzCommon.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google Inc. + * Copyright 2018 Google, LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. diff --git a/fuzz/FuzzScaleToSides.cpp b/fuzz/FuzzScaleToSides.cpp deleted file mode 100644 index 943ce5c8e0..0000000000 --- a/fuzz/FuzzScaleToSides.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -// Reminder of how to run: -// $ env CC=afl-clang CXX=afl-clang++ ./gyp_skia -// $ ninja -C out/Debug fuzz -// $ afl-fuzz -i fuzz-in -o fuzz-out out/Debug/fuzz -n ScaleToSides -b @@ -// where you seed fuzz-in/ with one or more small files. - -#include "Fuzz.h" -#include "SkScaleToSides.h" -#include <cmath> - -DEF_FUZZ(ScaleToSides, fuzz) { - float radius1, radius2, width; - fuzz->next(&radius1, &radius2, &width); - - if (!std::isfinite(radius1) || - !std::isfinite(radius2) || - !std::isfinite(width) || - radius1 <= 0.0f || - radius2 <= 0.0f || - width <= 0.0f) - { - return; - } - - double scale = (double)width / ((double)radius1 + (double)radius2); - if (scale >= 1.0 || scale <= 0.0) { - return; - } - SkDebugf("%g %g %g %g\n", radius1, radius2, width, scale); - SkScaleToSides::AdjustRadii(width, scale, &radius1, &radius2); - - // TODO(mtklein): add fuzz->keepResult() - volatile float junk = 0.0f; - junk *= radius1; - junk *= radius2; -} diff --git a/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp b/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp new file mode 100644 index 0000000000..1f8753d012 --- /dev/null +++ b/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp @@ -0,0 +1,16 @@ +/* + * Copyright 2018 Google, LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "../Fuzz.h" + +void fuzz_ImageFilter(Fuzz* f); + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size)); + fuzz_ImageFilter(&fuzz); + return 0; +} diff --git a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp index af433348c5..54109f095a 100644 --- a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp +++ b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google Inc. + * Copyright 2018 Google, LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. diff --git a/fuzz/oss_fuzz/FuzzDrawFunctions.cpp b/fuzz/oss_fuzz/FuzzDrawFunctions.cpp new file mode 100644 index 0000000000..ec4e766496 --- /dev/null +++ b/fuzz/oss_fuzz/FuzzDrawFunctions.cpp @@ -0,0 +1,16 @@ +/* + * Copyright 2018 Google, LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "../Fuzz.h" + +void fuzz_DrawFunctions(Fuzz* f); + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size)); + fuzz_DrawFunctions(&fuzz); + return 0; +} diff --git a/fuzz/oss_fuzz/FuzzGradients.cpp b/fuzz/oss_fuzz/FuzzGradients.cpp new file mode 100644 index 0000000000..06948021b3 --- /dev/null +++ b/fuzz/oss_fuzz/FuzzGradients.cpp @@ -0,0 +1,17 @@ +/* + * Copyright 2018 Google, LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "../Fuzz.h" + +void fuzz_Gradients(Fuzz* f); + +bool FLAGS_verbose = false; +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size)); + fuzz_Gradients(&fuzz); + return 0; +} diff --git a/fuzz/oss_fuzz/FuzzImage.cpp b/fuzz/oss_fuzz/FuzzImage.cpp index 0f0f6f5a43..0a8c87aef8 100644 --- a/fuzz/oss_fuzz/FuzzImage.cpp +++ b/fuzz/oss_fuzz/FuzzImage.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google Inc. + * Copyright 2018 Google, LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. diff --git a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp index 36c7057dbc..544b00ddaf 100644 --- a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp +++ b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google Inc. + * Copyright 2018 Google, LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. |