This commit is contained in:
tux
2026-11-04 09:39:26 +01:00
parent 2d50b0fbea
commit c03450db06
5 changed files with 197 additions and 86 deletions
+25
View File
@@ -98,6 +98,31 @@ fn end_to_end_image_rip() {
assert!(analyze_text.contains("Checking drive cache/timing behavior"));
std::env::remove_var("CDRUSTANOIA_TEST_IMAGE");
// A payload larger than the async writer's chunk size exercises the
// queue and chunk-boundary path end to end.
let big_image = dir.path().join("big.raw");
let big_out = dir.path().join("big.out.raw");
let big_sectors = 300usize;
let mut big_samples = Vec::with_capacity(big_sectors * 1176);
for i in 0..big_sectors * 1176 {
big_samples.push((((i as i64 * 65537) % 65536) as i32 - 32768) as i16);
}
std::fs::write(&big_image, samples_to_bytes(&big_samples)).unwrap();
std::env::set_var("CDRUSTANOIA_TEST_IMAGE", &big_image);
let argv = vec![
"cdparanoia".to_string(),
"-q".to_string(),
"-r".to_string(),
"1".to_string(),
big_out.to_string_lossy().into_owned(),
];
assert_eq!(cdrustanoia_cli::run(&argv), 0);
assert_eq!(
std::fs::read(&big_out).unwrap(),
samples_to_bytes(&big_samples)
);
std::env::set_var("CDRUSTANOIA_TEST_IMAGE", &image);
// Multi-track batch mode.
let multi = dir.path().join("multi.raw");
let mut multi_samples = Vec::new();