55761ae5e6
Structs, enums, and global variables are all going to require name mangling. Move that to a separate virtual on the callback. More importantly, the generator is going to need to do type-name substitution inside the function declaration string, so the contract has shifted: The generator constructs the entire function declaration line (using the mangled name it gets from the new callback), then it calls defineFunction with two strings, and a flag indicating if this is main or not. Bug: skia:10939, skia:11295, skia:11296 Change-Id: I535eee9bfbb2337013b539908fe3d658ec3b2dbd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368397 Reviewed-by: John Stiles <johnstiles@google.com> Commit-Queue: Brian Osman <brianosman@google.com> |
||
---|---|---|
.. | ||
oss_fuzz | ||
coverage | ||
Fuzz.cpp | ||
Fuzz.h | ||
FuzzCanvas.cpp | ||
FuzzCommon.cpp | ||
FuzzCommon.h | ||
FuzzCreateDDL.cpp | ||
FuzzDrawFunctions.cpp | ||
FuzzEncoders.cpp | ||
FuzzGradients.cpp | ||
FuzzMain.cpp | ||
FuzzParsePath.cpp | ||
FuzzPath.cpp | ||
FuzzPathMeasure.cpp | ||
FuzzPathop.cpp | ||
FuzzPolyUtils.cpp | ||
FuzzRegionOp.cpp | ||
FuzzRRect.cpp | ||
FuzzSkParagraph.cpp | ||
README.md |
We fuzz Skia using oss-fuzz, which in turn uses fuzzing engines such as libfuzzer, afl-fuzz, hong-fuzz and others.
We define a fuzzer
to be a targeted bit of code that takes a randomized input and executes code
in a specific area. For example, we have a codec fuzzer which takes a mutated png/jpeg or similar
file and attempts to turn it into an SkImage
. We also have a canvas fuzzer which takes in a random
set of bytes and turns them into calls on SkCanvas
.
See [../site/dev/testing/fuzz.md] for more information on building and running fuzzers.
See also: