#[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(|_|())
+ });
}
}