use anyhow::{Context, Result};
pub fn load_busybox_bytes() -> Result<Vec<u8>> {
load_blob_from_env(crate::KTSTR_BUSYBOX_PATH_ENV, "busybox")
}
#[cfg(feature = "wprof")]
pub fn load_wprof_path() -> Result<std::path::PathBuf> {
let env_var = crate::KTSTR_WPROF_PATH_ENV;
let path = std::env::var(env_var).map_err(|_| {
anyhow::anyhow!(
"{env_var} env var unset — wprof blob is provided \
by `cargo-ktstr` at startup. Run tests via \
`cargo ktstr test`, not direct `cargo nextest run`."
)
})?;
Ok(std::path::PathBuf::from(path))
}
fn load_blob_from_env(env_var: &str, blob_name: &str) -> Result<Vec<u8>> {
let path = std::env::var(env_var).map_err(|_| {
anyhow::anyhow!(
"{env_var} env var unset — {blob_name} blob is provided \
by `cargo-ktstr` at startup. Run tests via \
`cargo ktstr test`, not direct `cargo nextest run`."
)
})?;
std::fs::read(&path).with_context(|| format!("read {blob_name} blob from {env_var}={path}"))
}