#[test]
fn test_file_corruption() {
use flac_codec::byteorder::LittleEndian;
use flac_codec::decode::FlacByteReader;
use std::io::{copy, sink};
let flac = include_bytes!("data/sine.flac");
assert!(
copy(
&mut FlacByteReader::endian(&flac[..], LittleEndian).unwrap(),
&mut sink()
)
.is_ok()
);
let valid_range = 136..flac.len();
for _ in 0..100 {
let mut flac: Vec<u8> = Vec::from(flac);
flac[fastrand::usize(valid_range.clone())] ^= 1 << fastrand::u32(0..8);
assert!(
copy(
&mut FlacByteReader::endian(&flac[..], LittleEndian).unwrap(),
&mut sink()
)
.is_err()
);
}
}