Eliminate redundant name field in FileOperation for more efficient fuzzing
This commit is contained in:
parent
21ff795071
commit
0660141868
1 changed files with 5 additions and 11 deletions
|
@ -6,16 +6,10 @@ use arbitrary::Arbitrary;
|
||||||
use std::io::{Cursor, Read, Seek, Write};
|
use std::io::{Cursor, Read, Seek, Write};
|
||||||
use std::path::{PathBuf};
|
use std::path::{PathBuf};
|
||||||
|
|
||||||
#[derive(Arbitrary,Debug)]
|
|
||||||
pub struct File {
|
|
||||||
pub name: String,
|
|
||||||
pub contents: Vec<Vec<u8>>
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Arbitrary,Debug)]
|
#[derive(Arbitrary,Debug)]
|
||||||
pub enum BasicFileOperation {
|
pub enum BasicFileOperation {
|
||||||
WriteNormalFile {
|
WriteNormalFile {
|
||||||
file: File,
|
contents: Vec<Vec<u8>>,
|
||||||
options: zip_next::write::FileOptions,
|
options: zip_next::write::FileOptions,
|
||||||
},
|
},
|
||||||
WriteDirectory(zip_next::write::FileOptions),
|
WriteDirectory(zip_next::write::FileOptions),
|
||||||
|
@ -39,12 +33,12 @@ fn do_operation<T>(writer: &mut RefCell<zip_next::ZipWriter<T>>,
|
||||||
where T: Read + Write + Seek {
|
where T: Read + Write + Seek {
|
||||||
let name = operation.name;
|
let name = operation.name;
|
||||||
match operation.basic {
|
match operation.basic {
|
||||||
BasicFileOperation::WriteNormalFile {file, mut options, ..} => {
|
BasicFileOperation::WriteNormalFile {contents, mut options, ..} => {
|
||||||
if file.contents.iter().map(Vec::len).sum::<usize>() >= u32::MAX as usize {
|
if contents.iter().map(Vec::len).sum::<usize>() >= u32::MAX as usize {
|
||||||
options = options.large_file(true);
|
options = options.large_file(true);
|
||||||
}
|
}
|
||||||
writer.borrow_mut().start_file(file.name.to_owned(), options)?;
|
writer.borrow_mut().start_file(name, options)?;
|
||||||
for chunk in &file.contents {
|
for chunk in contents {
|
||||||
writer.borrow_mut().write_all(chunk.as_slice())?;
|
writer.borrow_mut().write_all(chunk.as_slice())?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue