bolero-afl
afl plugin for bolero
0.13.0
4.8M downloads/mo
#4603 most downloaded on crates.io
camshaft/bolero
What this package is like to depend on
Last release 1 years ago
no release in 18 months
Ships fairly regularly
a new release about every 6 months
Some releases are documented
notes for 4 of 15 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
15 releases · first in 2019
0 releases in the last 12 months
see the full history below
Release timeline
15 releases · Sep 2019 to Feb 2025Releases
latest 15-
0.13.027 Feb 2025Nothing published for this version
-
0.12.027 Nov 2024Nothing published for this version
-
0.11.008 Jun 2024Nothing published for this version
-
0.10.028 Sep 2023Nothing published for this version
-
0.9.020 Mar 2023 -
0.8.027 Oct 2022 -
0.7.024 May 2022Nothing published for this version
-
0.6.206 Nov 2021Nothing published for this version
-
0.6.017 Nov 2020Release notes
Open source →Added
- MSRV set to 1.42.0
- Initial support for executing tests with MIRI
Updated
- libfuzzer is now at version 11.0.0
- afl is now at version v2.57b
- honggfuzz is now at version 2.3.1
Fixes
- Invalid shrinking transformations could result in an empty panic message
- Test name resolution now relies on
core::any::type_nameinstead of backtrace inspection - Generators that panic could result in an empty panic message
Breaking Changes
Deprecate
fuzzin favor of more general termsWith the end goal of
bolerobecoming a front-end for various types of execution engines outside of fuzzing (e.g. crux, seer, haybale, etc) we're deprecating specific language about fuzzing and going for a more general vocabulary.- The
fuzz!macro has been deprecated in favor ofcheck! - The
cargo bolero fuzzcommand has been deprecated in favor ofcargo bolero test - The
--fuzzerflag has been deprecated in favor of--engine
Default to
--releasebuild when testingIn order to achieve a better testing rate, tests are now compiled with
--release. In order to opt out of this behavior,--release falsecan be passed.Default to
--sanitizer addresswhen testingSanitizers provide additional information to the fuzzing engine which produces better results. This is now the default behavior. In order to opt out of this behavior,
--sanitizer NONEcan be passed. -
0.5.023 May 2020Release notes
Open source →Added
ValueGeneratornow includes amutatemethod to improve efficiency- AFL and honggfuzz can now be included/excluded from
cargo-bolerowith feature flags - AFL updated to 2.56b
- honggfuzz updated to 2.2
- libfuzzer updated to latest release/10.x
libtestcompatibilityFuzz tests can now be written inside of unit tests
#[test] fn my_fuzz_test() { fuzz!() .with_type() .for_each(|value: &Vec<u64>| { // implement checks }) }Breaking Changes
Generated values must be
clonedFuzz targets must now call
.cloned()if they wish to take ownership over the generated value, otherwise a reference will be passed.// before fn main() { fuzz!() .with_type() .for_each(|value: Vec<u64>| { // implement checks }) }// after fn main() { fuzz!() .with_type() .for_each(|value: &Vec<u64>| { // implement checks }) } // or fn main() { fuzz!() .with_type() .cloned() .for_each(|value: Vec<u64>| { // implement checks }) }This change makes input iteration quite a bit faster as we're not allocating the generated input everytime.
check!()has been removedBecause
fuzz!()is now compatible withlibtest,check!()is no longer needed. -
0.4.006 Jan 2020Nothing published for this version
-
0.3.005 Dec 2019Nothing published for this version
-
0.2.016 Oct 2019Nothing published for this version
-
0.1.112 Oct 2019Nothing published for this version
-
0.1.009 Sep 2019Nothing published for this version