File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -254,6 +254,8 @@ fn custom_build_env_var_rustc_wrapper() {
254
254
#[ cargo_test]
255
255
fn custom_build_env_var_rustc_workspace_wrapper ( ) {
256
256
let wrapper = tools:: echo_wrapper ( ) ;
257
+
258
+ // Workspace wrapper should be set for any crate we're operating directly on.
257
259
let p = project ( )
258
260
. file (
259
261
"build.rs" ,
@@ -275,6 +277,48 @@ fn custom_build_env_var_rustc_workspace_wrapper() {
275
277
. env ( "CARGO_BUILD_RUSTC_WORKSPACE_WRAPPER" , & wrapper)
276
278
. env ( "CARGO_RUSTC_WORKSPACE_WRAPPER_CHECK" , & wrapper)
277
279
. 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 ( ) ;
278
322
}
279
323
280
324
#[ cargo_test]
You can’t perform that action at this time.
0 commit comments