Skip to content

Commit beddf4a

Browse files
committed
simplify digest_pad_combinations
1 parent 4953321 commit beddf4a

1 file changed

Lines changed: 11 additions & 28 deletions

File tree

block-buffer/tests/mod.rs

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -95,35 +95,18 @@ fn digest_pad_combinations() {
9595

9696
buf.digest_blocks(data, |_| panic!("should not be called"));
9797

98-
let mut n = 0;
99-
buf.digest_pad(delim, suffix, |block| {
100-
match n {
101-
0 => {
102-
assert!(block.starts_with(data));
103-
assert_eq!(block[data_len], delim);
104-
105-
let tail = &block[data_len + 1..];
106-
if tail.len() >= suffix_len {
107-
assert!(data.len() + suffix.len() < block.len());
108-
109-
let (l, r) = tail.split_at(tail.len() - suffix_len);
110-
assert!(l.iter().all(|b| *b == 0));
111-
assert_eq!(r, suffix);
112-
} else {
113-
assert!(tail.iter().all(|b| *b == 0));
114-
}
115-
}
116-
1 => {
117-
assert!(data.len() + suffix.len() >= block.len());
118-
let (l, r) = block.split_at(block.len() - suffix_len);
119-
assert!(l.iter().all(|b| *b == 0));
120-
assert_eq!(r, suffix);
121-
}
122-
_ => unreachable!(),
123-
}
124-
n += 1;
125-
});
98+
let mut accum = Vec::with_capacity(2 * buf.size());
99+
buf.digest_pad(delim, suffix, |block| accum.extend_from_slice(block));
100+
101+
assert!(accum.len() <= 2 * buf.size());
126102
assert_eq!(buf.get_pos(), 0);
103+
104+
let (res_data, rem) = accum.split_at(data_len);
105+
let (res_zeros, res_suffix) = rem.split_at(rem.len() - suffix_len);
106+
107+
assert_eq!(res_data, data);
108+
assert!(res_zeros.iter().all(|&b| b == 0));
109+
assert_eq!(res_suffix, suffix);
127110
}
128111
}
129112
}

0 commit comments

Comments
 (0)