From: Matt Corallo Date: Sun, 19 Jan 2020 20:38:34 +0000 (-0500) Subject: Drop individual fuzz target duplicate_crash tests for file reader X-Git-Tag: v0.0.12~146^2~1 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;ds=sidebyside;h=a343cf94368f33171f1c146ac79777cb4edea055;p=rust-lightning Drop individual fuzz target duplicate_crash tests for file reader Previously, in each of our fuzz tests we had a dummy test which had a hard-coded hex string which it passed into the fuzz target so that when a failing test case was found, its hex could be copied into the test and you could run cargo test to analyze the failure. However, this was somewhat unwieldy as converting large tests back and forth between hex and raw files is quite annoying. Instead, we replace each of those tests with a test in each target that looks for files in fuzz/test_cases and runs each file it finds. Since we're editing every bin target anyway, we also automate adding no_main to libfuzzer builds with #![cfg_attr]. --- diff --git a/fuzz/src/bin/chanmon_consistency_target.rs b/fuzz/src/bin/chanmon_consistency_target.rs index a4a0bf23..a6d3ff06 100644 --- a/fuzz/src/bin/chanmon_consistency_target.rs +++ b/fuzz/src/bin/chanmon_consistency_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::chanmon_consistency::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); chanmon_consistency_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + chanmon_consistency_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/chanmon_consistency") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + chanmon_consistency_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/chanmon_deser_target.rs b/fuzz/src/bin/chanmon_deser_target.rs index 91bc66c1..91d5f1e1 100644 --- a/fuzz/src/bin/chanmon_deser_target.rs +++ b/fuzz/src/bin/chanmon_deser_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::chanmon_deser::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); chanmon_deser_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + chanmon_deser_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/chanmon_deser") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + chanmon_deser_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/full_stack_target.rs b/fuzz/src/bin/full_stack_target.rs index 4dbf0cc9..955202d2 100644 --- a/fuzz/src/bin/full_stack_target.rs +++ b/fuzz/src/bin/full_stack_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::full_stack::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); full_stack_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + full_stack_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/full_stack") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + full_stack_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_accept_channel_target.rs b/fuzz/src/bin/msg_accept_channel_target.rs index c2356011..8112ebf9 100644 --- a/fuzz/src/bin/msg_accept_channel_target.rs +++ b/fuzz/src/bin/msg_accept_channel_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_accept_channel::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_accept_channel_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_accept_channel_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_accept_channel") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_accept_channel_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_announcement_signatures_target.rs b/fuzz/src/bin/msg_announcement_signatures_target.rs index 54f3d823..f234dadf 100644 --- a/fuzz/src/bin/msg_announcement_signatures_target.rs +++ b/fuzz/src/bin/msg_announcement_signatures_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_announcement_signatures::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_announcement_signatures_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_announcement_signatures_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_announcement_signatures") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_announcement_signatures_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_channel_announcement_target.rs b/fuzz/src/bin/msg_channel_announcement_target.rs index 5ab797f6..a2a63643 100644 --- a/fuzz/src/bin/msg_channel_announcement_target.rs +++ b/fuzz/src/bin/msg_channel_announcement_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_channel_announcement::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_channel_announcement_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_channel_announcement_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_channel_announcement") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_channel_announcement_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_channel_reestablish_target.rs b/fuzz/src/bin/msg_channel_reestablish_target.rs index 79b23e40..908d2067 100644 --- a/fuzz/src/bin/msg_channel_reestablish_target.rs +++ b/fuzz/src/bin/msg_channel_reestablish_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_channel_reestablish::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_channel_reestablish_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_channel_reestablish_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_channel_reestablish") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_channel_reestablish_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_channel_update_target.rs b/fuzz/src/bin/msg_channel_update_target.rs index f9dffda2..6eb7ba19 100644 --- a/fuzz/src/bin/msg_channel_update_target.rs +++ b/fuzz/src/bin/msg_channel_update_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_channel_update::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_channel_update_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_channel_update_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_channel_update") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_channel_update_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_closing_signed_target.rs b/fuzz/src/bin/msg_closing_signed_target.rs index eee7145c..3377ffd6 100644 --- a/fuzz/src/bin/msg_closing_signed_target.rs +++ b/fuzz/src/bin/msg_closing_signed_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_closing_signed::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_closing_signed_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_closing_signed_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_closing_signed") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_closing_signed_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_commitment_signed_target.rs b/fuzz/src/bin/msg_commitment_signed_target.rs index 6ce13f47..a9cef5fe 100644 --- a/fuzz/src/bin/msg_commitment_signed_target.rs +++ b/fuzz/src/bin/msg_commitment_signed_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_commitment_signed::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_commitment_signed_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_commitment_signed_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_commitment_signed") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_commitment_signed_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs b/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs index c5c9d4a5..cefcf06b 100644 --- a/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs +++ b/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_decoded_onion_error_packet::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_decoded_onion_error_packet_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_decoded_onion_error_packet_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_decoded_onion_error_packet") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_decoded_onion_error_packet_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_error_message_target.rs b/fuzz/src/bin/msg_error_message_target.rs index 1fa04d96..c8706d21 100644 --- a/fuzz/src/bin/msg_error_message_target.rs +++ b/fuzz/src/bin/msg_error_message_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_error_message::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_error_message_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_error_message_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_error_message") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_error_message_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_funding_created_target.rs b/fuzz/src/bin/msg_funding_created_target.rs index e9fedc3c..f51caf57 100644 --- a/fuzz/src/bin/msg_funding_created_target.rs +++ b/fuzz/src/bin/msg_funding_created_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_funding_created::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_funding_created_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_funding_created_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_funding_created") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_funding_created_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_funding_locked_target.rs b/fuzz/src/bin/msg_funding_locked_target.rs index 3665ce99..14954096 100644 --- a/fuzz/src/bin/msg_funding_locked_target.rs +++ b/fuzz/src/bin/msg_funding_locked_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_funding_locked::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_funding_locked_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_funding_locked_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_funding_locked") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_funding_locked_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_funding_signed_target.rs b/fuzz/src/bin/msg_funding_signed_target.rs index 057cc6fe..dcd5dd9d 100644 --- a/fuzz/src/bin/msg_funding_signed_target.rs +++ b/fuzz/src/bin/msg_funding_signed_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_funding_signed::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_funding_signed_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_funding_signed_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_funding_signed") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_funding_signed_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_init_target.rs b/fuzz/src/bin/msg_init_target.rs index 0bcbeda1..4dd75f2e 100644 --- a/fuzz/src/bin/msg_init_target.rs +++ b/fuzz/src/bin/msg_init_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_init::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_init_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_init_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_init") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_init_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_node_announcement_target.rs b/fuzz/src/bin/msg_node_announcement_target.rs index e3dde9fb..ae778b67 100644 --- a/fuzz/src/bin/msg_node_announcement_target.rs +++ b/fuzz/src/bin/msg_node_announcement_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_node_announcement::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_node_announcement_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_node_announcement_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_node_announcement") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_node_announcement_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_onion_hop_data_target.rs b/fuzz/src/bin/msg_onion_hop_data_target.rs index ea2b6e4d..95453bc9 100644 --- a/fuzz/src/bin/msg_onion_hop_data_target.rs +++ b/fuzz/src/bin/msg_onion_hop_data_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_onion_hop_data::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_onion_hop_data_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_onion_hop_data_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_onion_hop_data") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_onion_hop_data_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_open_channel_target.rs b/fuzz/src/bin/msg_open_channel_target.rs index 690db561..fa385e56 100644 --- a/fuzz/src/bin/msg_open_channel_target.rs +++ b/fuzz/src/bin/msg_open_channel_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_open_channel::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_open_channel_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_open_channel_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_open_channel") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_open_channel_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_ping_target.rs b/fuzz/src/bin/msg_ping_target.rs index 871c8e14..e8b0a598 100644 --- a/fuzz/src/bin/msg_ping_target.rs +++ b/fuzz/src/bin/msg_ping_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_ping::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_ping_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_ping_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_ping") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_ping_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_pong_target.rs b/fuzz/src/bin/msg_pong_target.rs index c4fc4616..f7408ec5 100644 --- a/fuzz/src/bin/msg_pong_target.rs +++ b/fuzz/src/bin/msg_pong_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_pong::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_pong_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_pong_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_pong") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_pong_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_revoke_and_ack_target.rs b/fuzz/src/bin/msg_revoke_and_ack_target.rs index 2c844c2a..47f125a4 100644 --- a/fuzz/src/bin/msg_revoke_and_ack_target.rs +++ b/fuzz/src/bin/msg_revoke_and_ack_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_revoke_and_ack::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_revoke_and_ack_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_revoke_and_ack_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_revoke_and_ack") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_revoke_and_ack_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_shutdown_target.rs b/fuzz/src/bin/msg_shutdown_target.rs index ea1678ce..fb400f77 100644 --- a/fuzz/src/bin/msg_shutdown_target.rs +++ b/fuzz/src/bin/msg_shutdown_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_shutdown::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_shutdown_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_shutdown_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_shutdown") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_shutdown_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_update_add_htlc_target.rs b/fuzz/src/bin/msg_update_add_htlc_target.rs index cc8f6730..e433a446 100644 --- a/fuzz/src/bin/msg_update_add_htlc_target.rs +++ b/fuzz/src/bin/msg_update_add_htlc_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_add_htlc::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_add_htlc_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_update_add_htlc_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_update_add_htlc") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_update_add_htlc_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_update_fail_htlc_target.rs b/fuzz/src/bin/msg_update_fail_htlc_target.rs index 5099fed1..ee8bb3af 100644 --- a/fuzz/src/bin/msg_update_fail_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fail_htlc_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_fail_htlc::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_fail_htlc_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_update_fail_htlc_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_update_fail_htlc") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_update_fail_htlc_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs b/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs index 9eea9279..06eb31d3 100644 --- a/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_fail_malformed_htlc::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_fail_malformed_htlc_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_update_fail_malformed_htlc_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_update_fail_malformed_htlc") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_update_fail_malformed_htlc_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_update_fee_target.rs b/fuzz/src/bin/msg_update_fee_target.rs index 50a96aa0..12e5c384 100644 --- a/fuzz/src/bin/msg_update_fee_target.rs +++ b/fuzz/src/bin/msg_update_fee_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_fee::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_fee_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_update_fee_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_update_fee") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_update_fee_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/msg_update_fulfill_htlc_target.rs b/fuzz/src/bin/msg_update_fulfill_htlc_target.rs index 35bf38e9..a5a8bda3 100644 --- a/fuzz/src/bin/msg_update_fulfill_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fulfill_htlc_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::msg_targets::msg_update_fulfill_htlc::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); msg_update_fulfill_htlc_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + msg_update_fulfill_htlc_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/msg_update_fulfill_htlc") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + msg_update_fulfill_htlc_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/peer_crypt_target.rs b/fuzz/src/bin/peer_crypt_target.rs index 8c1f7b01..b32854f0 100644 --- a/fuzz/src/bin/peer_crypt_target.rs +++ b/fuzz/src/bin/peer_crypt_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::peer_crypt::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); peer_crypt_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + peer_crypt_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/peer_crypt") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + peer_crypt_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/router_target.rs b/fuzz/src/bin/router_target.rs index 9b26a176..3e82b196 100644 --- a/fuzz/src/bin/router_target.rs +++ b/fuzz/src/bin/router_target.rs @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::router::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); router_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + router_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/router") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + router_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/bin/target_template.txt b/fuzz/src/bin/target_template.txt index 3ebb480d..9815e9cc 100644 --- a/fuzz/src/bin/target_template.txt +++ b/fuzz/src/bin/target_template.txt @@ -1,12 +1,12 @@ // 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. -//Uncomment this for libfuzzer builds: -//#![no_main] +#![cfg_attr(feature = "libfuzzer_fuzz", no_main)] extern crate lightning_fuzz; use lightning_fuzz::TARGET_MOD::*; +use std::fs; use std::io::Read; #[cfg(feature = "afl")] @@ -42,3 +42,18 @@ fn main() { std::io::stdin().read_to_end(&mut data).unwrap(); TARGET_NAME_run(data.as_ptr(), data.len()); } + +#[test] +fn run_test_cases() { + let mut data: Vec = vec![0]; + TARGET_NAME_run(data.as_ptr(), data.len()); + if let Ok(tests) = fs::read_dir("test_cases/TARGET_NAME") { + for test in tests { + data.clear(); + let path = test.unwrap().path(); + println!("Running test {}...", path.file_name().unwrap().to_str().unwrap()); + fs::File::open(path).unwrap().read_to_end(&mut data).unwrap(); + TARGET_NAME_run(data.as_ptr(), data.len()); + } + } +} diff --git a/fuzz/src/chanmon_consistency.rs b/fuzz/src/chanmon_consistency.rs index d4a33427..cc17ecc5 100644 --- a/fuzz/src/chanmon_consistency.rs +++ b/fuzz/src/chanmon_consistency.rs @@ -742,11 +742,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn chanmon_consistency_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/chanmon_deser.rs b/fuzz/src/chanmon_deser.rs index 5dde4a2e..5d15f718 100644 --- a/fuzz/src/chanmon_deser.rs +++ b/fuzz/src/chanmon_deser.rs @@ -40,11 +40,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn chanmon_deser_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/full_stack.rs b/fuzz/src/full_stack.rs index e6496125..19dc2804 100644 --- a/fuzz/src/full_stack.rs +++ b/fuzz/src/full_stack.rs @@ -540,12 +540,6 @@ mod tests { use std::collections::HashMap; use std::sync::{Arc, Mutex}; - #[test] - fn duplicate_crash() { - let logger: Arc = Arc::new(test_logger::TestLogger::new("".to_owned())); - super::do_test(&::hex::decode("00").unwrap(), &logger); - } - struct TrackingLogger { /// (module, message) -> count pub lines: Mutex>, diff --git a/fuzz/src/msg_targets/msg_accept_channel.rs b/fuzz/src/msg_targets/msg_accept_channel.rs index 04e3cc24..94baec59 100644 --- a/fuzz/src/msg_targets/msg_accept_channel.rs +++ b/fuzz/src/msg_targets/msg_accept_channel.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_accept_channel_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_announcement_signatures.rs b/fuzz/src/msg_targets/msg_announcement_signatures.rs index 1df6aeca..065295b9 100644 --- a/fuzz/src/msg_targets/msg_announcement_signatures.rs +++ b/fuzz/src/msg_targets/msg_announcement_signatures.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_announcement_signatures_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_channel_announcement.rs b/fuzz/src/msg_targets/msg_channel_announcement.rs index 9e2363ea..dafcdafe 100644 --- a/fuzz/src/msg_targets/msg_channel_announcement.rs +++ b/fuzz/src/msg_targets/msg_channel_announcement.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_channel_announcement_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_channel_reestablish.rs b/fuzz/src/msg_targets/msg_channel_reestablish.rs index a81f0aeb..8d05450e 100644 --- a/fuzz/src/msg_targets/msg_channel_reestablish.rs +++ b/fuzz/src/msg_targets/msg_channel_reestablish.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_channel_reestablish_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_channel_update.rs b/fuzz/src/msg_targets/msg_channel_update.rs index aaef33ea..0d3edfe8 100644 --- a/fuzz/src/msg_targets/msg_channel_update.rs +++ b/fuzz/src/msg_targets/msg_channel_update.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_channel_update_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_closing_signed.rs b/fuzz/src/msg_targets/msg_closing_signed.rs index 9a959d58..8043d9de 100644 --- a/fuzz/src/msg_targets/msg_closing_signed.rs +++ b/fuzz/src/msg_targets/msg_closing_signed.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_closing_signed_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_commitment_signed.rs b/fuzz/src/msg_targets/msg_commitment_signed.rs index e84c9871..319f46c5 100644 --- a/fuzz/src/msg_targets/msg_commitment_signed.rs +++ b/fuzz/src/msg_targets/msg_commitment_signed.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_commitment_signed_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs b/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs index e49d22b3..d6e5a829 100644 --- a/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs +++ b/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_decoded_onion_error_packet_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_error_message.rs b/fuzz/src/msg_targets/msg_error_message.rs index 6b5bcccf..16594953 100644 --- a/fuzz/src/msg_targets/msg_error_message.rs +++ b/fuzz/src/msg_targets/msg_error_message.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_error_message_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_funding_created.rs b/fuzz/src/msg_targets/msg_funding_created.rs index 8e468a85..cc322cbb 100644 --- a/fuzz/src/msg_targets/msg_funding_created.rs +++ b/fuzz/src/msg_targets/msg_funding_created.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_funding_created_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_funding_locked.rs b/fuzz/src/msg_targets/msg_funding_locked.rs index 29e9c8a6..a546ed8b 100644 --- a/fuzz/src/msg_targets/msg_funding_locked.rs +++ b/fuzz/src/msg_targets/msg_funding_locked.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_funding_locked_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_funding_signed.rs b/fuzz/src/msg_targets/msg_funding_signed.rs index 412558fe..0210b5ec 100644 --- a/fuzz/src/msg_targets/msg_funding_signed.rs +++ b/fuzz/src/msg_targets/msg_funding_signed.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_funding_signed_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_init.rs b/fuzz/src/msg_targets/msg_init.rs index dbc07458..52b92acd 100644 --- a/fuzz/src/msg_targets/msg_init.rs +++ b/fuzz/src/msg_targets/msg_init.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_init_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_node_announcement.rs b/fuzz/src/msg_targets/msg_node_announcement.rs index 95de73ba..bb09f87e 100644 --- a/fuzz/src/msg_targets/msg_node_announcement.rs +++ b/fuzz/src/msg_targets/msg_node_announcement.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_node_announcement_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_onion_hop_data.rs b/fuzz/src/msg_targets/msg_onion_hop_data.rs index 0b02302a..e446a063 100644 --- a/fuzz/src/msg_targets/msg_onion_hop_data.rs +++ b/fuzz/src/msg_targets/msg_onion_hop_data.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_onion_hop_data_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_open_channel.rs b/fuzz/src/msg_targets/msg_open_channel.rs index 2688b418..9c700c2b 100644 --- a/fuzz/src/msg_targets/msg_open_channel.rs +++ b/fuzz/src/msg_targets/msg_open_channel.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_open_channel_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_ping.rs b/fuzz/src/msg_targets/msg_ping.rs index 21b74ad9..67e2382f 100644 --- a/fuzz/src/msg_targets/msg_ping.rs +++ b/fuzz/src/msg_targets/msg_ping.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_ping_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_pong.rs b/fuzz/src/msg_targets/msg_pong.rs index c8fc4c59..cec5c5ad 100644 --- a/fuzz/src/msg_targets/msg_pong.rs +++ b/fuzz/src/msg_targets/msg_pong.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_pong_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_revoke_and_ack.rs b/fuzz/src/msg_targets/msg_revoke_and_ack.rs index ca5412f5..6df64e3e 100644 --- a/fuzz/src/msg_targets/msg_revoke_and_ack.rs +++ b/fuzz/src/msg_targets/msg_revoke_and_ack.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_revoke_and_ack_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_shutdown.rs b/fuzz/src/msg_targets/msg_shutdown.rs index c249ffce..d70d9a6a 100644 --- a/fuzz/src/msg_targets/msg_shutdown.rs +++ b/fuzz/src/msg_targets/msg_shutdown.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_shutdown_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_target_template.txt b/fuzz/src/msg_targets/msg_target_template.txt index 6877918a..ea785ff4 100644 --- a/fuzz/src/msg_targets/msg_target_template.txt +++ b/fuzz/src/msg_targets/msg_target_template.txt @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn TARGET_NAME_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_update_add_htlc.rs b/fuzz/src/msg_targets/msg_update_add_htlc.rs index 960399ab..13b648f0 100644 --- a/fuzz/src/msg_targets/msg_update_add_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_add_htlc.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_update_add_htlc_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_update_fail_htlc.rs b/fuzz/src/msg_targets/msg_update_fail_htlc.rs index 8eb2870d..e21d2146 100644 --- a/fuzz/src/msg_targets/msg_update_fail_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fail_htlc.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_update_fail_htlc_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs b/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs index 4d1ab282..e27b8528 100644 --- a/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_update_fail_malformed_htlc_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_update_fee.rs b/fuzz/src/msg_targets/msg_update_fee.rs index 8d3bb894..5051bb87 100644 --- a/fuzz/src/msg_targets/msg_update_fee.rs +++ b/fuzz/src/msg_targets/msg_update_fee.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_update_fee_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs b/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs index ab727708..b8b3d98a 100644 --- a/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs @@ -14,11 +14,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn msg_update_fulfill_htlc_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -} diff --git a/fuzz/src/peer_crypt.rs b/fuzz/src/peer_crypt.rs index 8e616446..e0ff02f0 100644 --- a/fuzz/src/peer_crypt.rs +++ b/fuzz/src/peer_crypt.rs @@ -79,11 +79,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn peer_crypt_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("01").unwrap()); - } -} diff --git a/fuzz/src/router.rs b/fuzz/src/router.rs index 3e8082e4..99013d87 100644 --- a/fuzz/src/router.rs +++ b/fuzz/src/router.rs @@ -235,11 +235,3 @@ pub fn do_test(data: &[u8]) { pub extern "C" fn router_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - -#[cfg(test)] -mod tests { - #[test] - fn duplicate_crash() { - super::do_test(&::hex::decode("00").unwrap()); - } -}