use super::prelude::*;
#[test]
fn nowrap() -> Result<()> {
let mut child = StdCommandWrap::with_new("cat", |command| {
command.stdin(Stdio::piped()).stdout(Stdio::piped());
})
.spawn()?
.into_inner();
if let Some(mut din) = child.stdin.take() {
din.write_all(b"hello")?;
}
let mut output = String::new();
if let Some(mut out) = child.stdout.take() {
out.read_to_string(&mut output)?;
}
assert_eq!(output.as_str(), "hello");
Ok(())
}
#[test]
fn process_group() -> Result<()> {
let mut child = StdCommandWrap::with_new("cat", |command| {
command.stdin(Stdio::piped()).stdout(Stdio::piped());
})
.wrap(ProcessGroup::leader())
.spawn()?
.into_inner();
if let Some(mut din) = child.stdin.take() {
din.write_all(b"hello")?;
}
let mut output = String::new();
if let Some(mut out) = child.stdout.take() {
out.read_to_string(&mut output)?;
}
assert_eq!(output.as_str(), "hello");
Ok(())
}
#[test]
fn process_session() -> Result<()> {
let mut child = StdCommandWrap::with_new("cat", |command| {
command.stdin(Stdio::piped()).stdout(Stdio::piped());
})
.wrap(ProcessSession)
.spawn()?
.into_inner();
if let Some(mut din) = child.stdin.take() {
din.write_all(b"hello")?;
}
let mut output = String::new();
if let Some(mut out) = child.stdout.take() {
out.read_to_string(&mut output)?;
}
assert_eq!(output.as_str(), "hello");
Ok(())
}