3 #![allow(stable_features)]
4 // ignore-cloudabi no processes
5 // ignore-emscripten no processes
6 // ignore-sgx no processes
8 #![feature(process_try_wait)]
11 use std::process::Command;
13 use std::time::Duration;
16 let args = env::args().collect::<Vec<_>>();
19 "sleep" => thread::sleep(Duration::new(1_000, 0)),
25 let mut me = Command::new(env::current_exe().unwrap())
29 let maybe_status = me.try_wait().unwrap();
30 assert!(maybe_status.is_none());
31 let maybe_status = me.try_wait().unwrap();
32 assert!(maybe_status.is_none());
37 let status = me.try_wait().unwrap().unwrap();
38 assert!(!status.success());
39 let status = me.try_wait().unwrap().unwrap();
40 assert!(!status.success());
42 let mut me = Command::new(env::current_exe().unwrap())
43 .arg("return-quickly")
49 assert!(res.success());
53 thread::sleep(Duration::from_millis(1));
55 Err(e) => panic!("error in try_wait: {}", e),
59 let status = me.try_wait().unwrap().unwrap();
60 assert!(status.success());