X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=fuzz%2Fsrc%2Fbin%2Fmsg_update_fee_target.rs;h=b021107f15044a5e8b7eb2f7c0bf08ef486daa27;hb=997e46bde286bf951bbd4dd61cf43bc54d5f0cc9;hp=2b01b2b6b7cfab3b670de5cadc8c86609e21611e;hpb=0d755456328d68151cdb66a1d8280912de7eb50c;p=rust-lightning diff --git a/fuzz/src/bin/msg_update_fee_target.rs b/fuzz/src/bin/msg_update_fee_target.rs index 2b01b2b6b..b021107f1 100644 --- a/fuzz/src/bin/msg_update_fee_target.rs +++ b/fuzz/src/bin/msg_update_fee_target.rs @@ -1,14 +1,30 @@ +// This file is Copyright its original authors, visible in version control +// history. +// +// This file is licensed under the Apache License, Version 2.0 or the MIT license +// , at your option. +// You may not use this file except in accordance with one or both of these +// licenses. + // This file is auto-generated by gen_target.sh based on target_template.txt // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] + +#[cfg(not(fuzzing))] +compile_error!("Fuzz targets need cfg=fuzzing"); + +#[cfg(not(hashes_fuzz))] +compile_error!("Fuzz targets need cfg=hashes_fuzz"); + +#[cfg(not(secp256k1_fuzz))] +compile_error!("Fuzz targets need cfg=secp256k1_fuzz"); extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_fee::*; -use std::fs; -use std::io::Read; - #[cfg(feature = "afl")] #[macro_use] extern crate afl; #[cfg(feature = "afl")] @@ -38,6 +54,8 @@ fuzz_target!(|data: &[u8]| { #[cfg(feature = "stdin_fuzz")] fn main() { + use std::io::Read; + let mut data = Vec::with_capacity(8192); std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_fee_run(data.as_ptr(), data.len()); @@ -45,6 +63,8 @@ fn main() { #[test] fn run_test_cases() { + use std::fs; + use std::io::Read; use lightning_fuzz::utils::test_logger::StringBuffer; use std::sync::{atomic, Arc}; @@ -83,10 +103,18 @@ fn run_test_cases() { } } } + let mut failed_outputs = Vec::new(); for (test, thread) in threads.drain(..) { if let Some(output) = thread.join().unwrap() { - println!("Output of {}:\n{}", test, output); - panic!(); + println!("\nOutput of {}:\n{}\n", test, output); + failed_outputs.push(test); + } + } + if !failed_outputs.is_empty() { + println!("Test cases which failed: "); + for case in failed_outputs { + println!("{}", case); } + panic!(); } }