diff --git a/server/src/chunking/mod.rs b/server/src/chunking/mod.rs index 4896046..1cce537 100644 --- a/server/src/chunking/mod.rs +++ b/server/src/chunking/mod.rs @@ -90,21 +90,27 @@ mod tests { /// Chunks and reconstructs a file. #[test] fn test_chunking_basic() { - block_on(async move { - let test_file = get_data(32 * 1024 * 1024); // 32 MiB - let mut reconstructed_file = Vec::new(); + fn case(size: usize) { + block_on(async move { + let test_file = get_data(size); // 32 MiB + let mut reconstructed_file = Vec::new(); - let cursor = Cursor::new(&test_file); - let mut chunks = chunk_stream(cursor, 8 * 1024, 16 * 1024, 32 * 1024); + let cursor = Cursor::new(&test_file); + let mut chunks = chunk_stream(cursor, 8 * 1024, 16 * 1024, 32 * 1024); - while let Some(chunk) = chunks.next().await { - let chunk = chunk.unwrap(); - eprintln!("Got a {}-byte chunk", chunk.len()); - reconstructed_file.extend(chunk); - } + while let Some(chunk) = chunks.next().await { + let chunk = chunk.unwrap(); + eprintln!("Got a {}-byte chunk", chunk.len()); + reconstructed_file.extend(chunk); + } - assert_eq!(reconstructed_file, test_file); - }); + assert_eq!(reconstructed_file, test_file); + }); + } + + case(32 * 1024 * 1024 - 1); + case(32 * 1024 * 1024); + case(32 * 1024 * 1024 + 1); } /// Returns some fake data.