ostree/tests/inst/src/insttest.rs

47 lines
1.1 KiB
Rust

use anyhow::Result;
// use structopt::StructOpt;
// // https://github.com/clap-rs/clap/pull/1397
// #[macro_use]
// extern crate clap;
mod repobin;
mod sysroot;
mod test;
fn gather_tests() -> Vec<test::TestImpl> {
test::TESTS
.iter()
.map(|t| libtest_mimic::Test {
name: t.name.into(),
kind: "".into(),
is_ignored: false,
is_bench: false,
data: t,
})
.collect()
}
fn run_test(test: &test::TestImpl) -> libtest_mimic::Outcome {
if let Err(e) = (test.data.f)() {
libtest_mimic::Outcome::Failed {
msg: Some(e.to_string()),
}
} else {
libtest_mimic::Outcome::Passed
}
}
fn main() -> Result<()> {
procspawn::init();
// Ensure we're always in tempdir so we can rely on it globally
let tmp_dir = tempfile::Builder::new()
.prefix("ostree-insttest-top")
.tempdir()?;
std::env::set_current_dir(tmp_dir.path())?;
let args = libtest_mimic::Arguments::from_args();
let tests = gather_tests();
libtest_mimic::run_tests(&args, tests, run_test).exit();
}