mirror of
https://github.com/rustic-rs/rustic.git
synced 2025-10-26 11:18:51 +00:00
Merge pull request #56 from rustic-rs/chunk-empty
chunker: Fix treatment of empty files
This commit is contained in:
commit
ddc1b6f76d
@ -76,7 +76,7 @@ impl<R: Read> Iterator for ChunkIter<R> {
|
||||
if size < min_size {
|
||||
self.finished = true;
|
||||
vec.truncate(size + open_buf_len);
|
||||
return Some(Ok(vec));
|
||||
return if vec.is_empty() { None } else { Some(Ok(vec)) };
|
||||
}
|
||||
|
||||
self.rabin
|
||||
@ -229,3 +229,33 @@ fn qp(p: i32, g: &Polynom64) -> Polynom64 {
|
||||
// add x
|
||||
res.add(&2).modulo(g)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use std::io::Cursor;
|
||||
|
||||
#[test]
|
||||
fn chunk_empty() {
|
||||
let empty: Vec<u8> = vec![];
|
||||
let mut reader = Cursor::new(empty);
|
||||
|
||||
let poly = random_poly().unwrap();
|
||||
let chunker = ChunkIter::new(&mut reader, 0, &poly);
|
||||
|
||||
let chunks: Vec<_> = chunker.into_iter().collect();
|
||||
assert_eq!(0, chunks.len());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn chunk_empty_wrong_hint() {
|
||||
let empty: Vec<u8> = vec![];
|
||||
let mut reader = Cursor::new(empty);
|
||||
|
||||
let poly = random_poly().unwrap();
|
||||
let chunker = ChunkIter::new(&mut reader, 100, &poly);
|
||||
|
||||
let chunks: Vec<_> = chunker.into_iter().collect();
|
||||
assert_eq!(0, chunks.len());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user