1 use std::fs::{self, DirEntry}; 2 use x509_parser::parse_x509_certificate; 3 4 const ARTIFACTS_DIR: &str = "fuzz/artifacts/fuzzer_script_1"; 5 const CORPUS_DIR: &str = "fuzz/corpus/fuzzer_script_1"; 6 7 #[test] run_all_fuzz_files()8fn run_all_fuzz_files() { 9 parse_dir(ARTIFACTS_DIR); 10 parse_dir(CORPUS_DIR); 11 } 12 parse_dir(name: &str)13fn parse_dir(name: &str) { 14 match fs::read_dir(name) { 15 Ok(dir_entries) => { 16 dir_entries.for_each(|entry| { 17 let _ = entry.as_ref().map(|e| parse_file(e)); 18 }); 19 } 20 Err(_) => eprintln!("fuzzer corpus/artifacts not found - ignoring test"), 21 } 22 } 23 parse_file(entry: &DirEntry) -> std::io::Result<()>24fn parse_file(entry: &DirEntry) -> std::io::Result<()> { 25 let path = entry.path(); 26 // println!("{:?}", entry.path()); 27 let data = fs::read(path).unwrap(); 28 let _ = parse_x509_certificate(&data); 29 Ok(()) 30 } 31 32 #[test] 33 #[ignore = "placeholder for specific tests"] run_fuzz_candidate()34fn run_fuzz_candidate() { 35 const CANDIDATE: &str = "fuzz/corpus/fuzzer_script_1/bd0096a63b9979d64763915a342a59af9dc281fb"; 36 37 let data = fs::read(CANDIDATE).unwrap(); 38 let _ = parse_x509_certificate(&data); 39 } 40