| #![warn(rust_2018_idioms)] | |
| #![cfg(feature = "full")] | |
| use tokio::process::Command; | |
| use tokio_test::assert_ok; | |
| #[tokio::test] | |
| async fn simple() { | |
| let mut cmd; | |
| if cfg!(windows) { | |
| cmd = Command::new("cmd"); | |
| cmd.arg("/c"); | |
| } else { | |
| cmd = Command::new("sh"); | |
| cmd.arg("-c"); | |
| } | |
| let mut child = cmd.arg("exit 2").spawn().unwrap(); | |
| let id = child.id(); | |
| assert!(id > 0); | |
| let status = assert_ok!((&mut child).await); | |
| assert_eq!(status.code(), Some(2)); | |
| assert_eq!(child.id(), id); | |
| drop(child.kill()); | |
| } |