#![cfg(test)]
use std::path::{Path, PathBuf};
fn collect_rs_files(dir: &Path, out: &mut Vec<PathBuf>) {
let entries = std::fs::read_dir(dir);
let Ok(entries) = entries else { return };
for entry in entries.flatten() {
let path = entry.path();
if path.is_dir() {
collect_rs_files(&path, out);
} else if path.extension().and_then(|e| e.to_str()) == Some("rs") {
out.push(path);
}
}
}
fn is_embedding_rs(path: &Path) -> bool {
path.parent()
.and_then(|p| p.file_name())
.and_then(|n| n.to_str())
== Some("embedding")
}
fn is_comment_line(line: &str) -> bool {
line.trim_start().starts_with("//")
}
fn is_audit_file(rel: &str) -> bool {
rel.ends_with("embedding_dim_audit_tests.rs")
}
#[test]
fn no_private_embedding_dims_or_1536_literals_survive_in_src() {
let manifest_dir_str =
std::env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR must be set in tests");
let manifest_dir = Path::new(&manifest_dir_str);
let src_dir = manifest_dir.join("src");
let mut files: Vec<PathBuf> = Vec::new();
collect_rs_files(&src_dir, &mut files);
let mut violations: Vec<String> = Vec::new();
for file in &files {
let rel = file
.strip_prefix(manifest_dir)
.unwrap_or(file.as_path())
.display()
.to_string();
if is_audit_file(&rel) {
continue;
}
let Ok(text) = std::fs::read_to_string(file) else {
continue;
};
let all_lines: Vec<&str> = text.lines().collect();
let mut file_is_test = false;
for pre in all_lines.iter().take(10) {
let t = pre.trim();
if t == "#![cfg(test)]" || t == "#[cfg(test)]" {
file_is_test = true;
break;
}
}
let mut in_test_mod = file_is_test;
for (idx, line) in all_lines.iter().enumerate() {
let line_no = idx + 1;
let trimmed = line.trim_start();
if in_test_mod {
continue;
}
if trimmed == "#[cfg(test)]" {
in_test_mod = true;
continue;
}
if trimmed.starts_with("mod ") || trimmed.starts_with("pub mod ") {
in_test_mod = false;
continue;
}
if is_comment_line(line) {
continue;
}
if trimmed.contains("const EMBEDDING_DIMS") && !is_embedding_rs(file) {
violations.push(format!(
"{rel}:{line_no}: private `const EMBEDDING_DIMS` re-declaration: {trimmed}"
));
}
if trimmed.contains("1536") {
violations.push(format!(
"{rel}:{line_no}: literal 1536 (use `EMBEDDING_DIMS * 4`): {trimmed}"
));
}
}
}
assert!(
violations.is_empty(),
"one-source-of-truth violations (EMBEDDING_DIMS must come from crate::embedding):\n{}",
violations.join("\n")
);
}