@@ -98,6 +98,13 @@ impl Step for CrateBootstrap {
98
98
let crate_name = path. rsplit_once ( '/' ) . unwrap ( ) . 1 ;
99
99
run_cargo_test ( cargo, & [ ] , & [ ] , crate_name, bootstrap_host, builder) ;
100
100
}
101
+
102
+ fn metadata ( & self ) -> Option < StepMetadata > {
103
+ Some (
104
+ StepMetadata :: test ( "crate-bootstrap" , self . host )
105
+ . with_metadata ( self . path . as_path ( ) . to_string_lossy ( ) . to_string ( ) ) ,
106
+ )
107
+ }
101
108
}
102
109
103
110
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
@@ -173,6 +180,10 @@ You can skip linkcheck with --skip src/tools/linkchecker"
173
180
fn make_run ( run : RunConfig < ' _ > ) {
174
181
run. builder . ensure ( Linkcheck { host : run. target } ) ;
175
182
}
183
+
184
+ fn metadata ( & self ) -> Option < StepMetadata > {
185
+ Some ( StepMetadata :: test ( "link-check" , self . host ) )
186
+ }
176
187
}
177
188
178
189
fn check_if_tidy_is_installed ( builder : & Builder < ' _ > ) -> bool {
@@ -221,6 +232,10 @@ impl Step for HtmlCheck {
221
232
. arg ( builder. doc_out ( self . target ) )
222
233
. run ( builder) ;
223
234
}
235
+
236
+ fn metadata ( & self ) -> Option < StepMetadata > {
237
+ Some ( StepMetadata :: test ( "html-check" , self . target ) )
238
+ }
224
239
}
225
240
226
241
/// Builds cargo and then runs the `src/tools/cargotest` tool, which checks out
@@ -399,6 +414,10 @@ impl Step for Cargo {
399
414
let _time = helpers:: timeit ( builder) ;
400
415
add_flags_and_try_run_tests ( builder, & mut cargo) ;
401
416
}
417
+
418
+ fn metadata ( & self ) -> Option < StepMetadata > {
419
+ Some ( StepMetadata :: test ( "cargo" , self . host ) . built_by ( self . build_compiler ) )
420
+ }
402
421
}
403
422
404
423
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
@@ -457,6 +476,13 @@ impl Step for RustAnalyzer {
457
476
cargo. add_rustc_lib_path ( builder) ;
458
477
run_cargo_test ( cargo, & [ ] , & [ ] , "rust-analyzer" , host, builder) ;
459
478
}
479
+
480
+ fn metadata ( & self ) -> Option < StepMetadata > {
481
+ Some (
482
+ StepMetadata :: test ( "rust-analyzer" , self . compilers . target ( ) )
483
+ . built_by ( self . compilers . build_compiler ( ) ) ,
484
+ )
485
+ }
460
486
}
461
487
462
488
/// Runs `cargo test` for rustfmt.
@@ -508,6 +534,13 @@ impl Step for Rustfmt {
508
534
509
535
run_cargo_test ( cargo, & [ ] , & [ ] , "rustfmt" , target, builder) ;
510
536
}
537
+
538
+ fn metadata ( & self ) -> Option < StepMetadata > {
539
+ Some (
540
+ StepMetadata :: test ( "rustfmt" , self . compilers . target ( ) )
541
+ . built_by ( self . compilers . build_compiler ( ) ) ,
542
+ )
543
+ }
511
544
}
512
545
513
546
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
@@ -887,6 +920,13 @@ impl Step for Clippy {
887
920
crate :: exit!( 1 ) ;
888
921
}
889
922
}
923
+
924
+ fn metadata ( & self ) -> Option < StepMetadata > {
925
+ Some (
926
+ StepMetadata :: test ( "clippy" , self . compilers . target ( ) )
927
+ . built_by ( self . compilers . build_compiler ( ) ) ,
928
+ )
929
+ }
890
930
}
891
931
892
932
fn bin_path_for_cargo ( builder : & Builder < ' _ > , compiler : Compiler ) -> OsString {
@@ -895,9 +935,11 @@ fn bin_path_for_cargo(builder: &Builder<'_>, compiler: Compiler) -> OsString {
895
935
env:: join_paths ( iter:: once ( path) . chain ( env:: split_paths ( & old_path) ) ) . expect ( "" )
896
936
}
897
937
938
+ /// Run the rustdoc-themes tool to test a given compiler.
898
939
#[ derive( Debug , Clone , Hash , PartialEq , Eq ) ]
899
940
pub struct RustdocTheme {
900
- pub compiler : Compiler ,
941
+ /// The compiler (more accurately, its rustdoc) that we test.
942
+ test_compiler : Compiler ,
901
943
}
902
944
903
945
impl Step for RustdocTheme {
@@ -910,31 +952,44 @@ impl Step for RustdocTheme {
910
952
}
911
953
912
954
fn make_run ( run : RunConfig < ' _ > ) {
913
- let compiler = run. builder . compiler ( run. builder . top_stage , run. target ) ;
955
+ let test_compiler = run. builder . compiler ( run. builder . top_stage , run. target ) ;
914
956
915
- run. builder . ensure ( RustdocTheme { compiler } ) ;
957
+ run. builder . ensure ( RustdocTheme { test_compiler } ) ;
916
958
}
917
959
918
960
fn run ( self , builder : & Builder < ' _ > ) {
919
961
let rustdoc = builder. bootstrap_out . join ( "rustdoc" ) ;
920
962
let mut cmd = builder. tool_cmd ( Tool :: RustdocTheme ) ;
921
963
cmd. arg ( rustdoc. to_str ( ) . unwrap ( ) )
922
964
. arg ( builder. src . join ( "src/librustdoc/html/static/css/rustdoc.css" ) . to_str ( ) . unwrap ( ) )
923
- . env ( "RUSTC_STAGE" , self . compiler . stage . to_string ( ) )
924
- . env ( "RUSTC_SYSROOT" , builder. sysroot ( self . compiler ) )
925
- . env ( "RUSTDOC_LIBDIR" , builder. sysroot_target_libdir ( self . compiler , self . compiler . host ) )
965
+ . env ( "RUSTC_STAGE" , self . test_compiler . stage . to_string ( ) )
966
+ . env ( "RUSTC_SYSROOT" , builder. sysroot ( self . test_compiler ) )
967
+ . env (
968
+ "RUSTDOC_LIBDIR" ,
969
+ builder. sysroot_target_libdir ( self . test_compiler , self . test_compiler . host ) ,
970
+ )
926
971
. env ( "CFG_RELEASE_CHANNEL" , & builder. config . channel )
927
- . env ( "RUSTDOC_REAL" , builder. rustdoc_for_compiler ( self . compiler ) )
972
+ . env ( "RUSTDOC_REAL" , builder. rustdoc_for_compiler ( self . test_compiler ) )
928
973
. env ( "RUSTC_BOOTSTRAP" , "1" ) ;
929
- cmd. args ( linker_args ( builder, self . compiler . host , LldThreads :: No ) ) ;
974
+ cmd. args ( linker_args ( builder, self . test_compiler . host , LldThreads :: No ) ) ;
930
975
931
976
cmd. delay_failure ( ) . run ( builder) ;
932
977
}
978
+
979
+ fn metadata ( & self ) -> Option < StepMetadata > {
980
+ Some (
981
+ StepMetadata :: test ( "rustdoc-theme" , self . test_compiler . host )
982
+ . stage ( self . test_compiler . stage ) ,
983
+ )
984
+ }
933
985
}
934
986
987
+ /// Test rustdoc JS for the standard library.
935
988
#[ derive( Debug , Clone , Hash , PartialEq , Eq ) ]
936
989
pub struct RustdocJSStd {
937
- pub target : TargetSelection ,
990
+ /// Compiler that will build the standary library.
991
+ build_compiler : Compiler ,
992
+ target : TargetSelection ,
938
993
}
939
994
940
995
impl Step for RustdocJSStd {
@@ -948,7 +1003,10 @@ impl Step for RustdocJSStd {
948
1003
}
949
1004
950
1005
fn make_run ( run : RunConfig < ' _ > ) {
951
- run. builder . ensure ( RustdocJSStd { target : run. target } ) ;
1006
+ run. builder . ensure ( RustdocJSStd {
1007
+ build_compiler : run. builder . compiler ( run. builder . top_stage , run. builder . host_target ) ,
1008
+ target : run. target ,
1009
+ } ) ;
952
1010
}
953
1011
954
1012
fn run ( self , builder : & Builder < ' _ > ) {
@@ -976,19 +1034,18 @@ impl Step for RustdocJSStd {
976
1034
}
977
1035
}
978
1036
builder. ensure ( crate :: core:: build_steps:: doc:: Std :: from_build_compiler (
979
- builder . compiler ( builder . top_stage , builder . host_target ) ,
1037
+ self . build_compiler ,
980
1038
self . target ,
981
1039
DocumentationFormat :: Html ,
982
1040
) ) ;
983
- let _guard = builder. msg (
984
- Kind :: Test ,
985
- "rustdoc-js-std" ,
986
- None ,
987
- ( builder. config . host_target , builder. top_stage ) ,
988
- self . target ,
989
- ) ;
1041
+ let _guard =
1042
+ builder. msg ( Kind :: Test , "rustdoc-js-std" , None , self . build_compiler , self . target ) ;
990
1043
command. run ( builder) ;
991
1044
}
1045
+
1046
+ fn metadata ( & self ) -> Option < StepMetadata > {
1047
+ Some ( StepMetadata :: test ( "rustdoc-js-std" , self . target ) . stage ( self . build_compiler . stage ) )
1048
+ }
992
1049
}
993
1050
994
1051
#[ derive( Debug , Clone , Hash , PartialEq , Eq ) ]
@@ -1046,10 +1103,12 @@ fn get_browser_ui_test_version(builder: &Builder<'_>, npm: &Path) -> Option<Stri
1046
1103
. or_else ( || get_browser_ui_test_version_inner ( builder, npm, true ) )
1047
1104
}
1048
1105
1106
+ /// Run GUI tests on a given rustdoc.
1049
1107
#[ derive( Debug , Clone , Hash , PartialEq , Eq ) ]
1050
1108
pub struct RustdocGUI {
1051
- pub target : TargetSelection ,
1052
- pub compiler : Compiler ,
1109
+ /// The compiler whose rustdoc we are testing.
1110
+ test_compiler : Compiler ,
1111
+ target : TargetSelection ,
1053
1112
}
1054
1113
1055
1114
impl Step for RustdocGUI {
@@ -1073,20 +1132,20 @@ impl Step for RustdocGUI {
1073
1132
}
1074
1133
1075
1134
fn make_run ( run : RunConfig < ' _ > ) {
1076
- let compiler = run. builder . compiler ( run. builder . top_stage , run. build_triple ( ) ) ;
1077
- run. builder . ensure ( RustdocGUI { target : run. target , compiler } ) ;
1135
+ let test_compiler = run. builder . compiler ( run. builder . top_stage , run. build_triple ( ) ) ;
1136
+ run. builder . ensure ( RustdocGUI { test_compiler , target : run. target } ) ;
1078
1137
}
1079
1138
1080
1139
fn run ( self , builder : & Builder < ' _ > ) {
1081
- builder. std ( self . compiler , self . target ) ;
1140
+ builder. std ( self . test_compiler , self . target ) ;
1082
1141
1083
1142
let mut cmd = builder. tool_cmd ( Tool :: RustdocGUITest ) ;
1084
1143
1085
1144
let out_dir = builder. test_out ( self . target ) . join ( "rustdoc-gui" ) ;
1086
1145
build_stamp:: clear_if_dirty (
1087
1146
builder,
1088
1147
& out_dir,
1089
- & builder. rustdoc_for_compiler ( self . compiler ) ,
1148
+ & builder. rustdoc_for_compiler ( self . test_compiler ) ,
1090
1149
) ;
1091
1150
1092
1151
if let Some ( src) = builder. config . src . to_str ( ) {
@@ -1103,10 +1162,10 @@ impl Step for RustdocGUI {
1103
1162
1104
1163
cmd. arg ( "--jobs" ) . arg ( builder. jobs ( ) . to_string ( ) ) ;
1105
1164
1106
- cmd. env ( "RUSTDOC" , builder. rustdoc_for_compiler ( self . compiler ) )
1107
- . env ( "RUSTC" , builder. rustc ( self . compiler ) ) ;
1165
+ cmd. env ( "RUSTDOC" , builder. rustdoc_for_compiler ( self . test_compiler ) )
1166
+ . env ( "RUSTC" , builder. rustc ( self . test_compiler ) ) ;
1108
1167
1109
- add_rustdoc_cargo_linker_args ( & mut cmd, builder, self . compiler . host , LldThreads :: No ) ;
1168
+ add_rustdoc_cargo_linker_args ( & mut cmd, builder, self . test_compiler . host , LldThreads :: No ) ;
1110
1169
1111
1170
for path in & builder. paths {
1112
1171
if let Some ( p) = helpers:: is_valid_test_suite_arg ( path, "tests/rustdoc-gui" , builder) {
@@ -1133,9 +1192,13 @@ impl Step for RustdocGUI {
1133
1192
}
1134
1193
1135
1194
let _time = helpers:: timeit ( builder) ;
1136
- let _guard = builder. msg ( Kind :: Test , "rustdoc-gui" , None , self . compiler , self . target ) ;
1195
+ let _guard = builder. msg_test ( "rustdoc-gui" , ( self . target , self . test_compiler . stage ) ) ;
1137
1196
try_run_tests ( builder, & mut cmd, true ) ;
1138
1197
}
1198
+
1199
+ fn metadata ( & self ) -> Option < StepMetadata > {
1200
+ Some ( StepMetadata :: test ( "rustdoc-gui" , self . target ) . stage ( self . test_compiler . stage ) )
1201
+ }
1139
1202
}
1140
1203
1141
1204
/// Runs `src/tools/tidy` and `cargo fmt --check` to detect various style
0 commit comments