diff --git a/tests/testsuite/standard_lib.rs b/tests/testsuite/standard_lib.rs index 08d371e2fdb..2610e69d4e8 100644 --- a/tests/testsuite/standard_lib.rs +++ b/tests/testsuite/standard_lib.rs @@ -164,6 +164,7 @@ trait BuildStd: Sized { fn build_std(&mut self, setup: &Setup) -> &mut Self; fn build_std_arg(&mut self, setup: &Setup, arg: &str) -> &mut Self; fn target_host(&mut self) -> &mut Self; + fn target(&mut self, target: &str) -> &mut Self; } impl BuildStd for Execs { @@ -183,6 +184,11 @@ impl BuildStd for Execs { self.arg("--target").arg(rustc_host()); self } + + fn target(&mut self, target: &str) -> &mut Self { + self.arg("--target").arg(target); + self + } } #[cargo_test(build_std_mock)] @@ -323,6 +329,33 @@ fn check_core() { .run(); } +#[cargo_test(build_std_mock)] +fn test_std_on_unsupported_target() { + let setup = setup(); + + let p = project() + .file( + "src/main.rs", + r#" + fn main() { + println!("hello"); + } + "#, + ) + .build(); + + p.cargo("build") + .build_std(&setup) + .target("aarch64-unknown-none") + .with_status(101) + .with_stderr_data( + "\ +[ERROR] building std is not supported on this target: [..] +", + ) + .run(); +} + #[cargo_test(build_std_mock)] fn depend_same_as_std() { let setup = setup();