chiark / gitweb /
childio: t_false test case, introduce one()
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 31 May 2021 12:58:55 +0000 (13:58 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 31 May 2021 13:46:05 +0000 (14:46 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/childio.rs

index 8f4bd213afaf1105b235c1ee9552c8e64941889f..3aed0919b4cc0525574d68899d747e0c2f5d62fc 100644 (file)
@@ -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(|_|())
+  });
 }
 
 }