Skip to content

Commit 3be69dc

Browse files
committed
recurse full published directory
1 parent 0916f88 commit 3be69dc

1 file changed

Lines changed: 44 additions & 17 deletions

File tree

src/test/mpeg_file_format_conformance.rs

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::path::PathBuf;
1+
use std::path::{Path, PathBuf};
22

33
use crate::{Any, ReadFrom};
44

@@ -11,24 +11,51 @@ fn test_published() {
1111
"FileFormatConformance/data/file_features/published/isobmff/a7-tone-oddities.mp4".into(),
1212
"FileFormatConformance/data/file_features/published/isobmff/04_bifs_video.mp4".into(),
1313
"FileFormatConformance/data/file_features/published/isobmff/09_text.mp4".into(),
14+
"FileFormatConformance/data/file_features/published/green/video_2500000bps_0.mp4".into(),
15+
"FileFormatConformance/data/file_features/published/heif/C027.heic".into(),
16+
"FileFormatConformance/data/file_features/published/heif/C028.heic".into(),
17+
"FileFormatConformance/data/file_features/published/heif/C041.heic".into(),
18+
"FileFormatConformance/data/file_features/published/isobmff/compact-no-code-fec-1.iso3"
19+
.into(),
20+
"FileFormatConformance/data/file_features/published/isobmff/compact-no-code-fec-2.iso3"
21+
.into(),
22+
"FileFormatConformance/data/file_features/published/isobmff/mbms-fec.iso3".into(),
1423
];
1524

16-
let paths =
17-
std::fs::read_dir("FileFormatConformance/data/file_features/published/isobmff/").unwrap();
18-
for path in paths {
19-
let direntry = path.unwrap();
20-
let path = direntry.path().into_os_string().into_string().unwrap();
21-
if path.ends_with(".mp4") {
22-
println!("checking {:?}", direntry);
23-
match check_one_file(&direntry.path()) {
24-
true => assert!(
25-
!expected_fails.contains(&path),
26-
"expected {path} to fail, but it unexpectedly passed"
27-
),
28-
false => assert!(
29-
expected_fails.contains(&path),
30-
"expected {path} to pass, but it unexpectedly failed"
31-
),
25+
for entry in std::fs::read_dir("FileFormatConformance/data/file_features/published").unwrap() {
26+
let direntry = entry.unwrap();
27+
let path = direntry.path();
28+
if path.is_dir() {
29+
check_directory(&expected_fails, &path);
30+
}
31+
}
32+
}
33+
34+
fn check_directory(expected_fails: &Vec<String>, directory: &Path) {
35+
for entry in std::fs::read_dir(directory).unwrap() {
36+
let direntry = entry.unwrap();
37+
let path = direntry.path();
38+
if path.is_dir() {
39+
check_directory(expected_fails, &path);
40+
} else {
41+
let filepath = direntry.path().into_os_string().into_string().unwrap();
42+
if !filepath.ends_with(".json")
43+
&& !filepath.ends_with(".dat")
44+
&& !filepath.ends_with(".zip")
45+
&& !filepath.ends_with(".txt")
46+
&& !filepath.ends_with(".xml")
47+
{
48+
println!("checking {:?}", direntry);
49+
match check_one_file(&direntry.path()) {
50+
true => assert!(
51+
!expected_fails.contains(&filepath),
52+
"expected {filepath} to fail, but it unexpectedly passed"
53+
),
54+
false => assert!(
55+
expected_fails.contains(&filepath),
56+
"expected {filepath} to pass, but it unexpectedly failed"
57+
),
58+
}
3259
}
3360
}
3461
}

0 commit comments

Comments
 (0)