Skip to content

Latest commit

 

History

History

fuzz

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

Fuzz Testing

tgrep uses cargo-fuzz with libFuzzer for fuzz testing.

Setup

cargo install cargo-fuzz

Targets

Target What it fuzzes
fuzz_trigram Trigram extraction, mask generation, binary detection
fuzz_query Regex → query plan decomposition (arbitrary patterns)
fuzz_ondisk On-disk format encode/decode roundtrips
fuzz_reader IndexReader against arbitrary lookup.bin/index.bin/files.bin bytes

Running

cd fuzz

# Run a specific target
cargo fuzz run fuzz_trigram
cargo fuzz run fuzz_query
cargo fuzz run fuzz_ondisk
cargo fuzz run fuzz_reader

# Run with a time limit (e.g., 60 seconds)
cargo fuzz run fuzz_trigram -- -max_total_time=60

# List all targets
cargo fuzz list

Notes

  • Requires a nightly Rust toolchain: rustup install nightly
  • cargo fuzz automatically uses nightly when invoked
  • Crash inputs are saved to fuzz/artifacts/<target>/
  • Corpus is saved to fuzz/corpus/<target>/ for incremental fuzzing