]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Drop individual fuzz target duplicate_crash tests for file reader
authorMatt Corallo <git@bluematt.me>
Sun, 19 Jan 2020 20:38:34 +0000 (15:38 -0500)
committerMatt Corallo <git@bluematt.me>
Mon, 3 Feb 2020 02:38:53 +0000 (21:38 -0500)
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].

62 files changed:
fuzz/src/bin/chanmon_consistency_target.rs
fuzz/src/bin/chanmon_deser_target.rs
fuzz/src/bin/full_stack_target.rs
fuzz/src/bin/msg_accept_channel_target.rs
fuzz/src/bin/msg_announcement_signatures_target.rs
fuzz/src/bin/msg_channel_announcement_target.rs
fuzz/src/bin/msg_channel_reestablish_target.rs
fuzz/src/bin/msg_channel_update_target.rs
fuzz/src/bin/msg_closing_signed_target.rs
fuzz/src/bin/msg_commitment_signed_target.rs
fuzz/src/bin/msg_decoded_onion_error_packet_target.rs
fuzz/src/bin/msg_error_message_target.rs
fuzz/src/bin/msg_funding_created_target.rs
fuzz/src/bin/msg_funding_locked_target.rs
fuzz/src/bin/msg_funding_signed_target.rs
fuzz/src/bin/msg_init_target.rs
fuzz/src/bin/msg_node_announcement_target.rs
fuzz/src/bin/msg_onion_hop_data_target.rs
fuzz/src/bin/msg_open_channel_target.rs
fuzz/src/bin/msg_ping_target.rs
fuzz/src/bin/msg_pong_target.rs
fuzz/src/bin/msg_revoke_and_ack_target.rs
fuzz/src/bin/msg_shutdown_target.rs
fuzz/src/bin/msg_update_add_htlc_target.rs
fuzz/src/bin/msg_update_fail_htlc_target.rs
fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs
fuzz/src/bin/msg_update_fee_target.rs
fuzz/src/bin/msg_update_fulfill_htlc_target.rs
fuzz/src/bin/peer_crypt_target.rs
fuzz/src/bin/router_target.rs
fuzz/src/bin/target_template.txt
fuzz/src/chanmon_consistency.rs
fuzz/src/chanmon_deser.rs
fuzz/src/full_stack.rs
fuzz/src/msg_targets/msg_accept_channel.rs
fuzz/src/msg_targets/msg_announcement_signatures.rs
fuzz/src/msg_targets/msg_channel_announcement.rs
fuzz/src/msg_targets/msg_channel_reestablish.rs
fuzz/src/msg_targets/msg_channel_update.rs
fuzz/src/msg_targets/msg_closing_signed.rs
fuzz/src/msg_targets/msg_commitment_signed.rs
fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs
fuzz/src/msg_targets/msg_error_message.rs
fuzz/src/msg_targets/msg_funding_created.rs
fuzz/src/msg_targets/msg_funding_locked.rs
fuzz/src/msg_targets/msg_funding_signed.rs
fuzz/src/msg_targets/msg_init.rs
fuzz/src/msg_targets/msg_node_announcement.rs
fuzz/src/msg_targets/msg_onion_hop_data.rs
fuzz/src/msg_targets/msg_open_channel.rs
fuzz/src/msg_targets/msg_ping.rs
fuzz/src/msg_targets/msg_pong.rs
fuzz/src/msg_targets/msg_revoke_and_ack.rs
fuzz/src/msg_targets/msg_shutdown.rs
fuzz/src/msg_targets/msg_target_template.txt
fuzz/src/msg_targets/msg_update_add_htlc.rs
fuzz/src/msg_targets/msg_update_fail_htlc.rs
fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs
fuzz/src/msg_targets/msg_update_fee.rs
fuzz/src/msg_targets/msg_update_fulfill_htlc.rs
fuzz/src/peer_crypt.rs
fuzz/src/router.rs

