mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-14 21:16:50 +00:00
add support for // unset-exec-env
in compiletest
This commit is contained in:
parent
2bf5f77696
commit
4edba553c3
@ -90,6 +90,9 @@ pub struct TestProps {
|
||||
pub unset_rustc_env: Vec<String>,
|
||||
// Environment settings to use during execution
|
||||
pub exec_env: Vec<(String, String)>,
|
||||
// Environment variables to unset prior to execution.
|
||||
// Variables are unset before applying 'exec_env'
|
||||
pub unset_exec_env: Vec<String>,
|
||||
// Build documentation for all specified aux-builds as well
|
||||
pub build_aux_docs: bool,
|
||||
// Flag to force a crate to be built with the host architecture
|
||||
@ -198,6 +201,7 @@ mod directives {
|
||||
pub const AUX_CRATE: &'static str = "aux-crate";
|
||||
pub const EXEC_ENV: &'static str = "exec-env";
|
||||
pub const RUSTC_ENV: &'static str = "rustc-env";
|
||||
pub const UNSET_EXEC_ENV: &'static str = "unset-exec-env";
|
||||
pub const UNSET_RUSTC_ENV: &'static str = "unset-rustc-env";
|
||||
pub const FORBID_OUTPUT: &'static str = "forbid-output";
|
||||
pub const CHECK_TEST_LINE_NUMBERS_MATCH: &'static str = "check-test-line-numbers-match";
|
||||
@ -231,6 +235,7 @@ impl TestProps {
|
||||
rustc_env: vec![],
|
||||
unset_rustc_env: vec![],
|
||||
exec_env: vec![],
|
||||
unset_exec_env: vec![],
|
||||
build_aux_docs: false,
|
||||
force_host: false,
|
||||
check_stdout: false,
|
||||
@ -382,6 +387,12 @@ impl TestProps {
|
||||
&mut self.exec_env,
|
||||
Config::parse_env,
|
||||
);
|
||||
config.push_name_value_directive(
|
||||
ln,
|
||||
UNSET_EXEC_ENV,
|
||||
&mut self.unset_exec_env,
|
||||
|r| r,
|
||||
);
|
||||
config.push_name_value_directive(
|
||||
ln,
|
||||
RUSTC_ENV,
|
||||
|
@ -1613,8 +1613,13 @@ impl<'test> TestCx<'test> {
|
||||
test_client
|
||||
.args(&["run", &support_libs.len().to_string(), &prog])
|
||||
.args(support_libs)
|
||||
.args(args)
|
||||
.envs(env.clone());
|
||||
.args(args);
|
||||
|
||||
for key in &self.props.unset_exec_env {
|
||||
test_client.env_remove(key);
|
||||
}
|
||||
test_client.envs(env.clone());
|
||||
|
||||
self.compose_and_run(
|
||||
test_client,
|
||||
self.config.run_lib_path.to_str().unwrap(),
|
||||
@ -1626,7 +1631,13 @@ impl<'test> TestCx<'test> {
|
||||
let aux_dir = self.aux_output_dir_name();
|
||||
let ProcArgs { prog, args } = self.make_run_args();
|
||||
let mut wr_run = Command::new("wr-run");
|
||||
wr_run.args(&[&prog]).args(args).envs(env.clone());
|
||||
wr_run.args(&[&prog]).args(args);
|
||||
|
||||
for key in &self.props.unset_exec_env {
|
||||
wr_run.env_remove(key);
|
||||
}
|
||||
wr_run.envs(env.clone());
|
||||
|
||||
self.compose_and_run(
|
||||
wr_run,
|
||||
self.config.run_lib_path.to_str().unwrap(),
|
||||
@ -1638,7 +1649,13 @@ impl<'test> TestCx<'test> {
|
||||
let aux_dir = self.aux_output_dir_name();
|
||||
let ProcArgs { prog, args } = self.make_run_args();
|
||||
let mut program = Command::new(&prog);
|
||||
program.args(args).current_dir(&self.output_base_dir()).envs(env.clone());
|
||||
program.args(args).current_dir(&self.output_base_dir());
|
||||
|
||||
for key in &self.props.unset_exec_env {
|
||||
program.env_remove(key);
|
||||
}
|
||||
program.envs(env.clone());
|
||||
|
||||
self.compose_and_run(
|
||||
program,
|
||||
self.config.run_lib_path.to_str().unwrap(),
|
||||
|
Loading…
Reference in New Issue
Block a user