Add option to use libfuzzer sys in full_stack_target

Note that there doesn't appear to be a way to conditionally set
 #[no_main] so that has to happen manually at compile-time.
This commit is contained in:
Matt Corallo 2018-12-03 13:56:44 -05:00
parent a5bcd5651d
commit cdf9b4f8ba
2 changed files with 13 additions and 0 deletions

View File

@ -13,6 +13,7 @@ cargo-fuzz = true
[features]
afl_fuzz = ["afl"]
honggfuzz_fuzz = ["honggfuzz"]
libfuzzer_fuzz = ["libfuzzer-sys"]
[dependencies]
afl = { version = "0.4", optional = true }
@ -22,6 +23,7 @@ bitcoin_hashes = { git = "https://github.com/TheBlueMatt/bitcoin_hashes", branch
hex = "0.3"
honggfuzz = { version = "0.5", optional = true }
secp256k1 = { version = "0.11", features=["fuzztarget"] }
libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git", optional = true }
[build-dependencies]
cc = "1.0"

View File

@ -1,3 +1,6 @@
//Uncomment this for libfuzzer builds:
//#![no_main]
extern crate bitcoin;
extern crate bitcoin_hashes;
extern crate lightning;
@ -540,6 +543,14 @@ fn main() {
}
}
#[cfg(feature = "libfuzzer_fuzz")]
#[macro_use] extern crate libfuzzer_sys;
#[cfg(feature = "libfuzzer_fuzz")]
fuzz_target!(|data: &[u8]| {
let logger: Arc<Logger> = Arc::new(test_logger::TestLogger{});
do_test(data, &logger);
});
extern crate hex;
#[cfg(test)]
mod tests {