3 #![allow(stable_features)]
4 // ignore-emscripten no processes
5 // ignore-sgx no processes
7 #![feature(process_try_wait)]
10 use std::process::Command;
12 use std::time::Duration;
15 let args = env::args().collect::<Vec<_>>();
18 "sleep" => thread::sleep(Duration::new(1_000, 0)),
24 let mut me = Command::new(env::current_exe().unwrap())
28 let maybe_status = me.try_wait().unwrap();
29 assert!(maybe_status.is_none());
30 let maybe_status = me.try_wait().unwrap();
31 assert!(maybe_status.is_none());
36 let status = me.try_wait().unwrap().unwrap();
37 assert!(!status.success());
38 let status = me.try_wait().unwrap().unwrap();
39 assert!(!status.success());
41 let mut me = Command::new(env::current_exe().unwrap())
42 .arg("return-quickly")
48 assert!(res.success());
52 thread::sleep(Duration::from_millis(1));
54 Err(e) => panic!("error in try_wait: {}", e),
58 let status = me.try_wait().unwrap().unwrap();
59 assert!(status.success());