Skip to content

Commit d0c751b

Browse files
author
Jon Gjengset
committed
Test when RUSTC_WORKSPACE_WRAPPER is not set
1 parent d6b4a06 commit d0c751b

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

tests/testsuite/build_script.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ fn custom_build_env_var_rustc_wrapper() {
254254
#[cargo_test]
255255
fn custom_build_env_var_rustc_workspace_wrapper() {
256256
let wrapper = tools::echo_wrapper();
257+
258+
// Workspace wrapper should be set for any crate we're operating directly on.
257259
let p = project()
258260
.file(
259261
"build.rs",
@@ -275,6 +277,48 @@ fn custom_build_env_var_rustc_workspace_wrapper() {
275277
.env("CARGO_BUILD_RUSTC_WORKSPACE_WRAPPER", &wrapper)
276278
.env("CARGO_RUSTC_WORKSPACE_WRAPPER_CHECK", &wrapper)
277279
.run();
280+
281+
// But should not be set for a crate from the registry, as then it's not in a workspace.
282+
Package::new("bar", "0.1.0")
283+
.file(
284+
"Cargo.toml",
285+
r#"
286+
[package]
287+
name = "bar"
288+
version = "0.1.0"
289+
links = "a"
290+
"#,
291+
)
292+
.file(
293+
"build.rs",
294+
r#"
295+
use std::env;
296+
297+
fn main() {{
298+
assert!(env::var("RUSTC_WORKSPACE_WRAPPER").is_err());
299+
}}
300+
"#,
301+
)
302+
.file("src/lib.rs", "")
303+
.publish();
304+
let p = project()
305+
.file(
306+
"Cargo.toml",
307+
r#"
308+
[package]
309+
name = "foo"
310+
version = "0.1.0"
311+
312+
[dependencies]
313+
bar = "0.1"
314+
"#,
315+
)
316+
.file("src/lib.rs", "")
317+
.build();
318+
319+
p.cargo("check")
320+
.env("CARGO_BUILD_RUSTC_WORKSPACE_WRAPPER", &wrapper)
321+
.run();
278322
}
279323

280324
#[cargo_test]

0 commit comments

Comments
 (0)