@@ -90,7 +90,7 @@ impl Step for CrateBootstrap {
9090 ) ;
9191
9292 let crate_name = path. rsplit_once ( '/' ) . unwrap ( ) . 1 ;
93- run_cargo_test ( cargo, & [ ] , & [ ] , crate_name, crate_name , bootstrap_host, builder) ;
93+ run_cargo_test ( cargo, & [ ] , & [ ] , crate_name, bootstrap_host, builder) ;
9494 }
9595}
9696
@@ -140,15 +140,7 @@ You can skip linkcheck with --skip src/tools/linkchecker"
140140 SourceType :: InTree ,
141141 & [ ] ,
142142 ) ;
143- run_cargo_test (
144- cargo,
145- & [ ] ,
146- & [ ] ,
147- "linkchecker" ,
148- "linkchecker self tests" ,
149- bootstrap_host,
150- builder,
151- ) ;
143+ run_cargo_test ( cargo, & [ ] , & [ ] , "linkchecker self tests" , bootstrap_host, builder) ;
152144
153145 if builder. doc_tests == DocTests :: No {
154146 return ;
@@ -337,7 +329,7 @@ impl Step for Cargo {
337329 ) ;
338330
339331 // NOTE: can't use `run_cargo_test` because we need to overwrite `PATH`
340- let mut cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , "cargo" , self . host , builder) ;
332+ let mut cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , self . host , builder) ;
341333
342334 // Don't run cross-compile tests, we may not have cross-compiled libstd libs
343335 // available.
@@ -423,7 +415,7 @@ impl Step for RustAnalyzer {
423415 cargo. env ( "SKIP_SLOW_TESTS" , "1" ) ;
424416
425417 cargo. add_rustc_lib_path ( builder) ;
426- run_cargo_test ( cargo, & [ ] , & [ ] , "rust-analyzer" , "rust-analyzer" , host, builder) ;
418+ run_cargo_test ( cargo, & [ ] , & [ ] , "rust-analyzer" , host, builder) ;
427419 }
428420}
429421
@@ -472,7 +464,7 @@ impl Step for Rustfmt {
472464
473465 cargo. add_rustc_lib_path ( builder) ;
474466
475- run_cargo_test ( cargo, & [ ] , & [ ] , "rustfmt" , "rustfmt" , host, builder) ;
467+ run_cargo_test ( cargo, & [ ] , & [ ] , "rustfmt" , host, builder) ;
476468 }
477469}
478470
@@ -588,7 +580,7 @@ impl Step for Miri {
588580
589581 // We can NOT use `run_cargo_test` since Miri's integration tests do not use the usual test
590582 // harness and therefore do not understand the flags added by `add_flags_and_try_run_test`.
591- let mut cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , "miri" , host, builder) ;
583+ let mut cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , host, builder) ;
592584
593585 // miri tests need to know about the stage sysroot
594586 cargo. env ( "MIRI_SYSROOT" , & miri_sysroot) ;
@@ -736,7 +728,7 @@ impl Step for CompiletestTest {
736728 & [ ] ,
737729 ) ;
738730 cargo. allow_features ( "test" ) ;
739- run_cargo_test ( cargo, & [ ] , & [ ] , "compiletest" , "compiletest self test", host, builder) ;
731+ run_cargo_test ( cargo, & [ ] , & [ ] , "compiletest self test" , host, builder) ;
740732 }
741733}
742734
@@ -797,7 +789,7 @@ impl Step for Clippy {
797789 cargo. env ( "HOST_LIBS" , host_libs) ;
798790
799791 cargo. add_rustc_lib_path ( builder) ;
800- let cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , "clippy" , host, builder) ;
792+ let cargo = prepare_cargo_test ( cargo, & [ ] , & [ ] , host, builder) ;
801793
802794 let _guard = builder. msg_sysroot_tool ( Kind :: Test , compiler. stage , "clippy" , host, host) ;
803795
@@ -1277,15 +1269,7 @@ impl Step for CrateRunMakeSupport {
12771269 & [ ] ,
12781270 ) ;
12791271 cargo. allow_features ( "test" ) ;
1280- run_cargo_test (
1281- cargo,
1282- & [ ] ,
1283- & [ ] ,
1284- "run-make-support" ,
1285- "run-make-support self test" ,
1286- host,
1287- builder,
1288- ) ;
1272+ run_cargo_test ( cargo, & [ ] , & [ ] , "run-make-support self test" , host, builder) ;
12891273 }
12901274}
12911275
@@ -1322,7 +1306,7 @@ impl Step for CrateBuildHelper {
13221306 & [ ] ,
13231307 ) ;
13241308 cargo. allow_features ( "test" ) ;
1325- run_cargo_test ( cargo, & [ ] , & [ ] , "build_helper" , "build_helper self test", host, builder) ;
1309+ run_cargo_test ( cargo, & [ ] , & [ ] , "build_helper self test" , host, builder) ;
13261310 }
13271311}
13281312
@@ -2507,13 +2491,12 @@ fn run_cargo_test<'a>(
25072491 cargo : builder:: Cargo ,
25082492 libtest_args : & [ & str ] ,
25092493 crates : & [ String ] ,
2510- primary_crate : & str ,
25112494 description : impl Into < Option < & ' a str > > ,
25122495 target : TargetSelection ,
25132496 builder : & Builder < ' _ > ,
25142497) -> bool {
25152498 let compiler = cargo. compiler ( ) ;
2516- let mut cargo = prepare_cargo_test ( cargo, libtest_args, crates, primary_crate , target, builder) ;
2499+ let mut cargo = prepare_cargo_test ( cargo, libtest_args, crates, target, builder) ;
25172500 let _time = helpers:: timeit ( builder) ;
25182501 let _group = description. into ( ) . and_then ( |what| {
25192502 builder. msg_sysroot_tool ( Kind :: Test , compiler. stage , what, compiler. host , target)
@@ -2537,7 +2520,6 @@ fn prepare_cargo_test(
25372520 cargo : builder:: Cargo ,
25382521 libtest_args : & [ & str ] ,
25392522 crates : & [ String ] ,
2540- primary_crate : & str ,
25412523 target : TargetSelection ,
25422524 builder : & Builder < ' _ > ,
25432525) -> BootstrapCommand {
@@ -2567,13 +2549,6 @@ fn prepare_cargo_test(
25672549 cargo. arg ( "--doc" ) ;
25682550 }
25692551 DocTests :: No => {
2570- let krate = & builder
2571- . crates
2572- . get ( primary_crate)
2573- . unwrap_or_else ( || panic ! ( "missing crate {primary_crate}" ) ) ;
2574- if krate. has_lib {
2575- cargo. arg ( "--lib" ) ;
2576- }
25772552 cargo. args ( [ "--bins" , "--examples" , "--tests" , "--benches" ] ) ;
25782553 }
25792554 DocTests :: Yes => { }
@@ -2748,15 +2723,15 @@ impl Step for Crate {
27482723 _ => panic ! ( "can only test libraries" ) ,
27492724 } ;
27502725
2751- run_cargo_test (
2752- cargo ,
2753- & [ ] ,
2754- & self . crates ,
2755- & self . crates [ 0 ] ,
2756- & * crate_description ( & self . crates ) ,
2757- target ,
2758- builder ,
2759- ) ;
2726+ let mut crates = self . crates . clone ( ) ;
2727+ // The core crate can't directly be tested. We could silently
2728+ // ignore it, but adding it's own test crate is less confusing
2729+ // for users. We still keep core itself for doctests.
2730+ if crates . iter ( ) . any ( |crate_| crate_ == "core" ) {
2731+ crates . push ( "coretests" . to_owned ( ) ) ;
2732+ }
2733+
2734+ run_cargo_test ( cargo , & [ ] , & crates , & * crate_description ( & self . crates ) , target , builder ) ;
27602735 }
27612736}
27622737
@@ -2849,15 +2824,7 @@ impl Step for CrateRustdoc {
28492824 dylib_path. insert ( 0 , PathBuf :: from ( & * libdir) ) ;
28502825 cargo. env ( dylib_path_var ( ) , env:: join_paths ( & dylib_path) . unwrap ( ) ) ;
28512826
2852- run_cargo_test (
2853- cargo,
2854- & [ ] ,
2855- & [ "rustdoc:0.0.0" . to_string ( ) ] ,
2856- "rustdoc" ,
2857- "rustdoc" ,
2858- target,
2859- builder,
2860- ) ;
2827+ run_cargo_test ( cargo, & [ ] , & [ "rustdoc:0.0.0" . to_string ( ) ] , "rustdoc" , target, builder) ;
28612828 }
28622829}
28632830
@@ -2914,7 +2881,6 @@ impl Step for CrateRustdocJsonTypes {
29142881 libtest_args,
29152882 & [ "rustdoc-json-types" . to_string ( ) ] ,
29162883 "rustdoc-json-types" ,
2917- "rustdoc-json-types" ,
29182884 target,
29192885 builder,
29202886 ) ;
@@ -3094,7 +3060,7 @@ impl Step for Bootstrap {
30943060
30953061 // bootstrap tests are racy on directory creation so just run them one at a time.
30963062 // Since there's not many this shouldn't be a problem.
3097- run_cargo_test ( cargo, & [ "--test-threads=1" ] , & [ ] , "bootstrap" , None , host, builder) ;
3063+ run_cargo_test ( cargo, & [ "--test-threads=1" ] , & [ ] , None , host, builder) ;
30983064 }
30993065
31003066 fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
@@ -3219,7 +3185,7 @@ impl Step for RustInstaller {
32193185 bootstrap_host,
32203186 bootstrap_host,
32213187 ) ;
3222- run_cargo_test ( cargo, & [ ] , & [ ] , "installer" , None , bootstrap_host, builder) ;
3188+ run_cargo_test ( cargo, & [ ] , & [ ] , None , bootstrap_host, builder) ;
32233189
32243190 // We currently don't support running the test.sh script outside linux(?) environments.
32253191 // Eventually this should likely migrate to #[test]s in rust-installer proper rather than a
@@ -3610,7 +3576,7 @@ impl Step for TestFloatParse {
36103576 & [ ] ,
36113577 ) ;
36123578
3613- run_cargo_test ( cargo_test, & [ ] , & [ ] , crate_name, crate_name , bootstrap_host, builder) ;
3579+ run_cargo_test ( cargo_test, & [ ] , & [ ] , crate_name, bootstrap_host, builder) ;
36143580
36153581 // Run the actual parse tests.
36163582 let mut cargo_run = tool:: prepare_tool_cargo (
0 commit comments