std: Apply deprecated_safe_2024
This commit is contained in:
parent
36733f3bce
commit
ef20a1b1f8
5 changed files with 66 additions and 42 deletions
|
@ -568,7 +568,7 @@ pub struct JoinPathsError {
|
|||
/// let mut paths = env::split_paths(&path).collect::<Vec<_>>();
|
||||
/// paths.push(PathBuf::from("/home/xyz/bin"));
|
||||
/// let new_path = env::join_paths(paths)?;
|
||||
/// env::set_var("PATH", &new_path);
|
||||
/// unsafe { env::set_var("PATH", &new_path); }
|
||||
/// }
|
||||
///
|
||||
/// Ok(())
|
||||
|
|
|
@ -323,9 +323,13 @@ fn test_capture_env_at_spawn() {
|
|||
|
||||
// This variable will not be present if the environment has already
|
||||
// been captured above.
|
||||
env::set_var("RUN_TEST_NEW_ENV2", "456");
|
||||
unsafe {
|
||||
env::set_var("RUN_TEST_NEW_ENV2", "456");
|
||||
}
|
||||
let result = cmd.output().unwrap();
|
||||
env::remove_var("RUN_TEST_NEW_ENV2");
|
||||
unsafe {
|
||||
env::remove_var("RUN_TEST_NEW_ENV2");
|
||||
}
|
||||
|
||||
let output = String::from_utf8_lossy(&result.stdout).to_string();
|
||||
|
||||
|
|
|
@ -154,8 +154,8 @@ impl Command {
|
|||
if let Some(e) = &env {
|
||||
for (k, (_, v)) in e {
|
||||
match v {
|
||||
Some(v) => crate::env::set_var(k, v),
|
||||
None => crate::env::remove_var(k),
|
||||
Some(v) => unsafe { crate::env::set_var(k, v) },
|
||||
None => unsafe { crate::env::remove_var(k) },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -166,8 +166,8 @@ impl Command {
|
|||
if let Some(e) = env {
|
||||
for (k, (v, _)) in e {
|
||||
match v {
|
||||
Some(v) => crate::env::set_var(k, v),
|
||||
None => crate::env::remove_var(k),
|
||||
Some(v) => unsafe { crate::env::set_var(k, v) },
|
||||
None => unsafe { crate::env::remove_var(k) },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -138,8 +138,10 @@ fn windows_env_unicode_case() {
|
|||
let mut cmd = Command::new("cmd");
|
||||
cmd.env(a, "1");
|
||||
cmd.env(b, "2");
|
||||
env::set_var(a, "1");
|
||||
env::set_var(b, "2");
|
||||
unsafe {
|
||||
env::set_var(a, "1");
|
||||
env::set_var(b, "2");
|
||||
}
|
||||
|
||||
for (key, value) in cmd.get_envs() {
|
||||
assert_eq!(
|
||||
|
|
|
@ -26,26 +26,32 @@ fn eq(a: Option<OsString>, b: Option<&str>) {
|
|||
#[test]
|
||||
fn test_set_var() {
|
||||
let n = make_rand_name();
|
||||
set_var(&n, "VALUE");
|
||||
unsafe {
|
||||
set_var(&n, "VALUE");
|
||||
}
|
||||
eq(var_os(&n), Some("VALUE"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_remove_var() {
|
||||
let n = make_rand_name();
|
||||
set_var(&n, "VALUE");
|
||||
remove_var(&n);
|
||||
unsafe {
|
||||
set_var(&n, "VALUE");
|
||||
remove_var(&n);
|
||||
}
|
||||
eq(var_os(&n), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_set_var_overwrite() {
|
||||
let n = make_rand_name();
|
||||
set_var(&n, "1");
|
||||
set_var(&n, "2");
|
||||
eq(var_os(&n), Some("2"));
|
||||
set_var(&n, "");
|
||||
eq(var_os(&n), Some(""));
|
||||
unsafe {
|
||||
set_var(&n, "1");
|
||||
set_var(&n, "2");
|
||||
eq(var_os(&n), Some("2"));
|
||||
set_var(&n, "");
|
||||
eq(var_os(&n), Some(""));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -58,7 +64,9 @@ fn test_var_big() {
|
|||
i += 1;
|
||||
}
|
||||
let n = make_rand_name();
|
||||
set_var(&n, &s);
|
||||
unsafe {
|
||||
set_var(&n, &s);
|
||||
}
|
||||
eq(var_os(&n), Some(&s));
|
||||
}
|
||||
|
||||
|
@ -67,10 +75,12 @@ fn test_var_big() {
|
|||
fn test_env_set_get_huge() {
|
||||
let n = make_rand_name();
|
||||
let s = "x".repeat(10000);
|
||||
set_var(&n, &s);
|
||||
eq(var_os(&n), Some(&s));
|
||||
remove_var(&n);
|
||||
eq(var_os(&n), None);
|
||||
unsafe {
|
||||
set_var(&n, &s);
|
||||
eq(var_os(&n), Some(&s));
|
||||
remove_var(&n);
|
||||
eq(var_os(&n), None);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -78,7 +88,9 @@ fn test_env_set_var() {
|
|||
let n = make_rand_name();
|
||||
|
||||
let mut e = vars_os();
|
||||
set_var(&n, "VALUE");
|
||||
unsafe {
|
||||
set_var(&n, "VALUE");
|
||||
}
|
||||
assert!(!e.any(|(k, v)| { &*k == &*n && &*v == "VALUE" }));
|
||||
|
||||
assert!(vars_os().any(|(k, v)| { &*k == &*n && &*v == "VALUE" }));
|
||||
|
@ -102,10 +114,12 @@ fn env_home_dir() {
|
|||
if #[cfg(unix)] {
|
||||
let oldhome = var_to_os_string(var("HOME"));
|
||||
|
||||
set_var("HOME", "/home/MountainView");
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
unsafe {
|
||||
set_var("HOME", "/home/MountainView");
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
|
||||
remove_var("HOME");
|
||||
remove_var("HOME");
|
||||
}
|
||||
if cfg!(target_os = "android") {
|
||||
assert!(home_dir().is_none());
|
||||
} else {
|
||||
|
@ -115,33 +129,35 @@ fn env_home_dir() {
|
|||
assert_ne!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
}
|
||||
|
||||
if let Some(oldhome) = oldhome { set_var("HOME", oldhome); }
|
||||
if let Some(oldhome) = oldhome { unsafe { set_var("HOME", oldhome); } }
|
||||
} else if #[cfg(windows)] {
|
||||
let oldhome = var_to_os_string(var("HOME"));
|
||||
let olduserprofile = var_to_os_string(var("USERPROFILE"));
|
||||
|
||||
remove_var("HOME");
|
||||
remove_var("USERPROFILE");
|
||||
unsafe {
|
||||
remove_var("HOME");
|
||||
remove_var("USERPROFILE");
|
||||
|
||||
assert!(home_dir().is_some());
|
||||
assert!(home_dir().is_some());
|
||||
|
||||
set_var("HOME", "/home/PaloAlto");
|
||||
assert_ne!(home_dir(), Some(PathBuf::from("/home/PaloAlto")), "HOME must not be used");
|
||||
set_var("HOME", "/home/PaloAlto");
|
||||
assert_ne!(home_dir(), Some(PathBuf::from("/home/PaloAlto")), "HOME must not be used");
|
||||
|
||||
set_var("USERPROFILE", "/home/MountainView");
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
set_var("USERPROFILE", "/home/MountainView");
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
|
||||
remove_var("HOME");
|
||||
remove_var("HOME");
|
||||
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
|
||||
|
||||
set_var("USERPROFILE", "");
|
||||
assert_ne!(home_dir(), Some(PathBuf::from("")), "Empty USERPROFILE must be ignored");
|
||||
set_var("USERPROFILE", "");
|
||||
assert_ne!(home_dir(), Some(PathBuf::from("")), "Empty USERPROFILE must be ignored");
|
||||
|
||||
remove_var("USERPROFILE");
|
||||
remove_var("USERPROFILE");
|
||||
|
||||
if let Some(oldhome) = oldhome { set_var("HOME", oldhome); }
|
||||
if let Some(olduserprofile) = olduserprofile { set_var("USERPROFILE", olduserprofile); }
|
||||
if let Some(oldhome) = oldhome { set_var("HOME", oldhome); }
|
||||
if let Some(olduserprofile) = olduserprofile { set_var("USERPROFILE", olduserprofile); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -157,7 +173,9 @@ fn test_env_get_set_multithreaded() {
|
|||
|
||||
let setter = thread::spawn(|| {
|
||||
for _ in 0..100 {
|
||||
set_var("foo", "bar");
|
||||
unsafe {
|
||||
set_var("foo", "bar");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue