Drop individual fuzz target duplicate_crash tests for file reader
[rust-lightning] / fuzz / src / bin / peer_crypt_target.rs
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());
+               }
+       }
+}