From db2810c784befda35e0e234d58c03c23d9042605 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 31 May 2021 13:47:49 +0100 Subject: [PATCH] childio: test cases Signed-off-by: Ian Jackson --- src/childio.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/childio.rs b/src/childio.rs index 35446b24..8f4bd213 100644 --- a/src/childio.rs +++ b/src/childio.rs @@ -109,3 +109,33 @@ impl Write for ChildIo where W: Write { self.rw_result(r.map(|()|0)).map(|_|()) } } + +#[cfg(test)] +#[cfg(not(miri))] +mod test { +use crate::prelude::*; +use super::*; + +#[test] +fn t_cat() { + let c = Command::new("cat"); + let (mut w, mut r) = run_pair(c, "cat".into()).unwrap(); + assert_eq!( write!(w, "hi").unwrap(), () ); + assert_eq!( w.flush() .unwrap(), () ); + let mut buf = [0;10]; + assert_eq!( r.read(&mut buf).unwrap(), 2 ); + assert_eq!(&buf[0..2], b"hi"); +} + +#[test] +fn t_false() { + let c = Command::new("false"); + let (_w, mut r) = run_pair(c, "cat".into()).unwrap(); + let mut buf = [0;10]; + let e = r.read(&mut buf).unwrap_err(); + assert_eq!( e.kind(), ErrorKind::Other ); + let es = e.to_string(); + assert!( es.ends_with("exit status: 1"), "actually {:?}", es ); +} + +} -- 2.30.2