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"
41
41
indexmap = " 1"
42
42
is-terminal = " 0.4.4"
43
43
itertools = " 0.10.0"
44
- jobserver = " 0.1.24 "
44
+ jobserver = " 0.1.26 "
45
45
lazy_static = " 1.2.0"
46
46
lazycell = " 1.2.0"
47
47
libc = " 0.2"
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ anyhow = "1.0.34"
12
12
crypto-hash = " 0.3.1"
13
13
filetime = " 0.2.9"
14
14
hex = " 0.4.2"
15
- jobserver = " 0.1.21 "
15
+ jobserver = " 0.1.26 "
16
16
libc = " 0.2.88"
17
17
log = " 0.4.6"
18
18
same-file = " 1.0.6"
Original file line number Diff line number Diff line change @@ -22,20 +22,24 @@ fn main() {
22
22
23
23
#[cfg(unix)]
24
24
fn validate(s: &str) {
25
- use std::fs::File;
25
+ use std::fs::{self, File} ;
26
26
use std::io::*;
27
27
use std::os::unix::prelude::*;
28
28
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());
35
34
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());
39
43
}
40
44
}
41
45
You can’t perform that action at this time.
0 commit comments