aboutsummaryrefslogtreecommitdiff
path: root/crates/fparkan-msh
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-06-22 16:29:33 +0300
committerValentin Popov <valentin@popov.link>2026-06-22 16:29:33 +0300
commit162de8ccabdd3ccf55e1da28532cad6e8345093d (patch)
treed7f33966ddb1dd4fe9e82caea62bc99aeb269535 /crates/fparkan-msh
parent0b23cf48e7aba160b2786d8359e8cfb4ca13da07 (diff)
downloadfparkan-162de8ccabdd3ccf55e1da28532cad6e8345093d.tar.xz
fparkan-162de8ccabdd3ccf55e1da28532cad6e8345093d.zip
fix: require manifests for licensed gates
Diffstat (limited to 'crates/fparkan-msh')
-rw-r--r--crates/fparkan-msh/src/lib.rs29
1 files changed, 17 insertions, 12 deletions
diff --git a/crates/fparkan-msh/src/lib.rs b/crates/fparkan-msh/src/lib.rs
index 3ec3def..5a54a59 100644
--- a/crates/fparkan-msh/src/lib.rs
+++ b/crates/fparkan-msh/src/lib.rs
@@ -1239,9 +1239,7 @@ mod tests {
#[ignore = "requires licensed corpus"]
fn licensed_corpus_msh_assets_validate() {
for (corpus, expected) in [("IS", 435_usize), ("IS2", 511_usize)] {
- let Some(root) = corpus_root(corpus) else {
- continue;
- };
+ let root = corpus_root(corpus);
let mut count = 0usize;
for path in files_under(&root) {
let Ok(bytes) = std::fs::read(&path) else {
@@ -1304,9 +1302,7 @@ mod tests {
13_040_438_305_408_523_893_u64,
),
] {
- let Some(root) = corpus_root(corpus) else {
- continue;
- };
+ let root = corpus_root(corpus);
let mut models = 0usize;
let mut animated_models = 0usize;
let mut node_samples = 0usize;
@@ -1725,12 +1721,21 @@ mod tests {
name.len() >= 4 && name[name.len() - 4..].eq_ignore_ascii_case(b".msh")
}
- fn corpus_root(name: &str) -> Option<PathBuf> {
- let root = Path::new(env!("CARGO_MANIFEST_DIR"))
- .join("../..")
- .join("testdata")
- .join(name);
- root.is_dir().then_some(root)
+ fn corpus_root(name: &str) -> PathBuf {
+ let variable = match name {
+ "IS" => "FPARKAN_CORPUS_PART1_ROOT",
+ "IS2" => "FPARKAN_CORPUS_PART2_ROOT",
+ _ => panic!("unknown licensed corpus part: {name}"),
+ };
+ let root = std::env::var_os(variable)
+ .map(PathBuf::from)
+ .unwrap_or_else(|| panic!("{variable} is required for licensed corpus tests"));
+ assert!(
+ root.is_dir(),
+ "licensed corpus root is missing: {}",
+ root.display()
+ );
+ root
}
fn files_under(root: &Path) -> Vec<PathBuf> {