From 06601418684ecfea64673fa6b15a2a468e6ffd49 Mon Sep 17 00:00:00 2001 From: Chris Hennick Date: Sun, 14 May 2023 08:31:37 -0700 Subject: [PATCH] Eliminate redundant name field in FileOperation for more efficient fuzzing --- fuzz/fuzz_targets/fuzz_write.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/fuzz/fuzz_targets/fuzz_write.rs b/fuzz/fuzz_targets/fuzz_write.rs index 40174b58..6290460a 100644 --- a/fuzz/fuzz_targets/fuzz_write.rs +++ b/fuzz/fuzz_targets/fuzz_write.rs @@ -6,16 +6,10 @@ use arbitrary::Arbitrary; use std::io::{Cursor, Read, Seek, Write}; use std::path::{PathBuf}; -#[derive(Arbitrary,Debug)] -pub struct File { - pub name: String, - pub contents: Vec> -} - #[derive(Arbitrary,Debug)] pub enum BasicFileOperation { WriteNormalFile { - file: File, + contents: Vec>, options: zip_next::write::FileOptions, }, WriteDirectory(zip_next::write::FileOptions), @@ -39,12 +33,12 @@ fn do_operation(writer: &mut RefCell>, where T: Read + Write + Seek { let name = operation.name; match operation.basic { - BasicFileOperation::WriteNormalFile {file, mut options, ..} => { - if file.contents.iter().map(Vec::len).sum::() >= u32::MAX as usize { + BasicFileOperation::WriteNormalFile {contents, mut options, ..} => { + if contents.iter().map(Vec::len).sum::() >= u32::MAX as usize { options = options.large_file(true); } - writer.borrow_mut().start_file(file.name.to_owned(), options)?; - for chunk in &file.contents { + writer.borrow_mut().start_file(name, options)?; + for chunk in contents { writer.borrow_mut().write_all(chunk.as_slice())?; } }