add negative tests for OS X LLVM target changes
This commit is contained in:
parent
758dc9af50
commit
1516087ca9
26
src/test/codegen/i686-no-macosx-deployment-target.rs
Normal file
26
src/test/codegen/i686-no-macosx-deployment-target.rs
Normal file
@ -0,0 +1,26 @@
|
||||
//
|
||||
// Checks that we leave the target alone MACOSX_DEPLOYMENT_TARGET is unset.
|
||||
// See issue #60235.
|
||||
|
||||
// compile-flags: -O --target=i686-apple-darwin --crate-type=rlib
|
||||
// unset-rustc-env:MACOSX_DEPLOYMENT_TARGET
|
||||
#![feature(no_core, lang_items)]
|
||||
#![no_core]
|
||||
|
||||
#[lang="sized"]
|
||||
trait Sized { }
|
||||
#[lang="freeze"]
|
||||
trait Freeze { }
|
||||
#[lang="copy"]
|
||||
trait Copy { }
|
||||
|
||||
#[repr(C)]
|
||||
pub struct Bool {
|
||||
b: bool,
|
||||
}
|
||||
|
||||
// CHECK: target triple = "i686-apple-darwin"
|
||||
#[no_mangle]
|
||||
pub extern "C" fn structbool() -> Bool {
|
||||
Bool { b: true }
|
||||
}
|
26
src/test/codegen/x86_64-no-macosx-deployment-target.rs
Normal file
26
src/test/codegen/x86_64-no-macosx-deployment-target.rs
Normal file
@ -0,0 +1,26 @@
|
||||
//
|
||||
// Checks that we leave the target alone when MACOSX_DEPLOYMENT_TARGET is unset.
|
||||
// See issue #60235.
|
||||
|
||||
// compile-flags: -O --target=x86_64-apple-darwin --crate-type=rlib
|
||||
// unset-rustc-env:MACOSX_DEPLOYMENT_TARGET
|
||||
#![feature(no_core, lang_items)]
|
||||
#![no_core]
|
||||
|
||||
#[lang="sized"]
|
||||
trait Sized { }
|
||||
#[lang="freeze"]
|
||||
trait Freeze { }
|
||||
#[lang="copy"]
|
||||
trait Copy { }
|
||||
|
||||
#[repr(C)]
|
||||
pub struct Bool {
|
||||
b: bool,
|
||||
}
|
||||
|
||||
// CHECK: target triple = "x86_64-apple-darwin"
|
||||
#[no_mangle]
|
||||
pub extern "C" fn structbool() -> Bool {
|
||||
Bool { b: true }
|
||||
}
|
@ -305,6 +305,9 @@ pub struct TestProps {
|
||||
pub extern_private: Vec<String>,
|
||||
// Environment settings to use for compiling
|
||||
pub rustc_env: Vec<(String, String)>,
|
||||
// Environment variables to unset prior to compiling.
|
||||
// Variables are unset before applying 'rustc_env'.
|
||||
pub unset_rustc_env: Vec<String>,
|
||||
// Environment settings to use during execution
|
||||
pub exec_env: Vec<(String, String)>,
|
||||
// Lines to check if they appear in the expected debugger output
|
||||
@ -373,6 +376,7 @@ impl TestProps {
|
||||
extern_private: vec![],
|
||||
revisions: vec![],
|
||||
rustc_env: vec![],
|
||||
unset_rustc_env: vec![],
|
||||
exec_env: vec![],
|
||||
check_lines: vec![],
|
||||
build_aux_docs: false,
|
||||
@ -499,6 +503,10 @@ impl TestProps {
|
||||
self.rustc_env.push(ee);
|
||||
}
|
||||
|
||||
if let Some(ev) = config.parse_name_value_directive(ln, "unset-rustc-env") {
|
||||
self.unset_rustc_env.push(ev);
|
||||
}
|
||||
|
||||
if let Some(cl) = config.parse_check_line(ln) {
|
||||
self.check_lines.push(cl);
|
||||
}
|
||||
|
@ -1692,6 +1692,9 @@ impl<'test> TestCx<'test> {
|
||||
add_extern_priv(&private_lib, true);
|
||||
}
|
||||
|
||||
self.props.unset_rustc_env.clone()
|
||||
.iter()
|
||||
.fold(&mut rustc, |rustc, v| rustc.env_remove(v));
|
||||
rustc.envs(self.props.rustc_env.clone());
|
||||
self.compose_and_run(
|
||||
rustc,
|
||||
|
Loading…
Reference in New Issue
Block a user