// Test that windows verbatim paths in `Command::current_dir` are converted to // non-verbatim paths before passing to the subprocess. //@ run-pass //@ only-windows //@ needs-subprocess use std::env; use std::process::Command; fn main() { if env::args().skip(1).any(|s| s == "--child") { child(); } else { parent(); } } fn parent() { let exe = env::current_exe().unwrap(); let dir = env::current_dir().unwrap(); let status = Command::new(&exe) .arg("--child") .current_dir(dir.canonicalize().unwrap()) .spawn() .unwrap() .wait() .unwrap(); assert_eq!(status.code(), Some(0)); } fn child() { let current_dir = env::current_dir().unwrap(); let current_dir = current_dir.as_os_str().as_encoded_bytes(); assert!(!current_dir.starts_with(br"\\?\")); }