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