blob: 538f317a2978b5754f58fb866a399771ae4fb129 [file] [log] [blame]
#[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<Box<dyn SupportedArchitectureTest>> =
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);
}
}