@@ -1189,19 +1189,7 @@ impl Config {
11891189 pub fn parse ( args : & [ String ] ) -> Config {
11901190 #[ cfg( test) ]
11911191 fn get_toml ( _: & Path ) -> TomlConfig {
1192- let mut default = TomlConfig :: default ( ) ;
1193-
1194- // When configuring bootstrap for tests, make sure to set the rustc and Cargo to the
1195- // same ones used to call the tests. If we don't do that, bootstrap will use its own
1196- // detection logic to find a suitable rustc and Cargo, which doesn't work when the
1197- // caller is specìfying a custom local rustc or Cargo in their config.toml.
1198- default. build = Some ( Build {
1199- rustc : std:: env:: var_os ( "RUSTC" ) . map ( |v| v. into ( ) ) ,
1200- cargo : std:: env:: var_os ( "CARGO" ) . map ( |v| v. into ( ) ) ,
1201- ..Build :: default ( )
1202- } ) ;
1203-
1204- default
1192+ TomlConfig :: default ( )
12051193 }
12061194
12071195 #[ cfg( not( test) ) ]
@@ -1341,6 +1329,17 @@ impl Config {
13411329 TomlConfig :: default ( )
13421330 } ;
13431331
1332+ if cfg ! ( test) {
1333+ // When configuring bootstrap for tests, make sure to set the rustc and Cargo to the
1334+ // same ones used to call the tests (if custom ones are not defined in the toml). If we
1335+ // don't do that, bootstrap will use its own detection logic to find a suitable rustc
1336+ // and Cargo, which doesn't work when the caller is specìfying a custom local rustc or
1337+ // Cargo in their config.toml.
1338+ let build = toml. build . get_or_insert_with ( Default :: default) ;
1339+ build. rustc = build. rustc . take ( ) . or ( std:: env:: var_os ( "RUSTC" ) . map ( |p| p. into ( ) ) ) ;
1340+ build. cargo = build. cargo . take ( ) . or ( std:: env:: var_os ( "CARGO" ) . map ( |p| p. into ( ) ) ) ;
1341+ }
1342+
13441343 if let Some ( include) = & toml. profile {
13451344 // Allows creating alias for profile names, allowing
13461345 // profiles to be renamed while maintaining back compatibility
0 commit comments