@@ -1096,6 +1096,50 @@ tool_extended!((self, builder),
1096
1096
Rustfmt , "src/tools/rustfmt" , "rustfmt" , stable=true , add_bins_to_sysroot = [ "rustfmt" , "cargo-fmt" ] ;
1097
1097
) ;
1098
1098
1099
+ #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
1100
+ pub struct TestFloatParse {
1101
+ pub path : PathBuf ,
1102
+ pub host : TargetSelection ,
1103
+ }
1104
+
1105
+ impl Step for TestFloatParse {
1106
+ type Output = ( ) ;
1107
+ const ONLY_HOSTS : bool = true ;
1108
+ const DEFAULT : bool = true ;
1109
+
1110
+ fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
1111
+ run. path ( "src/etc/test-float-parse" )
1112
+ }
1113
+
1114
+ fn make_run ( run : RunConfig < ' _ > ) {
1115
+ for path in run. paths {
1116
+ let path = path. assert_single_path ( ) . path . clone ( ) ;
1117
+ run. builder . ensure ( Self { path, host : run. target } ) ;
1118
+ }
1119
+ }
1120
+
1121
+ fn run ( self , builder : & Builder < ' _ > ) {
1122
+ let bootstrap_host = builder. config . build ;
1123
+ let compiler = builder. compiler ( builder. top_stage , bootstrap_host) ;
1124
+ let path: & ' static str =
1125
+ Box :: leak ( self . path . to_str ( ) . unwrap ( ) . to_string ( ) . into_boxed_str ( ) ) ;
1126
+
1127
+ if !builder. download_rustc ( ) {
1128
+ builder. ensure ( ToolBuild {
1129
+ compiler,
1130
+ target : bootstrap_host,
1131
+ tool : "test-float-parse" ,
1132
+ mode : Mode :: ToolStd ,
1133
+ path,
1134
+ source_type : SourceType :: InTree ,
1135
+ extra_features : Vec :: new ( ) ,
1136
+ allow_features : "" ,
1137
+ cargo_args : Vec :: new ( ) ,
1138
+ } ) ;
1139
+ }
1140
+ }
1141
+ }
1142
+
1099
1143
impl Builder < ' _ > {
1100
1144
/// Gets a `BootstrapCommand` which is ready to run `tool` in `stage` built for
1101
1145
/// `host`.
0 commit comments