From 32eef2933a59292d9f654135657eb8a84e9086e5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 31 May 2021 13:58:55 +0100 Subject: [PATCH] childio: t_false test case, introduce one() Signed-off-by: Ian Jackson --- src/childio.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) 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(|_|()) + }); } } -- 2.30.2