8 releases (5 breaking)
0.12.0 | Nov 27, 2024 |
---|---|
0.11.2 | Jun 10, 2024 |
0.10.0 | Sep 28, 2023 |
0.9.0 | Mar 21, 2023 |
0.7.0 | May 24, 2022 |
#893 in Testing
15,656 downloads per month
Used in 26 crates
(via bolero)
20KB
423 lines
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–5.5MB
~23K SLoC