Skip to content

Commit 54c8fe8

Browse files
committed
test: verify cargo-run doesn't inherit jobserver
1 parent 4a665fb commit 54c8fe8

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

tests/testsuite/jobserver.rs

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const EXE_CONTENT: &str = r#"
1212
use std::env;
1313
1414
fn main() {
15-
let var = env::var("CARGO_MAKEFLAGS").unwrap();
15+
let var = env::var("CARGO_MAKEFLAGS").expect("no jobserver from env");
1616
let arg = var.split(' ')
1717
.find(|p| p.starts_with("--jobserver"))
1818
.unwrap();
@@ -105,6 +105,46 @@ all:
105105
p.process(make).env("CARGO", cargo_exe()).arg("-j2").run();
106106
}
107107

108+
#[cargo_test]
109+
fn cargo_run_inherits_jobserver() {
110+
let make = make_exe();
111+
if Command::new(make).arg("--version").output().is_err() {
112+
return;
113+
}
114+
115+
let name = "cargo-jobserver-check";
116+
let p = project()
117+
.file(
118+
"Cargo.toml",
119+
&format!(
120+
r#"
121+
[package]
122+
name = "{name}"
123+
version = "0.0.1"
124+
"#
125+
),
126+
)
127+
.file("src/main.rs", EXE_CONTENT)
128+
.file(
129+
"Makefile",
130+
"\
131+
all:
132+
\t+$(CARGO) run
133+
",
134+
)
135+
.build();
136+
137+
p.process(make).env("CARGO", cargo_exe()).arg("-j2")
138+
.with_status(2)
139+
.with_stderr_contains("[..]no jobserver from env[..]")
140+
.run();
141+
142+
p.cargo("run -j2")
143+
.with_status(101)
144+
.with_stderr_contains("[..]no jobserver from env[..]")
145+
.run();
146+
}
147+
108148
#[cargo_test]
109149
fn makes_jobserver_used() {
110150
let make = make_exe();

0 commit comments

Comments
 (0)