diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-11-18 23:14:47 +0000 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-11-18 23:45:31 +0000 |
commit | 0262ded968ece38cff5cb80626299155ef040228 (patch) | |
tree | a1c089ba7ad59aa99ad60af9d548dcb28a0cc227 /examples/generate_fuzz.rs | |
parent | 90956826a5e267e8c9d220561e8b2506efe97d02 (diff) | |
download | vt100-rust-0262ded968ece38cff5cb80626299155ef040228.tar.gz vt100-rust-0262ded968ece38cff5cb80626299155ef040228.zip |
add fuzzer input generator
Diffstat (limited to 'examples/generate_fuzz.rs')
-rw-r--r-- | examples/generate_fuzz.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/generate_fuzz.rs b/examples/generate_fuzz.rs new file mode 100644 index 0000000..92c983b --- /dev/null +++ b/examples/generate_fuzz.rs @@ -0,0 +1,25 @@ +use std::io::BufRead as _; +use std::io::Write as _; + +#[path = "../tests/helpers/mod.rs"] +mod helpers; + +fn main() { + let name = std::env::args().nth(1).unwrap(); + let _ = std::fs::remove_file(format!("fuzz/in/{}", name)); + + let inputs = + std::fs::File::open(format!("tests/data/fixtures/{}.in", name)) + .unwrap(); + let inputs = std::io::BufReader::new(inputs); + + let mut bytes = vec![]; + for line in inputs.lines() { + let line = line.unwrap(); + let input = helpers::unhex(line.as_bytes()); + bytes.extend(input.iter()); + } + let mut input_file = + std::fs::File::create(format!("fuzz/in/{}", name)).unwrap(); + input_file.write_all(&bytes).unwrap(); +} |