1 #![allow(stable_features)]
2 // ignore-cloudabi no processes
3 // ignore-emscripten no processes
4 // ignore-sgx no processes
6 #![feature(process_try_wait)]
9 use std::process::Command;
11 use std::time::Duration;
14 let args = env::args().collect::<Vec<_>>();
17 "sleep" => thread::sleep(Duration::new(1_000, 0)),
23 let mut me = Command::new(env::current_exe().unwrap())
27 let maybe_status = me.try_wait().unwrap();
28 assert!(maybe_status.is_none());
29 let maybe_status = me.try_wait().unwrap();
30 assert!(maybe_status.is_none());
35 let status = me.try_wait().unwrap().unwrap();
36 assert!(!status.success());
37 let status = me.try_wait().unwrap().unwrap();
38 assert!(!status.success());
40 let mut me = Command::new(env::current_exe().unwrap())
41 .arg("return-quickly")
47 assert!(res.success());
51 thread::sleep(Duration::from_millis(1));
53 Err(e) => panic!("error in try_wait: {}", e),
57 let status = me.try_wait().unwrap().unwrap();
58 assert!(status.success());