From cdfd6bb053240aca96c76a5c39d0825512e17da7 Mon Sep 17 00:00:00 2001 From: Michael J Ward Date: Sat, 19 Oct 2019 12:21:13 -0500 Subject: [PATCH 1/2] adds skeleton for process Child and Command --- src/lib.rs | 1 + src/process/mod.rs | 56 +++++++++++++++++++++++++++++++++++++++++++++ tests/buf_writer.rs | 1 + 3 files changed, 58 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 7f888a14a..320c28f98 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -61,6 +61,7 @@ pub mod prelude; pub mod stream; pub mod sync; pub mod task; +pub mod process; cfg_unstable! { pub mod pin; diff --git a/src/process/mod.rs b/src/process/mod.rs index 630c5b9b9..663145edd 100644 --- a/src/process/mod.rs +++ b/src/process/mod.rs @@ -12,3 +12,59 @@ pub use std::process::{ExitStatus, Output}; // Re-export functions. pub use std::process::{abort, exit, id}; + +use std::io; +use std::pin::Pin; +use std::task::Context; +use crate::future::Future; +use crate::task::Poll; +use std::ffi::OsStr; + +struct Child { + stdin: Option, + stdout: Option, + stderr: Option, +} + +impl Child { + fn id(&self) -> u32 { + unimplemented!("need to do"); + } + fn kill(&mut self) -> io::Result<()> { + unimplemented!(); + } + async fn output(self) -> io::Result { + unimplemented!(); + } +} + +impl Future for Child { + type Output = io::Result; + + fn poll(self: Pin<&mut Self>, context: &mut Context<'_>) -> Poll { + unimplemented!(); + } + +} + +struct ChildStdin; +struct ChildStdout; +struct ChildStderr; + +struct Command; + +impl Command { + fn new>(program: S) -> Command { + unimplemented!(); + } + /// ``` + /// let child = Command::new("ls").spawn(); + /// let future = child.expect("failed to spawn child"); + /// let result = future.await?; + /// assert!(!result.empty()); + /// assert!(false); + /// ``` + fn spawn(&mut self) -> io::Result { + unimplemented!(); + } +} diff --git a/tests/buf_writer.rs b/tests/buf_writer.rs index cb2368aac..96565414d 100644 --- a/tests/buf_writer.rs +++ b/tests/buf_writer.rs @@ -47,6 +47,7 @@ fn test_buffered_writer() { }) } +#[ignore] #[test] fn test_buffered_writer_inner_into_inner_flushes() { task::block_on(async { From 6e9f95e7d3a7a50412af9d21be2cfb86538b4479 Mon Sep 17 00:00:00 2001 From: Michael J Ward Date: Sat, 19 Oct 2019 12:50:28 -0500 Subject: [PATCH 2/2] fixed compilation errors in doctest --- src/process/mod.rs | 15 ++++++++++----- tests/buf_writer.rs | 1 - 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/process/mod.rs b/src/process/mod.rs index 663145edd..f2f6b1bc1 100644 --- a/src/process/mod.rs +++ b/src/process/mod.rs @@ -20,7 +20,7 @@ use crate::future::Future; use crate::task::Poll; use std::ffi::OsStr; -struct Child { +pub struct Child { stdin: Option, stdout: Option, stderr: Option, @@ -51,20 +51,25 @@ struct ChildStdin; struct ChildStdout; struct ChildStderr; -struct Command; +pub struct Command; impl Command { - fn new>(program: S) -> Command { + pub fn new>(program: S) -> Command { unimplemented!(); } /// ``` + /// # fn main() -> std::io::Result<()> { async_std::task::block_on(async { + /// # + /// use async_std::process::Command; /// let child = Command::new("ls").spawn(); /// let future = child.expect("failed to spawn child"); /// let result = future.await?; - /// assert!(!result.empty()); + /// assert!(result.success()); /// assert!(false); + /// # + /// # Ok(()) }) } /// ``` - fn spawn(&mut self) -> io::Result { + pub fn spawn(&mut self) -> io::Result { unimplemented!(); } } diff --git a/tests/buf_writer.rs b/tests/buf_writer.rs index 96565414d..cb2368aac 100644 --- a/tests/buf_writer.rs +++ b/tests/buf_writer.rs @@ -47,7 +47,6 @@ fn test_buffered_writer() { }) } -#[ignore] #[test] fn test_buffered_writer_inner_into_inner_flushes() { task::block_on(async {