chiark / gitweb /
childio: tests: refactoring
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 31 May 2021 13:15:35 +0000 (14:15 +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 401db3cece2617155af3e3b1883d178f7d412160..2205929673cefc68f99a2facc52730d43a91b892 100644 (file)
@@ -120,13 +120,19 @@ 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");
+  let setup = ||{
+    let c = Command::new("cat");
+    run_pair(c, "cat".into()).unwrap()
+  };
+
+  {
+    let (mut w, mut r) = setup();
+    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]
@@ -151,9 +157,13 @@ fn t_false() {
     r.read(&mut buf).map(|_|())
   });
 
-  one(&|w, _r|{
-    // make sure we lose the race and get EPIPE
+  let lose_race = |w: &mut Stdin| {
     w.child.lock().child.wait().unwrap();
+  };
+
+  one(&|w, _r|{
+    // make sure we will get EPIPE
+    lose_race(w);
     write!(w, "hi")
   });
 }