]>
Commit | Line | Data |
---|---|---|
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 | 9 | use std::env::*; |
c34b1796 | 10 | use std::path::PathBuf; |
85aaf69f SL |
11 | |
12 | #[cfg(unix)] | |
13 | fn 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)] | |
31 | fn 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 | } |