955202d24ebb0a8adc4dafd272ae66c352d3f34f
[rust-lightning] / fuzz / src / bin / full_stack_target.rs
1 // This file is auto-generated by gen_target.sh based on target_template.txt
2 // To modify it, modify target_template.txt and run gen_target.sh instead.
3
4 #![cfg_attr(feature = "libfuzzer_fuzz", no_main)]
5
6 extern crate lightning_fuzz;
7 use lightning_fuzz::full_stack::*;
8
9 use std::fs;
10 use std::io::Read;
11
12 #[cfg(feature = "afl")]
13 #[macro_use] extern crate afl;
14 #[cfg(feature = "afl")]
15 fn main() {
16         fuzz!(|data| {
17                 full_stack_run(data.as_ptr(), data.len());
18         });
19 }
20
21 #[cfg(feature = "honggfuzz")]
22 #[macro_use] extern crate honggfuzz;
23 #[cfg(feature = "honggfuzz")]
24 fn main() {
25         loop {
26                 fuzz!(|data| {
27                         full_stack_run(data.as_ptr(), data.len());
28                 });
29         }
30 }
31
32 #[cfg(feature = "libfuzzer_fuzz")]
33 #[macro_use] extern crate libfuzzer_sys;
34 #[cfg(feature = "libfuzzer_fuzz")]
35 fuzz_target!(|data: &[u8]| {
36         full_stack_run(data.as_ptr(), data.len());
37 });
38
39 #[cfg(feature = "stdin_fuzz")]
40 fn main() {
41         let mut data = Vec::with_capacity(8192);
42         std::io::stdin().read_to_end(&mut data).unwrap();
43         full_stack_run(data.as_ptr(), data.len());
44 }
45
46 #[test]
47 fn run_test_cases() {
48         let mut data: Vec<u8> = vec![0];
49         full_stack_run(data.as_ptr(), data.len());
50         if let Ok(tests) = fs::read_dir("test_cases/full_stack") {
51                 for test in tests {
52                         data.clear();
53                         let path = test.unwrap().path();
54                         println!("Running test {}...", path.file_name().unwrap().to_str().unwrap());
55                         fs::File::open(path).unwrap().read_to_end(&mut data).unwrap();
56                         full_stack_run(data.as_ptr(), data.len());
57                 }
58         }
59 }