13 releases (breaking)
0.11.0 | Jun 8, 2024 |
---|---|
0.10.0 | Sep 28, 2023 |
0.9.0 | Mar 21, 2023 |
0.8.0 | Oct 27, 2022 |
0.2.0 | Oct 16, 2019 |
#11 in #fuzz
11,213 downloads per month
Used in 27 crates
(via bolero)
375KB
9K
SLoC
bolero
fuzz and property testing front-end for Rust
Book
A copy of the Bolero Book can be found here: http://camshaft.github.io/bolero
Quick Start
-
Install subcommand and add a dependency
$ cargo add --dev bolero $ cargo install -f cargo-bolero
-
Write a test using
bolero::check!
macro:pub fn buggy_add(x: u32, y: u32) -> u32 { if x == 12976 && y == 14867 { return x.wrapping_sub(y); } return x.wrapping_add(y); } #[test] fn fuzz_add() { bolero::check!() .with_type() .cloned() .for_each(|(a, b)| buggy_add(a, b) == a.wrapping_add(b)); }
-
Run the test with
cargo bolero
$ cargo bolero test fuzz_add # ... some moments later ... ======================== Test Failure ======================== Input: ( 12976, 14867, ) Error: test returned `false` ==============================================================
Linux Installation
cargo-bolero
needs a couple of libraries installed to compile. If these libraries aren't
available the requirement can be relaxed by executing cargo install cargo-bolero --no-default-features -f
Debian/Ubuntu
$ sudo apt install binutils-dev libunwind-dev
Dependencies
~0–6MB
~27K SLoC