chiark / gitweb /
childio: Add a test case to simulate the Linux kernel race
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 31 May 2021 22:39:20 +0000 (23:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 31 May 2021 23:14:02 +0000 (00:14 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/childio.rs

index 5272ac82d8f1542e224bdd52b4774598c83929fa..0ecd68224bbfd61bca7b9e2156de785200c83a88 100644 (file)
@@ -242,4 +242,14 @@ pub mod test {
     assert!( w[0].ends_with(ENDING) );
   }
 
+
+  #[test]
+  fn t_like_linux_wtf() {
+    let mut c = Command::new("sh");
+    c.args(&["-ec", "exec >/dev/null; sleep 0.1; exit 1"]);
+    let (_w, mut r) = run_pair(c, "sh".to_owned()).unwrap();
+    let mut buf = [0;10];
+    let e = r.read(&mut buf).unwrap_err();
+    assert_is_status_1(&e);
+  }
 }