diff options
| author | Henrik Tjäder <henrik@tjaders.com> | 2025-06-08 18:18:01 +0200 |
|---|---|---|
| committer | Henrik Tjäder <henrik@tjaders.com> | 2025-06-15 09:58:25 +0000 |
| commit | 90bb3249069cca053e7fd177f191b3d06fc06527 (patch) | |
| tree | c9251413b6474028d88474caf38167c8948448a4 /xtask/src/cargo_command.rs | |
| parent | 6a68e8e54d2b006a888edab0f75e99a04675bb0a (diff) | |
xtask: Add --loom argument to test
For now filter to only rtic-sync in ci subcommand
Diffstat (limited to 'xtask/src/cargo_command.rs')
| -rw-r--r-- | xtask/src/cargo_command.rs | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/xtask/src/cargo_command.rs b/xtask/src/cargo_command.rs index 1fe37d2..f73f47a 100644 --- a/xtask/src/cargo_command.rs +++ b/xtask/src/cargo_command.rs @@ -94,6 +94,7 @@ pub enum CargoCommand<'a> { features: Option<String>, test: Option<String>, deny_warnings: bool, + loom: bool, }, Book { arguments: Option<ExtraArguments>, @@ -336,6 +337,7 @@ impl core::fmt::Display for CargoCommand<'_> { features, test, deny_warnings, + loom: _, } => { let p = p(package); let test = test @@ -576,15 +578,23 @@ impl<'a> CargoCommand<'a> { test, // deny_warnings is exposed through `extra_env` deny_warnings: _, + loom, } => { - let extra = if let Some(test) = test { + let mut extra = if let Some(test) = test { vec!["--test", test] } else { vec![] }; + + let cargofeatures = if *loom { + extra.push(" --lib"); + &None + } else { + features + }; let package = p(package); let extra = extra.into_iter().chain(package); - self.build_args(false, &None, features, None, extra) + self.build_args(false, &None, cargofeatures, None, extra) } CargoCommand::Book { arguments } => { let mut args = vec![]; @@ -740,14 +750,33 @@ impl<'a> CargoCommand<'a> { CargoCommand::Check { deny_warnings, .. } | CargoCommand::ExampleCheck { deny_warnings, .. } - | CargoCommand::Build { deny_warnings, .. } - | CargoCommand::Test { deny_warnings, .. } => { + | CargoCommand::Build { deny_warnings, .. } => { if *deny_warnings { Some(("RUSTFLAGS", "-D warnings".to_string())) } else { None } } + CargoCommand::Test { + deny_warnings, + loom, + .. + } => { + let mut combined_flags = vec![""]; + + if *deny_warnings { + combined_flags.push("-D warnings"); + } + if *loom { + combined_flags.push("--cfg loom"); + } + if !combined_flags.is_empty() { + let rust_flags = combined_flags.join(" ").to_string(); + Some(("RUSTFLAGS", rust_flags)) + } else { + None + } + } _ => None, } } |
