|
12345678910111213141516171819202122232425262728293031323334353637 |
- This is an explanation of how to do fuzzing of ParseData. This uses github.com/dvyukov/go-fuzz/ for fuzzing.
-
- # How to use
- First, get go-fuzz
- ```
- $ go get github.com/dvyukov/go-fuzz/go-fuzz
- $ go get github.com/dvyukov/go-fuzz/go-fuzz-build
- ```
-
- Build the test program by calling the following command
- (assuming you have files for pprof located in github.com/google/pprof within go's src folder)
-
- ```
- $ go-fuzz-build github.com/google/pprof/fuzz
- ```
- The above command will produce pprof-fuzz.zip
-
-
- Now you can run the fuzzer by calling
-
- ```
- $ go-fuzz -bin=./pprof-fuzz.zip -workdir=fuzz
- ```
-
- This will save a corpus of files used by the fuzzer in ./fuzz/corpus, and
- all files that caused ParseData to crash in ./fuzz/crashers.
-
- For more details on the usage, see github.com/dvyukov/go-fuzz/
-
- # About the to corpus
-
- Right now, fuzz/corpus contains the corpus initially given to the fuzzer
-
- If using the above commands, fuzz/corpus will be used to generate the initial corpus during fuzz testing.
-
- One can add profiles into the corpus by placing these files in the corpus directory (fuzz/corpus)
- prior to calling go-fuzz-build.
|