make CI faster by decreasing size of tests

make fuzzing tests create less files, with half the size and run less
test cases

should speed up by a magnitude of ~5.0x
This commit is contained in:
João M. Bezerra 2023-09-15 15:50:31 -03:00 committed by João Marcos
parent 4703f1b821
commit 0151238c87
2 changed files with 12 additions and 9 deletions

View File

@ -65,22 +65,22 @@ fn create_random_files(dir: impl Into<PathBuf>, depth: u8, rng: &mut SmallRng) {
let dir = &dir.into(); let dir = &dir.into();
// create 0 to 7 random files // create 0 to 4 random files
for _ in 0..rng.gen_range(0..8u32) { for _ in 0..rng.gen_range(0..=4u32) {
write_random_content( write_random_content(
&mut tempfile::Builder::new().tempfile_in(dir).unwrap().keep().unwrap().0, &mut tempfile::Builder::new().tempfile_in(dir).unwrap().keep().unwrap().0,
rng, rng,
); );
} }
// create more random files in 0 to 3 new directories // create more random files in 0 to 2 new directories
for _ in 0..rng.gen_range(0..4u32) { for _ in 0..rng.gen_range(0..=2u32) {
create_random_files(&tempfile::tempdir_in(dir).unwrap().into_path(), depth - 1, rng); create_random_files(&tempfile::tempdir_in(dir).unwrap().into_path(), depth - 1, rng);
} }
} }
// compress and decompress a single empty file // compress and decompress a single empty file
#[proptest(cases = 512)] #[proptest(cases = 200)]
fn single_empty_file(ext: Extension, #[any(size_range(0..8).lift())] exts: Vec<FileExtension>) { fn single_empty_file(ext: Extension, #[any(size_range(0..8).lift())] exts: Vec<FileExtension>) {
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();
let dir = dir.path(); let dir = dir.path();
@ -99,7 +99,7 @@ fn single_empty_file(ext: Extension, #[any(size_range(0..8).lift())] exts: Vec<F
} }
// compress and decompress a single file // compress and decompress a single file
#[proptest(cases = 512)] #[proptest(cases = 250)]
fn single_file( fn single_file(
ext: Extension, ext: Extension,
#[any(size_range(0..8).lift())] exts: Vec<FileExtension>, #[any(size_range(0..8).lift())] exts: Vec<FileExtension>,
@ -123,10 +123,13 @@ fn single_file(
} }
// compress and decompress a directory with random content generated with create_random_files // compress and decompress a directory with random content generated with create_random_files
#[proptest(cases = 512)] //
// this one runs only 50 times because there are only `.zip` and `.tar` to be tested, and
// single-file formats testing is done in the other test
#[proptest(cases = 50)]
fn multiple_files( fn multiple_files(
ext: DirectoryExtension, ext: DirectoryExtension,
#[any(size_range(0..8).lift())] exts: Vec<FileExtension>, #[any(size_range(0..7).lift())] exts: Vec<FileExtension>,
#[strategy(0u8..4)] depth: u8, #[strategy(0u8..4)] depth: u8,
) { ) {
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();

View File

@ -30,7 +30,7 @@ pub fn cargo_bin() -> Command {
// write random content to a file // write random content to a file
pub fn write_random_content(file: &mut impl Write, rng: &mut impl RngCore) { pub fn write_random_content(file: &mut impl Write, rng: &mut impl RngCore) {
let mut data = Vec::new(); let mut data = Vec::new();
data.resize(rng.gen_range(0..8192), 0); data.resize(rng.gen_range(0..4096), 0);
rng.fill_bytes(&mut data); rng.fill_bytes(&mut data);
file.write_all(&data).unwrap(); file.write_all(&data).unwrap();
} }