@@ -8,6 +8,7 @@ use cargo::{
88} ;
99use cargo_test_support:: paths:: { root, CargoPathExt } ;
1010use cargo_test_support:: registry:: Package ;
11+ use cargo_test_support:: tools;
1112use cargo_test_support:: {
1213 basic_bin_manifest, basic_lib_manifest, basic_manifest, cargo_exe, git, is_nightly,
1314 lines_match_unordered, main_file, paths, process, project, rustc_host, sleep_ms,
@@ -4054,64 +4055,52 @@ fn run_proper_binary_main_rs_as_foo() {
40544055}
40554056
40564057#[ cargo_test]
4057- // NOTE: we don't have `/usr/bin/env` on Windows.
4058- #[ cfg( not( windows) ) ]
40594058fn rustc_wrapper ( ) {
40604059 let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
4060+ let wrapper = tools:: echo_wrapper ( ) ;
4061+ let running = format ! (
4062+ "[RUNNING] `{} rustc --crate-name foo [..]" ,
4063+ wrapper. display( )
4064+ ) ;
40614065 p. cargo ( "build -v" )
4062- . env ( "RUSTC_WRAPPER" , "/usr/bin/env" )
4063- . with_stderr_contains ( "[RUNNING] `/usr/bin/env rustc --crate-name foo [..]" )
4066+ . env ( "RUSTC_WRAPPER" , & wrapper )
4067+ . with_stderr_contains ( & running )
40644068 . run ( ) ;
4065- }
4066-
4067- #[ cargo_test]
4068- #[ cfg( not( windows) ) ]
4069- fn rustc_wrapper_relative ( ) {
4070- let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
4069+ p. build_dir ( ) . rm_rf ( ) ;
40714070 p. cargo ( "build -v" )
4072- . env ( "RUSTC_WRAPPER" , "./sccache" )
4073- . with_status ( 101 )
4074- . with_stderr_contains ( "[..]/foo/./sccache rustc[..]" )
4071+ . env ( "RUSTC_WORKSPACE_WRAPPER" , & wrapper)
4072+ . with_stderr_contains ( & running)
40754073 . run ( ) ;
40764074}
40774075
40784076#[ cargo_test]
4079- #[ cfg( not( windows) ) ]
4080- fn rustc_wrapper_from_path ( ) {
4077+ fn rustc_wrapper_relative ( ) {
40814078 let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
4079+ let wrapper = tools:: echo_wrapper ( ) ;
4080+ let exe_name = wrapper. file_name ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ;
4081+ let relative_path = format ! ( "./{}" , exe_name) ;
4082+ fs:: hard_link ( & wrapper, p. root ( ) . join ( exe_name) ) . unwrap ( ) ;
4083+ let running = format ! ( "[RUNNING] `[ROOT]/foo/./{} rustc[..]" , exe_name) ;
40824084 p. cargo ( "build -v" )
4083- . env ( "RUSTC_WRAPPER" , "wannabe_sccache" )
4084- . with_status ( 101 )
4085- . with_stderr_contains ( "[..]`wannabe_sccache rustc [..]" )
4085+ . env ( "RUSTC_WRAPPER" , & relative_path)
4086+ . with_stderr_contains ( & running)
40864087 . run ( ) ;
4087- }
4088-
4089- #[ cargo_test]
4090- // NOTE: we don't have `/usr/bin/env` on Windows.
4091- #[ cfg( not( windows) ) ]
4092- fn rustc_workspace_wrapper ( ) {
4093- let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
4088+ p. build_dir ( ) . rm_rf ( ) ;
40944089 p. cargo ( "build -v" )
4095- . env ( "RUSTC_WORKSPACE_WRAPPER" , "/usr/bin/env" )
4096- . with_stderr_contains ( "[RUNNING] `/usr/bin/env rustc --crate-name foo [..]" )
4090+ . env ( "RUSTC_WORKSPACE_WRAPPER" , & relative_path )
4091+ . with_stderr_contains ( & running )
40974092 . run ( ) ;
40984093}
40994094
41004095#[ cargo_test]
4101- #[ cfg( not( windows) ) ]
4102- fn rustc_workspace_wrapper_relative ( ) {
4096+ fn rustc_wrapper_from_path ( ) {
41034097 let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
41044098 p. cargo ( "build -v" )
4105- . env ( "RUSTC_WORKSPACE_WRAPPER " , "./sccache " )
4099+ . env ( "RUSTC_WRAPPER " , "wannabe_sccache " )
41064100 . with_status ( 101 )
4107- . with_stderr_contains ( "[..]/foo/./sccache rustc[..]" )
4101+ . with_stderr_contains ( "[..]`wannabe_sccache rustc [..]" )
41084102 . run ( ) ;
4109- }
4110-
4111- #[ cargo_test]
4112- #[ cfg( not( windows) ) ]
4113- fn rustc_workspace_wrapper_from_path ( ) {
4114- let p = project ( ) . file ( "src/lib.rs" , "" ) . build ( ) ;
4103+ p. build_dir ( ) . rm_rf ( ) ;
41154104 p. cargo ( "build -v" )
41164105 . env ( "RUSTC_WORKSPACE_WRAPPER" , "wannabe_sccache" )
41174106 . with_status ( 101 )
0 commit comments