You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A cargo subcommand for fuzzing with libFuzzer! Easy to use!
Installation
$ cargo install cargo-fuzz
Note: libFuzzer needs LLVM sanitizer support, so this only works on x86-64 and Aarch64,
and only on Unix-like operating systems (not Windows). This also needs a nightly compiler since it uses some
unstable command-line flags. You'll also need a C++ compiler with C++11 support.
Usage
cargo fuzz init
Initialize a cargo fuzz project for your crate!
If your crate uses cargo workspaces, add fuzz directory to workspace.members in root Cargo.toml
fuzz directory can be either a part of an existing workspace (default)
or use an independent workspace. If latter is desired, you can use
cargo fuzz init --fuzzing-workspace=true.
cargo fuzz add <target>
Create a new fuzzing target!
cargo fuzz run <target>
Run a fuzzing target and find bugs!
cargo fuzz fmt <target> <input>
Print the std::fmt::Debug output for a test case. Useful when your fuzz target
takes an Arbitrary input!
cargo fuzz tmin <target> <input>
Found a failing input? Minify it to the smallest input that causes that failure
for easier debugging!
cargo fuzz cmin <target>
Minify your corpus of input files!
cargo fuzz coverage <target>
Generate coverage information on the fuzzed program!