#[macro_use] extern crate log; mod arm; mod common; use arm::ArmArchitectureTest; use common::SupportedArchitectureTest; use common::cli::{Cli, ProcessedCli}; fn main() { pretty_env_logger::init(); let args: Cli = clap::Parser::parse(); let processed_cli_options = ProcessedCli::new(args); let test_environment_result: Option> = match processed_cli_options.target.as_str() { "aarch64-unknown-linux-gnu" | "armv7-unknown-linux-gnueabihf" | "aarch64_be-unknown-linux-gnu" => { Some(ArmArchitectureTest::create(processed_cli_options)) } _ => None, }; if test_environment_result.is_none() { std::process::exit(0); } let test_environment = test_environment_result.unwrap(); info!("building C binaries"); if !test_environment.build_c_file() { std::process::exit(2); } info!("building Rust binaries"); if !test_environment.build_rust_file() { std::process::exit(3); } info!("comaparing outputs"); if !test_environment.compare_outputs() { std::process::exit(1); } }