@@ -246,6 +246,78 @@ fn registry_dependency() {
246
246
. run ( ) ;
247
247
}
248
248
249
+ #[ cargo_test( nightly, reason = "-Zremap-path-scope is unstable" ) ]
250
+ fn registry_dependency_with_build_script_codegen ( ) {
251
+ Package :: new ( "bar" , "0.0.1" )
252
+ . file ( "Cargo.toml" , & basic_manifest ( "bar" , "0.0.1" ) )
253
+ . file (
254
+ "build.rs" ,
255
+ r#"
256
+ fn main() {
257
+ let out_dir = std::env::var("OUT_DIR").unwrap();
258
+ let dest = std::path::PathBuf::from(out_dir);
259
+ std::fs::write(
260
+ dest.join("bindings.rs"),
261
+ "pub fn my_file() -> &'static str { file!() }",
262
+ )
263
+ .unwrap();
264
+ }
265
+ "# ,
266
+ )
267
+ . file (
268
+ "src/lib.rs" ,
269
+ r#"
270
+ include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
271
+ "# ,
272
+ )
273
+ . publish ( ) ;
274
+ let p = project ( )
275
+ . file (
276
+ "Cargo.toml" ,
277
+ r#"
278
+ [package]
279
+ name = "foo"
280
+ version = "0.0.1"
281
+ edition = "2015"
282
+
283
+ [dependencies]
284
+ bar = "0.0.1"
285
+
286
+ [profile.dev]
287
+ trim-paths = "object"
288
+ "# ,
289
+ )
290
+ . file (
291
+ "src/main.rs" ,
292
+ r#"fn main() { println!("{}", bar::my_file()); }"# ,
293
+ )
294
+ . build ( ) ;
295
+
296
+ p. cargo ( "run --verbose -Ztrim-paths" )
297
+ . masquerade_as_nightly_cargo ( & [ "-Ztrim-paths" ] )
298
+ // Macros should be sanitized
299
+ . with_stdout_data ( str![ [ r#"
300
+ [ROOT]/foo/target/debug/build/bar-[HASH]/out/bindings.rs
301
+
302
+ "# ] ] ) // Omit the hash of Source URL
303
+ . with_stderr_data ( str![ [ r#"
304
+ [UPDATING] `dummy-registry` index
305
+ [LOCKING] 1 package to latest compatible version
306
+ [DOWNLOADING] crates ...
307
+ [DOWNLOADED] bar v0.0.1 (registry `dummy-registry`)
308
+ [COMPILING] bar v0.0.1
309
+ [RUNNING] `rustc --crate-name build_script_build [..]-Zremap-path-scope=object --remap-path-prefix=[ROOT]/home/.cargo/registry/src= --remap-path-prefix=[..]/lib/rustlib/src/rust=/rustc/[..]`
310
+ [RUNNING] `[ROOT]/foo/target/debug/build/bar-[HASH]/build-script-build`
311
+ [RUNNING] `rustc --crate-name bar [..]-Zremap-path-scope=object --remap-path-prefix=[ROOT]/home/.cargo/registry/src= --remap-path-prefix=[..]/lib/rustlib/src/rust=/rustc/[..]`
312
+ [COMPILING] foo v0.0.1 ([ROOT]/foo)
313
+ [RUNNING] `rustc --crate-name foo [..]-Zremap-path-scope=object --remap-path-prefix=[ROOT]/foo=. --remap-path-prefix=[..]/lib/rustlib/src/rust=/rustc/[..]`
314
+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
315
+ [RUNNING] `target/debug/foo`
316
+
317
+ "# ] ] )
318
+ . run ( ) ;
319
+ }
320
+
249
321
#[ cargo_test( nightly, reason = "-Zremap-path-scope is unstable" ) ]
250
322
fn git_dependency ( ) {
251
323
let git_project = git:: new ( "bar" , |project| {
0 commit comments