Skip to content

Commit 9880b40

Browse files
committed
Auto merge of #11767 - weihanglo:jobserver-style-fifo, r=ehuss
bump jobserver to respect `--jobserver-auth=fifo:PATH`
2 parents e7b11e7 + b9bfda5 commit 9880b40

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ im-rc = "15.0.0"
4141
indexmap = "1"
4242
is-terminal = "0.4.4"
4343
itertools = "0.10.0"
44-
jobserver = "0.1.24"
44+
jobserver = "0.1.26"
4545
lazy_static = "1.2.0"
4646
lazycell = "1.2.0"
4747
libc = "0.2"

crates/cargo-util/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ anyhow = "1.0.34"
1212
crypto-hash = "0.3.1"
1313
filetime = "0.2.9"
1414
hex = "0.4.2"
15-
jobserver = "0.1.21"
15+
jobserver = "0.1.26"
1616
libc = "0.2.88"
1717
log = "0.4.6"
1818
same-file = "1.0.6"

tests/testsuite/jobserver.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,24 @@ fn main() {
2222
2323
#[cfg(unix)]
2424
fn 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

0 commit comments

Comments
 (0)