690b6f3a92
There is now PipelineStage::ConvertProgram, which takes a collection of callbacks, and processes an entire program. For program objects that may need name mangling, the callbacks return the new name, which is recorded and used for future references to that object (eg uniforms & functions). The callbacks let the FP inject new elements programmatically: - Declare uniforms and get handles - Emit child functions - Invoke child processors for calls to sample() In a follow-up CL, we can add an skslc `.rte -> .sksl` mode, where the callbacks just emit the description() of the relevant element. We can also follow the same pattern to emit declarations of types (structs, enums), and global variables. Change-Id: I81df68a2f41bcb48f866d37af3b77ad43e880236 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367058 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: John Stiles <johnstiles@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: