Move a flaky process test out of libstd
This test ensures that everything in `env::vars()` is inherited but that's not actually true because other tests may add env vars after we spawn the process, causing the test to be flaky! This commit moves the test to a run-pass test where it can execute in isolation. Along the way this removes a lot of the platform specificity of the test, using iteslf to print the environment instead of a foreign process.
This commit is contained in:
parent
0b9f19dff1
commit
d1cd4e8d0d
2 changed files with 25 additions and 36 deletions
|
@ -1889,42 +1889,6 @@ mod tests {
|
|||
cmd
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_inherit_env() {
|
||||
use env;
|
||||
|
||||
let result = env_cmd().output().unwrap();
|
||||
let output = String::from_utf8(result.stdout).unwrap();
|
||||
|
||||
for (ref k, ref v) in env::vars() {
|
||||
// Don't check android RANDOM variable which seems to change
|
||||
// whenever the shell runs, and our `env_cmd` is indeed running a
|
||||
// shell which means it'll get a different RANDOM than we probably
|
||||
// have.
|
||||
//
|
||||
// Also skip env vars with `-` in the name on android because, well,
|
||||
// I'm not sure. It appears though that the `set` command above does
|
||||
// not print env vars with `-` in the name, so we just skip them
|
||||
// here as we won't find them in the output. Note that most env vars
|
||||
// use `_` instead of `-`, but our build system sets a few env vars
|
||||
// with `-` in the name.
|
||||
if cfg!(target_os = "android") &&
|
||||
(*k == "RANDOM" || k.contains("-")) {
|
||||
continue
|
||||
}
|
||||
|
||||
// Windows has hidden environment variables whose names start with
|
||||
// equals signs (`=`). Those do not show up in the output of the
|
||||
// `set` command.
|
||||
assert!((cfg!(windows) && k.starts_with("=")) ||
|
||||
k.starts_with("DYLD") ||
|
||||
output.contains(&format!("{}={}", *k, *v)) ||
|
||||
output.contains(&format!("{}='{}'", *k, *v)),
|
||||
"output doesn't contain `{}={}`\n{}",
|
||||
k, v, output);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_override_env() {
|
||||
use env;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue