]> git.proxmox.com Git - rustc.git/blame - src/test/ui/env-home-dir.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / env-home-dir.rs
CommitLineData
416331ca
XL
1// run-pass
2
0bf4aa26
XL
3#![allow(unused_variables)]
4#![allow(deprecated)]
2c00a5a8 5// ignore-cloudabi no environment variables present
abe05a73 6// ignore-emscripten env vars don't work?
48663c56 7// ignore-sgx env vars cannot be modified
c34b1796 8
85aaf69f 9use std::env::*;
c34b1796 10use std::path::PathBuf;
85aaf69f
SL
11
12#[cfg(unix)]
13fn main() {
14 let oldhome = var("HOME");
15
16 set_var("HOME", "/home/MountainView");
62682a34 17 assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
85aaf69f
SL
18
19 remove_var("HOME");
20 if cfg!(target_os = "android") {
21 assert!(home_dir().is_none());
22 } else {
2c00a5a8
XL
23 // When HOME is not set, some platforms return `None`,
24 // but others return `Some` with a default.
25 // Just check that it is not "/home/MountainView".
26 assert_ne!(home_dir(), Some(PathBuf::from("/home/MountainView")));
85aaf69f
SL
27 }
28}
29
30#[cfg(windows)]
31fn main() {
32 let oldhome = var("HOME");
33 let olduserprofile = var("USERPROFILE");
34
35 remove_var("HOME");
36 remove_var("USERPROFILE");
37
38 assert!(home_dir().is_some());
39
40 set_var("HOME", "/home/MountainView");
62682a34 41 assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
85aaf69f
SL
42
43 remove_var("HOME");
44
45 set_var("USERPROFILE", "/home/MountainView");
62682a34 46 assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
85aaf69f
SL
47
48 set_var("HOME", "/home/MountainView");
49 set_var("USERPROFILE", "/home/PaloAlto");
62682a34 50 assert_eq!(home_dir(), Some(PathBuf::from("/home/MountainView")));
85aaf69f 51}