+#[derive(Serialize)]
+pub struct RemoteTestServer<'a> {
+ pub compiler: Compiler<'a>,
+ pub target: &'a str,
+}
+
+impl<'a> Step<'a> for RemoteTestServer<'a> {
+ type Output = PathBuf;
+
+ fn should_run(_builder: &Builder, path: &Path) -> bool {
+ path.ends_with("src/tools/remote-test-server")
+ }
+
+ fn make_run(builder: &Builder, _path: Option<&Path>, host: &str, target: &str) {
+ builder.ensure(RemoteTestServer {
+ compiler: builder.compiler(builder.top_stage, host),
+ target,
+ });
+ }
+
+ fn run(self, builder: &Builder) -> PathBuf {
+ builder.ensure(ToolBuild {
+ stage: self.stage,
+ target: self.target,
+ tool: "remote-test-server",
+ mode: Mode::Libstd,
+ })
+ }
+}
+