diff --git a/xtask/src/cargo_commands.rs b/xtask/src/cargo_commands.rs index ead6eaa9a0..42895d810b 100644 --- a/xtask/src/cargo_commands.rs +++ b/xtask/src/cargo_commands.rs @@ -302,7 +302,7 @@ pub fn cargo_book<'c>( /// Run examples /// /// Supports updating the expected output via the overwrite argument -pub fn run_test<'c>( +pub fn qemu_run_examples<'c>( globals: &Globals, cargoarg: &'c Option<&'c str>, backend: Backends, @@ -312,31 +312,30 @@ pub fn run_test<'c>( let target = backend.to_target(); let features = Some(target.and_features(backend.to_rtic_feature())); - examples_iter(examples) - .map(|example| { - let cmd = CargoCommand::ExampleBuild { - cargoarg: &Some("--quiet"), - example, - target, - features: features.clone(), - mode: BuildMode::Release, - }; + let build = examples_iter(examples).map(|example| { + let cmd_build = CargoCommand::ExampleBuild { + // We need to be in the correct + cargoarg: &None, + example, + target, + features: features.clone(), + mode: BuildMode::Release, + }; + (globals, cmd_build, overwrite) + }); - if let Err(err) = command_parser(globals, &cmd, false) { - error!("{err}"); - } + let run = examples_iter(examples).map(|example| { + let cmd_qemu = CargoCommand::Qemu { + cargoarg, + example, + target, + features: features.clone(), + mode: BuildMode::Release, + }; + (globals, cmd_qemu, overwrite) + }); - let cmd = CargoCommand::Qemu { - cargoarg, - example, - target, - features: features.clone(), - mode: BuildMode::Release, - }; - - (globals, cmd, overwrite) - }) - .run_and_coalesce() + build.chain(run).run_and_coalesce() } /// Check the binary sizes of examples diff --git a/xtask/src/command.rs b/xtask/src/command.rs index a45cb8ac8b..187a3ddccd 100644 --- a/xtask/src/command.rs +++ b/xtask/src/command.rs @@ -593,6 +593,11 @@ impl<'a> CargoCommand<'a> { if let Some(cargoarg) = cargoarg { args.extend_from_slice(&[cargoarg]); } + + // We need to be in the `rtic` directory to pick up + // the correct .cargo/config.toml file + args.extend_from_slice(&["-Z", "unstable-options", "-C", "rtic"]); + args.extend_from_slice(&[ self.command(), "--example", @@ -856,7 +861,7 @@ pub fn handle_results(globals: &Globals, results: Vec) -> Result if globals.verbose > 0 { info!("✅ Success: {cmd}{path}\n {}", cmd.as_cmd_string()); } else { - info!("✅ Success:{cmd}{path}"); + info!("✅ Success: {cmd}{path}"); } }); diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 7077d552bd..853dbe783c 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -268,7 +268,7 @@ fn main() -> anyhow::Result<()> { Commands::Qemu(args) | Commands::Run(args) => { // x86_64 target not valid info!("Testing for backend: {backend:?}"); - run_test( + qemu_run_examples( globals, &cargologlevel, backend,