use std::{env, path::PathBuf};
const CRATE_PATH: &str = env!("CARGO_MANIFEST_DIR");
fn target_dir() -> PathBuf {
env::current_exe()
.ok()
.map(|mut path| {
path.pop();
if path.ends_with("deps") {
path.pop();
}
path
})
.unwrap()
}
fn cargo_bin(name: &str) -> String {
let env_var = format!("CARGO_BIN_EXE_{name}");
std::env::var_os(env_var)
.unwrap_or_else(|| {
target_dir()
.join(format!("{name}{}", env::consts::EXE_SUFFIX))
.into_os_string()
})
.into_string()
.expect("valid unicode path")
}
#[test]
fn lit() {
lit::run::tests(lit::event_handler::Default::default(), |config| {
config.add_search_path(format!("{CRATE_PATH}/tests/lit"));
config.add_extension("geojson");
config.add_extension("kml");
config.add_extension("txt");
config
.constants
.insert("cli".to_owned(), cargo_bin("h3o-cli"));
})
.expect("lit tests failed");
}