From: Ian Jackson Date: Mon, 31 May 2021 12:58:55 +0000 (+0100) Subject: childio: t_false test case, introduce one() X-Git-Tag: otter-0.7.0~203 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=32eef2933a59292d9f654135657eb8a84e9086e5;p=otter.git childio: t_false test case, introduce one() Signed-off-by: Ian Jackson --- diff --git a/src/childio.rs b/src/childio.rs index 8f4bd213..3aed0919 100644 --- a/src/childio.rs +++ b/src/childio.rs @@ -129,13 +129,21 @@ fn t_cat() { #[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 ); + let one = | f: &dyn Fn(&mut dyn Write, &mut dyn Read) -> io::Result<()> |{ + let c = Command::new("false"); + let (mut w, mut r) = run_pair(c, "cat".into()).unwrap(); + + let r = f(&mut w, &mut r); + let e = r.unwrap_err(); + assert_eq!( e.kind(), ErrorKind::Other ); + let es = e.to_string(); + assert!( es.ends_with("exit status: 1"), "actually {:?}", es ); + }; + + one(&|_w, r|{ + let mut buf = [0;10]; + r.read(&mut buf).map(|_|()) + }); } }