skia2/fuzz
Brian Osman 690b6f3a92 Remove PipelineStageArgs and format-string handshake
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>
2021-02-08 22:04:05 +00:00
..
oss_fuzz Remove PipelineStageArgs and format-string handshake 2021-02-08 22:04:05 +00:00
coverage remove SkColorSpace::MakeICC() fuzzer 2018-05-23 16:31:11 +00:00
Fuzz.cpp Hide SkImageFilter::CropRect 2021-01-30 16:10:29 +00:00
Fuzz.h Hide SkImageFilter::CropRect 2021-01-30 16:10:29 +00:00
FuzzCanvas.cpp Guard legacy matrixtransforms, and expose new one 2021-02-01 22:10:39 +00:00
FuzzCommon.cpp Hide shrinkToFit -- not needed now that we have pathbuilder 2020-10-15 19:47:06 +00:00
FuzzCommon.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FuzzCreateDDL.cpp Handle null GrDirectContext in DDL Fuzzer 2020-07-31 18:12:53 +00:00
FuzzDrawFunctions.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
FuzzEncoders.cpp Add GrDirectContext arg to SkImage::readPixels 2020-08-27 19:26:29 +00:00
FuzzGradients.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FuzzMain.cpp [fuzzing] Add SkParagraph to oss-fuzz. 2021-02-04 19:34:48 +00:00
FuzzParsePath.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FuzzPath.cpp add SKPath::readFromMemory() fuzzer 2020-08-12 17:40:16 +00:00
FuzzPathMeasure.cpp [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00
FuzzPathop.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
FuzzPolyUtils.cpp Move SkImageFilter functionality into private SkImageFilter_Base 2019-08-02 18:56:39 +00:00
FuzzRegionOp.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FuzzRRect.cpp add SkRRect::readFromMemory() fuzzer 2020-08-11 20:26:28 +00:00
FuzzSkParagraph.cpp [fuzzing] Add SkParagraph to oss-fuzz. 2021-02-04 19:34:48 +00:00
README.md [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00

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: