aboutsummaryrefslogtreecommitdiffstats
path: root/examples/generate_fuzz.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-11-18 23:14:47 +0000
committerJesse Luehrs <doy@tozt.net>2021-11-18 23:45:31 +0000
commit0262ded968ece38cff5cb80626299155ef040228 (patch)
treea1c089ba7ad59aa99ad60af9d548dcb28a0cc227 /examples/generate_fuzz.rs
parent90956826a5e267e8c9d220561e8b2506efe97d02 (diff)
downloadvt100-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.rs25
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();
+}