use std::process::ExitCode;
use earthsci_ast::adapter_support::write_report;
use earthsci_ast::inline_tests_adapter::{parse_args, run_manifest};
fn main() -> ExitCode {
let args = match parse_args(std::env::args().skip(1)) {
Ok(a) => a,
Err(e) => {
eprintln!("inline-tests-adapter-rust: {e}");
return ExitCode::FAILURE;
}
};
let report = match run_manifest(&args.manifest, args.compiler) {
Ok(v) => v,
Err(e) => {
eprintln!("inline-tests-adapter-rust: {e}");
return ExitCode::FAILURE;
}
};
if let Err(e) = write_report(&args.output, &report.payload) {
eprintln!("inline-tests-adapter-rust: failed to write output: {e}");
return ExitCode::FAILURE;
}
if !report.failed.is_empty() {
eprintln!(
"inline-tests-adapter-rust: {} fixture(s) errored: {}",
report.failed.len(),
report.failed.join(", ")
);
return ExitCode::FAILURE;
}
ExitCode::SUCCESS
}