Istio has a series of fuzzers that run continuously through OSS-fuzz.
While many jobs are still using the old go-fuzz style fuzzers, using Go 1.18 native fuzzing is preferred.
These should be written alongside standard test packages.
Currently, these cannot be in <pkg>_test
packages; instead move them to a file under <pkg>
.
Fuzz jobs will be run in unit test mode automatically (i.e. run once) and as part of OSS-fuzz.
To run the fuzzers, follow these steps:
git clone --depth=1 https://github.com/google/oss-fuzz.git
cd oss-fuzz
python infra/helper.py build_image istio
python infra/helper.py build_fuzzers istio ~/go/src/istio.io/istio
Reproduce failure:
python infra/helper.py reproduce istio FuzzX ~/Downloads/clusterfuzz-testcase-minimized-FuzzX-1234
Run:
python infra/helper.py run_fuzzer istio FuzzValidateMeshConfig