Skip to content

Commit

Permalink
Merge pull request rust-lang#363 from GuillaumeGomez/test-command
Browse files Browse the repository at this point in the history
Add basics for `test` command in build system
  • Loading branch information
antoyo authored Oct 25, 2023
2 parents 47bac1f + fcd336b commit d4a74fb
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
5 changes: 5 additions & 0 deletions build_system/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ mod build;
mod config;
mod prepare;
mod rustc_info;
mod test;
mod utils;

macro_rules! arg_error {
Expand All @@ -23,13 +24,15 @@ Available commands for build_system:
prepare : Run prepare command
build : Run build command
test : Run test command
--help : Show this message"
);
}

pub enum Command {
Prepare,
Build,
Test,
}

fn main() {
Expand All @@ -40,6 +43,7 @@ fn main() {
let command = match env::args().nth(1).as_deref() {
Some("prepare") => Command::Prepare,
Some("build") => Command::Build,
Some("test") => Command::Test,
Some("--help") => {
usage();
process::exit(0);
Expand All @@ -55,6 +59,7 @@ fn main() {
if let Err(e) = match command {
Command::Prepare => prepare::run(),
Command::Build => build::run(),
Command::Test => test::run(),
} {
eprintln!("Command failed to run: {e:?}");
process::exit(1);
Expand Down
15 changes: 15 additions & 0 deletions build_system/src/test.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use crate::utils::run_command_with_output;

fn get_args<'a>(args: &mut Vec<&'a dyn AsRef<std::ffi::OsStr>>, extra_args: &'a Vec<String>) {
for extra_arg in extra_args {
args.push(extra_arg);
}
}

pub fn run() -> Result<(), String> {
let mut args: Vec<&dyn AsRef<std::ffi::OsStr>> = vec![&"bash", &"test.sh"];
let extra_args = std::env::args().skip(2).collect::<Vec<_>>();
get_args(&mut args, &extra_args);
let current_dir = std::env::current_dir().map_err(|error| format!("`current_dir` failed: {:?}", error))?;
run_command_with_output(args.as_slice(), Some(&current_dir))
}

0 comments on commit d4a74fb

Please sign in to comment.