datafusion-sqlparse/docs/fuzzing.md
Chojan Shang 0c52491191 docs: fuzzing
Signed-off-by: Chojan Shang <psiace@outlook.com>
2021-06-03 14:10:15 +08:00

38 lines
766 B
Markdown

# Fuzzing
## Installing `honggfuzz`
```
cargo install honggfuzz
```
Install [dependencies](https://github.com/rust-fuzz/honggfuzz-rs#dependencies) for your system.
## Running the fuzzer
Running the fuzzer is as easy as running in the `fuzz` directory.
Choose a target:
These are `[[bin]]` entries in `Cargo.toml`.
List them with `cargo read-manifest | jq '.targets[].name'` from the `fuzz` directory.
Run the fuzzer:
```shell
cd fuzz
cargo hfuzz run <target>
```
After a panic is found, get a stack trace with:
```shell
cargo hfuzz run-debug <target> hfuzz_workspace/<target>/*.fuzz
```
For example, with the `fuzz_parse_sql` target:
```shell
cargo hfuzz run fuzz_parse_sql
cargo hfuzz run-debug fuzz_parse_sql hfuzz_workspace/fuzz_parse_sql/*.fuzz
```