add negative tests for OS X LLVM target changes

This commit is contained in:
Nathan Froyd 2019-04-29 16:57:29 -04:00
parent 758dc9af50
commit 1516087ca9
4 changed files with 63 additions and 0 deletions

View 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 }
}

View 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 }
}

View File

@ -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);
}

View File

@ -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,