const CARGO_LOCK: &str = include_str!("../../../Cargo.lock");
fn locked_version<'a>(lock: &'a str, package: &str) -> Option<&'a str> {
let needle = format!("\nname = \"{package}\"\nversion = \"");
let start = lock.find(&needle)? + needle.len();
let end = lock[start..].find('"')? + start;
Some(&lock[start..end])
}
#[test]
fn arrow_runtime_version_matches_cargo_lock() {
let resolved = locked_version(CARGO_LOCK, "arrow").expect("arrow in Cargo.lock");
assert_eq!(
resolved,
codelore_lib::arrow_facade::ARROW_RUNTIME_VERSION,
"arrow_facade::ARROW_RUNTIME_VERSION drifted from Cargo.lock — \
bump the constant or pin the version"
);
}
#[test]
fn provenance_gix_version_matches_cargo_lock() {
let resolved = locked_version(CARGO_LOCK, "gix").expect("gix in Cargo.lock");
assert_eq!(
resolved,
codelore_lib::provenance::GIX_VERSION,
"provenance::GIX_VERSION drifted from Cargo.lock — bump the constant or pin the dep"
);
}
#[test]
fn provenance_duckdb_version_matches_cargo_lock() {
let resolved = locked_version(CARGO_LOCK, "duckdb").expect("duckdb in Cargo.lock");
assert_eq!(
resolved,
codelore_lib::provenance::DUCKDB_VERSION,
"provenance::DUCKDB_VERSION drifted from Cargo.lock — bump the constant or pin the dep"
);
}