Skip to content

Commit db062aa

Browse files
committed
chore: 重新组织需要外部文件的测试
1 parent fca1d76 commit db062aa

1 file changed

Lines changed: 62 additions & 58 deletions

File tree

crates/ffmpeg_audio/tests/integration_test.rs

Lines changed: 62 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::{
2-
fs::File,
32
io::Cursor,
43
time::Duration,
54
};
@@ -10,9 +9,6 @@ use ffmpeg_audio::{
109
SeekMode,
1110
};
1211

13-
const AAC_SEEK_PATH: &str = "tests/assets/seek_test.aac";
14-
const MUTATION_AAC_PATH: &str = "tests/assets/format_mutation.aac";
15-
1612
fn generate_sine_wav(duration_secs: f32) -> Vec<u8> {
1713
let sample_rate: u32 = 44100;
1814
let freq: f32 = 440.0;
@@ -398,72 +394,80 @@ fn test_planar_format_mismatch_rejection_planar_to_packed() {
398394
);
399395
}
400396

401-
#[test]
402397
#[cfg(not(target_arch = "wasm32"))]
403-
fn test_seek_accuracy() {
404-
let file = File::open(AAC_SEEK_PATH).expect("Failed to open AAC test asset");
405-
let mut reader = AudioReader::new(file).unwrap();
398+
mod file_tests {
399+
use std::fs::File;
406400

407-
let target = Duration::from_millis(501);
401+
use super::*;
408402

409-
reader.seek(target, SeekMode::Coarse).unwrap();
410-
let (coarse_pts, coarse_samples) = {
411-
let frame = reader.receive_frame().unwrap().unwrap();
412-
(frame.pts().unwrap(), frame.samples())
413-
};
403+
const AAC_SEEK_PATH: &str = "tests/assets/seek_test.aac";
404+
const MUTATION_AAC_PATH: &str = "tests/assets/format_mutation.aac";
414405

415-
assert!(coarse_pts < target, "Coarse seek PTS should be < target");
406+
#[test]
407+
fn test_seek_accuracy() {
408+
let file = File::open(AAC_SEEK_PATH).expect("Failed to open AAC test asset");
409+
let mut reader = AudioReader::new(file).unwrap();
416410

417-
reader.seek(target, SeekMode::Accurate).unwrap();
418-
let (accurate_pts, accurate_samples) = {
419-
let frame = reader.receive_frame().unwrap().unwrap();
420-
(frame.pts().unwrap(), frame.samples())
421-
};
411+
let target = Duration::from_millis(501);
422412

423-
assert_eq!(
424-
accurate_pts.as_millis(),
425-
target.as_millis(),
426-
"Accurate seek PTS must exactly match the target"
427-
);
413+
reader.seek(target, SeekMode::Coarse).unwrap();
414+
let (coarse_pts, coarse_samples) = {
415+
let frame = reader.receive_frame().unwrap().unwrap();
416+
(frame.pts().unwrap(), frame.samples())
417+
};
428418

429-
assert!(
430-
accurate_samples < coarse_samples,
431-
"Accurate frame should be trimmed ({accurate_samples} < {coarse_samples})"
432-
);
433-
}
434-
435-
#[test]
436-
#[cfg(not(target_arch = "wasm32"))]
437-
fn test_hot_reload_on_format_mutation() {
438-
let file = File::open(MUTATION_AAC_PATH).unwrap();
439-
let reader = AudioReader::new(file).unwrap();
419+
assert!(coarse_pts < target, "Coarse seek PTS should be < target");
440420

441-
let options = ResampleOptions::new()
442-
.format::<f32>()
443-
.channels(2)
444-
.sample_rate(48000);
421+
reader.seek(target, SeekMode::Accurate).unwrap();
422+
let (accurate_pts, accurate_samples) = {
423+
let frame = reader.receive_frame().unwrap().unwrap();
424+
(frame.pts().unwrap(), frame.samples())
425+
};
445426

446-
let mut resampled_reader = reader.into_resampled(options).unwrap();
427+
assert_eq!(
428+
accurate_pts.as_millis(),
429+
target.as_millis(),
430+
"Accurate seek PTS must exactly match the target"
431+
);
447432

448-
let mut total_samples = 0;
433+
assert!(
434+
accurate_samples < coarse_samples,
435+
"Accurate frame should be trimmed ({accurate_samples} < {coarse_samples})"
436+
);
437+
}
449438

450-
loop {
451-
match resampled_reader.receive_frame_as::<f32>() {
452-
Ok(Some(samples)) => {
453-
assert_eq!(
454-
samples.len() % 2,
455-
0,
456-
"Output slice must be interleaved stereo"
457-
);
458-
total_samples += samples.len() / 2;
439+
#[test]
440+
fn test_hot_reload_on_format_mutation() {
441+
let file = File::open(MUTATION_AAC_PATH).unwrap();
442+
let reader = AudioReader::new(file).unwrap();
443+
444+
let options = ResampleOptions::new()
445+
.format::<f32>()
446+
.channels(2)
447+
.sample_rate(48000);
448+
449+
let mut resampled_reader = reader.into_resampled(options).unwrap();
450+
451+
let mut total_samples = 0;
452+
453+
loop {
454+
match resampled_reader.receive_frame_as::<f32>() {
455+
Ok(Some(samples)) => {
456+
assert_eq!(
457+
samples.len() % 2,
458+
0,
459+
"Output slice must be interleaved stereo"
460+
);
461+
total_samples += samples.len() / 2;
462+
}
463+
Ok(None) => break,
464+
Err(e) => panic!("Failed to receive frame: {e:?}"),
459465
}
460-
Ok(None) => break,
461-
Err(e) => panic!("Failed to receive frame: {e:?}"),
462466
}
463-
}
464467

465-
assert!(
466-
total_samples > 0,
467-
"Should have successfully decoded mutated stream"
468-
);
468+
assert!(
469+
total_samples > 0,
470+
"Should have successfully decoded mutated stream"
471+
);
472+
}
469473
}

0 commit comments

Comments
 (0)