From 8ea7e3d9505ca5fc423de7c9c3bd5b6f08bc5709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cyryl=20P=C5=82otnicki?= Date: Sat, 28 Nov 2020 12:03:02 +0000 Subject: [PATCH] port data weight test to proptest --- src/repository/mod.rs | 33 ++++++++++++++------------------- src/test/source.rs | 2 +- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/repository/mod.rs b/src/repository/mod.rs index ae18404..863fa7b 100644 --- a/src/repository/mod.rs +++ b/src/repository/mod.rs @@ -173,31 +173,26 @@ impl<'a> Repository<'a> { mod must { use super::Repository; use crate::test::source::TempSource; - use anyhow::Result; + use proptest::prelude::*; use tempfile::tempdir; - #[test] - fn have_size_equal_to_sum_of_sizes_of_backed_up_files() -> Result<()> { - let source = TempSource::new().unwrap(); - let repository_path = tempdir().unwrap().into_path(); - Repository::init(&repository_path)?; + proptest! { - let file_size1 = 13; - let file_size2 = 27; + #[test] + fn have_size_equal_to_sum_of_sizes_of_backed_up_files(file_size1 in 0u64..128, file_size2 in 0u64..128) { + let source = TempSource::new().unwrap(); + let repository_path = tempdir().unwrap().into_path(); + Repository::init(&repository_path).unwrap(); - let mut backup_repository = Repository::open(&repository_path)?; - source.write_random_bytes_to_file("file1", file_size1)?; - backup_repository.store(&source.file_path("file1"))?; + let mut backup_repository = Repository::open(&repository_path).unwrap(); + source.write_random_bytes_to_file("file1", file_size1)?; + backup_repository.store(&source.file_path("file1")).unwrap(); - source.write_random_bytes_to_file("file2", file_size2)?; - backup_repository.store(&source.file_path("file2"))?; + source.write_random_bytes_to_file("file2", file_size2)?; + backup_repository.store(&source.file_path("file2")).unwrap(); - assert_eq!((file_size1 + file_size2) as u64, backup_repository.data_weight()?); + assert_eq!(file_size1 + file_size2, backup_repository.data_weight().unwrap()); + } - backup_repository.save_index()?; - - assert_eq!((file_size1 + file_size2) as u64, backup_repository.data_weight()?); - - Ok(()) } } diff --git a/src/test/source.rs b/src/test/source.rs index 5a266cf..7eb9d35 100644 --- a/src/test/source.rs +++ b/src/test/source.rs @@ -25,7 +25,7 @@ impl TempSource { self.write_bytes_to_file(filename, text.as_bytes()) } - pub fn write_random_bytes_to_file(&self, filename: &str, size: usize) -> Result<(), Error> { + pub fn write_random_bytes_to_file(&self, filename: &str, size: u64) -> Result<(), Error> { let random_bytes: Vec = (0..size).map(|_| rand::random::()).collect(); self.write_bytes_to_file(filename, &random_bytes)?; Ok(())