index a4a0bf23b3e98133ebe77d052ef8bc441fd60292..a6d3ff061abe615761f9747036ac32db669fd25b 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 91bc66c19bfde5c994892f677633c8f8bb254dc0..91d5f1e113d67029fec1b5eaa0426054e0e6db55 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 4dbf0cc91583fc8f83b02e08b549de0cf283b142..955202d24ebb0a8adc4dafd272ae66c352d3f34f 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index c235601108e8af7e203b460b14868c78db476c60..8112ebf947c59b006ef7272c2a7b5c30b9ef8d4a 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 54f3d823ddd84704cd99d3b016281fde098d4db4..f234dadfda7dbcb040cf816fabb37591a7a0cd50 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 5ab797f6749b6317e8926748d7635ae92739510e..a2a63643f15ed813f90c6dc8fd57a4e6acbb57f5 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 79b23e409dcd280ab020754ebfe8ca6aee64daf0..908d20676329df58e8536a73b6c3ec1b32e0cffe 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index f9dffda2dc120efdc2f6fd452a3a31a47b86b8c2..6eb7ba190c440169e2911f7b50fcb66a2ed701b6 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index eee7145c7893c839ebebee43370ccaa5755cc00e..3377ffd6afb3ee38bdf307f22d6f9aa654eca7ac 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 6ce13f47b3beda82a2c7e473dc22629dee4f99db..a9cef5fe25a903b8c422f8ba2ccb068fb89699ad 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index c5c9d4a5399be2955474c9d06fb0d6108f68c480..cefcf06bd60ffc1ef39de43ce85f8118e4dbabee 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 1fa04d9612893110c7df9437a4a1e1bdc9bd9f38..c8706d21a5ae7dfcbef16f07d3db329864f9a824 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index e9fedc3ce8c8f8fb39be7fd698fec6aec2d1e957..f51caf57e7e913175b7021eca2bed2ae44a0d007 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 3665ce99520178d38fd160d7c02ce8c86d99e4a9..14954096a119450265135c8b3c976a569b0dc3a4 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 057cc6fe6a22d7dd566909a21ef57bcc8777e5b2..dcd5dd9d9c7228976ea0a25b3ab6e1979b41e0cc 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 0bcbeda108e202194e37f4722e3a28f6a484530b..4dd75f2e3412a6e957e691cdfc15665f57260040 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index e3dde9fb62f73ea884d72c5abc33a4f632489e0a..ae778b679d74c2a0f7a60ffae89771b8e37a80eb 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index ea2b6e4d416c86e3cb37c95fb15912f6cee1a63d..95453bc954a05873e6fe6e1b9c8d28d4d73e63a5 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 690db561e94964888577cd1d890a2e673988a736..fa385e564586b12368c42c5f5be5c936c5e6515c 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 871c8e147aabddcb0b8e19b210db71cf7eae9ddc..e8b0a5983aa3b445abc4fc2ca3c8520e02fcab63 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index c4fc46167a43a0cf1d49ce3d31b88a368edddc3b..f7408ec52f297dd795b3aebd7083854bf7c04a47 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 2c844c2aa30d135527619030b2cb84eca5828a19..47f125a44af46b7d2b74cd0e843cfae566248dc8 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index ea1678ce20683ee1d723a2802c5798415a4a6971..fb400f7730ea2e02de5bcc8a636ee069f41c90a5 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index cc8f67306a28c7b1944fd3abf2fc6bcbcc044a64..e433a4468f0ac17aa339d5fb80827c04ca417532 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 5099fed190acc1e422b290c84156d58c173bd4b9..ee8bb3af1726ed0d9d5c384e204dbc8686364d47 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 9eea92797b79c5d15c4c2f28dd7b17c093c72663..06eb31d32a789493d1380b077a0f5b0a927d3430 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 50a96aa0be1cf629c17b5407aaf1e29f24a3db33..12e5c384f555277830cee5fa6ff89511c7917480 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 35bf38e9a192b4a509a4253e6d9081ef973a57e4..a5a8bda338aacc871e8b663d4a973ab2ea0a9380 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 8c1f7b018cf5864f379362e5a063fd4a39ebe554..b32854f051e25ddab9e88aa267d35353c4c65533 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 9b26a176bfac82af6a2504dde3dd24ca8fe497fb..3e82b196a46415f2955402b326cf42d6571bf58a 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index 3ebb480df6970e0dff08484ac9ef3d4b40ac2c8d..9815e9ccc29c50b62e9af900fb631bece38332fc 100644 (file)
@@ -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<u8> = 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());
+               }
+       }
+}
index c2f4ebf471cbe67aaeb5efea47c353958b0eeed3..95def807bd32957ade14ab559bbfaa45ee2794b1 100644 (file)
@@ -791,11 +791,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());
-       }
-}
index 5dde4a2ea43057ca734f814d27fd2ca4a812cc3c..5d15f718fa7b19a9314f36e3d6bf2c80d9ff0908 100644 (file)
@@ -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());
-       }
-}
index c7d1d1686207b343d8e4dcb5b4d2ac92dd32c07b..4d1bf5e0bcdedac3e2439b62d42dd3e0f0a89695 100644 (file)
@@ -542,12 +542,6 @@ mod tests {
        use std::collections::HashMap;
        use std::sync::{Arc, Mutex};
 
-       #[test]
-       fn duplicate_crash() {
-               let logger: Arc<dyn Logger> = Arc::new(test_logger::TestLogger::new("".to_owned()));
-               super::do_test(&::hex::decode("00").unwrap(), &logger);
-       }
-
        struct TrackingLogger {
                /// (module, message) -> count
                pub lines: Mutex<HashMap<(String, String), usize>>,
index 04e3cc245339b560b83feb0300efafdd9b54accb..94baec595e0a1b9891c959483a742d78751fcb70 100644 (file)
@@ -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());
-       }
-}
index 1df6aeca31bfdab704c3909b3bc27b853434edeb..065295b9e12a9f17d2bff2afbf81009b672214ae 100644 (file)
@@ -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());
-       }
-}
index 9e2363eab47588e903f4790f8e137e07006db938..dafcdafed8278ba20af488e757b17bc1354ae2c6 100644 (file)
@@ -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());
-       }
-}
index a81f0aebfc61eb9c8823a58b3f9187947757969d..8d05450e7e5444551993b8014147ecec3a14a438 100644 (file)
@@ -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());
-       }
-}
index aaef33ea2c0047ed8c3117c259166e24d1647608..0d3edfe88553b38b6288f18cc017e2a9e6de77d7 100644 (file)
@@ -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());
-       }
-}
index 9a959d58cc309ba907229b45ae4aa87006656d14..8043d9de083853fc1c70145e2df2c8908c68962f 100644 (file)
@@ -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());
-       }
-}
index e84c987148f6de4fe077fdd0bd5b562a2cc7275e..319f46c597706fbddf061e8233c696dfdd49aa50 100644 (file)
@@ -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());
-       }
-}
index e49d22b3a1a12bf35fc6a88f6b63d7b7b5a8757b..d6e5a829d1f9bed2dd552241e0d6547f75fa7fc9 100644 (file)
@@ -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());
-       }
-}
index 6b5bcccf27bfc4bc8c092ea941c4e8dbb36086f2..16594953eb8ef90ff14301867c4e9a3ecd0663a7 100644 (file)
@@ -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());
-       }
-}
index 8e468a85aca5696b7db2168a4a07f66d56884269..cc322cbb09801487faeb587d358d0b652534fd65 100644 (file)
@@ -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());
-       }
-}
index 29e9c8a6ab6c722fb4451de8fdb9de19ecb47ce0..a546ed8bb604daf976faf499f56c498c9d0710db 100644 (file)
@@ -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());
-       }
-}
index 412558fe99470b43f4d80742ec3f2082a90d43cf..0210b5ec61f954c0f42da199d7d0a23a76226706 100644 (file)
@@ -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());
-       }
-}
index dbc0745857236ddb391b787e7e200c8281500c62..52b92acd01931a581de44990c4d25466adca4cc9 100644 (file)
@@ -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());
-       }
-}
index 95de73ba7446e6b4a95349bc40824d63121da662..bb09f87e7f97d3e7c59ada698a3fae917088e5de 100644 (file)
@@ -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());
-       }
-}
index 7db90a6907af84dcf90e303f9556e3bfe32f9c74..9d7ad602582fafa2a36d5cee16adefabd6d28195 100644 (file)
@@ -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());
-       }
-}
index 2688b41819c980f9f5b04e9ab6e96f665b8e0f75..9c700c2b2e44e9b49fd55742e208c69da87a2b83 100644 (file)
@@ -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());
-       }
-}
index 21b74ad9f2817551a6b449e0c1d1ea5419c54fc9..67e2382f09d3bdb28ab3421a988bb6df9b02ee5c 100644 (file)
@@ -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());
-       }
-}
index c8fc4c59d4a6db97cc1592f43df6ce2a167ee4ef..cec5c5adf68b9e2be02cf1856c4ad6726204a290 100644 (file)
@@ -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());
-       }
-}
index ca5412f5c1dff0d0633014a0e7770bf1010b5f41..6df64e3e4d2ea36c7ed4262e5a86971bbe9018b3 100644 (file)
@@ -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());
-       }
-}
index c249ffcecce8619629cf940ee61712694a0640a0..d70d9a6a7b5ce8add19332edf9426597aecb2f01 100644 (file)
@@ -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());
-       }
-}
index 6877918a5f6fb7d923f6b12e8b9eb2ba7abb186b..ea785ff4ef314073a6e4e7baff428793abaa9c31 100644 (file)
@@ -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());
-       }
-}
index 960399abb74e43cc7df59829d90809c112cdd809..13b648f0af57a6ee0f7f825dad125f22f3310d1b 100644 (file)
@@ -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());
-       }
-}
index 8eb2870d36684586c44d8499b3ade0423fffd8df..e21d2146c4ae9db337cb1b8f05a8ca62f7658e88 100644 (file)
@@ -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());
-       }
-}
index 4d1ab282f5c9ef59f1f9e32c1a8a2c167573da30..e27b85281902d35082748166274c0b75ec620ff1 100644 (file)
@@ -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());
-       }
-}
index 8d3bb89415fef1c478d01943a83b3f70622c7b3f..5051bb87d7cac2a26e986b31935870097198734e 100644 (file)
@@ -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());
-       }
-}
index ab7277084051656d31922f091e9d087d0df2461d..b8b3d98a92c05a20d41a3c1b3edaca2e0552e95d 100644 (file)
@@ -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());
-       }
-}
index 8e61644644ec4a474f3e6c76184c0cd7a7f36967..e0ff02f04ccc341a219cc9a90bf308a349224591 100644 (file)
@@ -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());
-       }
-}
index 075c900aba54e2f648a492030186e793622cb271..b0d7b6031486039e98f974065102b1010a5d0677 100644 (file)
@@ -237,11 +237,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());
-       }
-}