File tree Expand file tree Collapse file tree 3 files changed +16
-12
lines changed Expand file tree Collapse file tree 3 files changed +16
-12
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ im-rc = "15.0.0"
4141indexmap = " 1"
4242is-terminal = " 0.4.4"
4343itertools = " 0.10.0"
44- jobserver = " 0.1.24 "
44+ jobserver = " 0.1.26 "
4545lazy_static = " 1.2.0"
4646lazycell = " 1.2.0"
4747libc = " 0.2"
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ anyhow = "1.0.34"
1212crypto-hash = " 0.3.1"
1313filetime = " 0.2.9"
1414hex = " 0.4.2"
15- jobserver = " 0.1.21 "
15+ jobserver = " 0.1.26 "
1616libc = " 0.2.88"
1717log = " 0.4.6"
1818same-file = " 1.0.6"
Original file line number Diff line number Diff line change @@ -22,20 +22,24 @@ fn main() {
2222
2323#[cfg(unix)]
2424fn validate(s: &str) {
25- use std::fs::File;
25+ use std::fs::{self, File} ;
2626 use std::io::*;
2727 use std::os::unix::prelude::*;
2828
29- let fds = s.split(',').collect::<Vec<_>>();
30- println!("{}", s);
31- assert_eq!(fds.len(), 2);
32- unsafe {
33- let mut read = File::from_raw_fd(fds[0].parse().unwrap());
34- let mut write = File::from_raw_fd(fds[1].parse().unwrap());
29+ if let Some((r, w)) = s.split_once(',') {
30+ // `--jobserver-auth=R,W`
31+ unsafe {
32+ let mut read = File::from_raw_fd(r.parse().unwrap());
33+ let mut write = File::from_raw_fd(w.parse().unwrap());
3534
36- let mut buf = [0];
37- assert_eq!(read.read(&mut buf).unwrap(), 1);
38- assert_eq!(write.write(&buf).unwrap(), 1);
35+ let mut buf = [0];
36+ assert_eq!(read.read(&mut buf).unwrap(), 1);
37+ assert_eq!(write.write(&buf).unwrap(), 1);
38+ }
39+ } else {
40+ // `--jobserver-auth=fifo:PATH` is the default since GNU Make 4.4
41+ let (_, path) = s.split_once(':').expect("fifo:PATH");
42+ assert!(fs::metadata(path).unwrap().file_type().is_fifo());
3943 }
4044}
4145
You can’t perform that action at this time.
0 commit comments