mirror of
https://github.com/SpaceManiac/SpacemanDMM.git
synced 2025-12-23 05:36:47 +00:00
48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
extern crate dmm_tools;
|
|
extern crate walkdir;
|
|
|
|
use dmm_tools::*;
|
|
use std::path::Path;
|
|
use walkdir::{DirEntry, WalkDir};
|
|
|
|
fn is_visible(entry: &DirEntry) -> bool {
|
|
entry
|
|
.path()
|
|
.file_name()
|
|
.unwrap_or("".as_ref())
|
|
.to_str()
|
|
.map(|s| !s.starts_with('.'))
|
|
.unwrap_or(true)
|
|
}
|
|
|
|
fn files_with_extension<F: FnMut(&Path)>(ext: &str, mut f: F) {
|
|
let dir = match std::env::var_os("TEST_DME") {
|
|
Some(dme) => Path::new(&dme).parent().unwrap().to_owned(),
|
|
None => {
|
|
println!("Set TEST_DME to check .{ext} files");
|
|
return;
|
|
},
|
|
};
|
|
for entry in WalkDir::new(dir).into_iter().filter_entry(is_visible) {
|
|
let entry = entry.unwrap();
|
|
if entry.file_type().is_file() && entry.path().extension() == Some(ext.as_ref()) {
|
|
let path = entry.path();
|
|
println!("{}", path.display());
|
|
f(path);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn parse_all_dmm() {
|
|
files_with_extension("dmm", |path| {
|
|
dmm::Map::from_file(path).unwrap();
|
|
});
|
|
}
|
|
|
|
#[test]
|
|
fn parse_all_dmi() {
|
|
files_with_extension("dmi", |path| {
|
|
dmi::Metadata::from_file(path).unwrap();
|
|
});
|
|
}
|