18 releases
0.12.0 | Nov 27, 2024 |
---|---|
0.11.2 | Jun 11, 2024 |
0.10.2 | Mar 4, 2024 |
0.10.0 | Sep 28, 2023 |
0.4.1 | Jan 22, 2020 |
#835 in Testing
25,290 downloads per month
Used in 31 crates
(5 directly)
240KB
7K
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
~6–12MB
~150K SLoC