Build and test Rustfmt
This commit is contained in:
parent
c4508e1226
commit
d0070e85db
4
src/Cargo.lock
generated
4
src/Cargo.lock
generated
@ -1339,7 +1339,7 @@ dependencies = [
|
|||||||
"rls-rustc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rls-rustc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rls-span 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rls-span 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rls-vfs 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rls-vfs 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustfmt-nightly 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustfmt-nightly 0.2.5",
|
||||||
"serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1810,7 +1810,6 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "rustfmt-nightly"
|
name = "rustfmt-nightly"
|
||||||
version = "0.2.5"
|
version = "0.2.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"diff 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"diff 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2549,7 +2548,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
"checksum rls-vfs 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ffd34691a510938bb67fe0444fb363103c73ffb31c121d1e16bc92d8945ea8ff"
|
"checksum rls-vfs 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ffd34691a510938bb67fe0444fb363103c73ffb31c121d1e16bc92d8945ea8ff"
|
||||||
"checksum rustc-demangle 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"
|
"checksum rustc-demangle 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"
|
||||||
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
||||||
"checksum rustfmt-nightly 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7d6dbb39239e54df780a850721fba87b3fdb2e645b39041742ec111369cec6af"
|
|
||||||
"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
|
"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
|
||||||
"checksum scoped-tls 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d"
|
"checksum scoped-tls 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d"
|
||||||
"checksum scopeguard 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57"
|
"checksum scopeguard 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57"
|
||||||
|
@ -249,11 +249,11 @@ impl<'a> Builder<'a> {
|
|||||||
tool::UnstableBookGen, tool::Tidy, tool::Linkchecker, tool::CargoTest,
|
tool::UnstableBookGen, tool::Tidy, tool::Linkchecker, tool::CargoTest,
|
||||||
tool::Compiletest, tool::RemoteTestServer, tool::RemoteTestClient,
|
tool::Compiletest, tool::RemoteTestServer, tool::RemoteTestClient,
|
||||||
tool::RustInstaller, tool::Cargo, tool::Rls, tool::Rustdoc, tool::Clippy,
|
tool::RustInstaller, tool::Cargo, tool::Rls, tool::Rustdoc, tool::Clippy,
|
||||||
native::Llvm),
|
native::Llvm, tool::Rustfmt),
|
||||||
Kind::Test => describe!(check::Tidy, check::Bootstrap, check::DefaultCompiletest,
|
Kind::Test => describe!(check::Tidy, check::Bootstrap, check::DefaultCompiletest,
|
||||||
check::HostCompiletest, check::Crate, check::CrateLibrustc, check::Rustdoc,
|
check::HostCompiletest, check::Crate, check::CrateLibrustc, check::Rustdoc,
|
||||||
check::Linkcheck, check::Cargotest, check::Cargo, check::Rls, check::Docs,
|
check::Linkcheck, check::Cargotest, check::Cargo, check::Rls, check::Docs,
|
||||||
check::ErrorIndex, check::Distcheck),
|
check::ErrorIndex, check::Distcheck, check::Rustfmt),
|
||||||
Kind::Bench => describe!(check::Crate, check::CrateLibrustc),
|
Kind::Bench => describe!(check::Crate, check::CrateLibrustc),
|
||||||
Kind::Doc => describe!(doc::UnstableBook, doc::UnstableBookGen, doc::TheBook,
|
Kind::Doc => describe!(doc::UnstableBook, doc::UnstableBookGen, doc::TheBook,
|
||||||
doc::Standalone, doc::Std, doc::Test, doc::Rustc, doc::ErrorIndex, doc::Nomicon,
|
doc::Standalone, doc::Std, doc::Test, doc::Rustc, doc::ErrorIndex, doc::Nomicon,
|
||||||
|
@ -253,6 +253,47 @@ impl Step for Rls {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub struct Rustfmt {
|
||||||
|
stage: u32,
|
||||||
|
host: Interned<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Step for Rustfmt {
|
||||||
|
type Output = ();
|
||||||
|
const ONLY_HOSTS: bool = true;
|
||||||
|
|
||||||
|
fn should_run(run: ShouldRun) -> ShouldRun {
|
||||||
|
run.path("src/tools/rustfmt")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make_run(run: RunConfig) {
|
||||||
|
run.builder.ensure(Rustfmt {
|
||||||
|
stage: run.builder.top_stage,
|
||||||
|
host: run.target,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Runs `cargo test` for rustfmt.
|
||||||
|
fn run(self, builder: &Builder) {
|
||||||
|
let build = builder.build;
|
||||||
|
let stage = self.stage;
|
||||||
|
let host = self.host;
|
||||||
|
let compiler = builder.compiler(stage, host);
|
||||||
|
|
||||||
|
builder.ensure(tool::Rustfmt { compiler, target: self.host });
|
||||||
|
let mut cargo = builder.cargo(compiler, Mode::Tool, host, "test");
|
||||||
|
cargo.arg("--manifest-path").arg(build.src.join("src/tools/rustfmt/Cargo.toml"));
|
||||||
|
|
||||||
|
// Don't build tests dynamically, just a pain to work with
|
||||||
|
cargo.env("RUSTC_NO_PREFER_DYNAMIC", "1");
|
||||||
|
|
||||||
|
builder.add_rustc_lib_path(compiler, &mut cargo);
|
||||||
|
|
||||||
|
try_run(build, &mut cargo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn path_for_cargo(builder: &Builder, compiler: Compiler) -> OsString {
|
fn path_for_cargo(builder: &Builder, compiler: Compiler) -> OsString {
|
||||||
// Configure PATH to find the right rustc. NB. we have to use PATH
|
// Configure PATH to find the right rustc. NB. we have to use PATH
|
||||||
// and not RUSTC because the Cargo test suite has tests that will
|
// and not RUSTC because the Cargo test suite has tests that will
|
||||||
|
@ -431,6 +431,40 @@ impl Step for Rls {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
||||||
|
pub struct Rustfmt {
|
||||||
|
pub compiler: Compiler,
|
||||||
|
pub target: Interned<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Step for Rustfmt {
|
||||||
|
type Output = PathBuf;
|
||||||
|
const DEFAULT: bool = true;
|
||||||
|
const ONLY_HOSTS: bool = true;
|
||||||
|
|
||||||
|
fn should_run(run: ShouldRun) -> ShouldRun {
|
||||||
|
let builder = run.builder;
|
||||||
|
run.path("src/tools/rustfmt").default_condition(builder.build.config.extended)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn make_run(run: RunConfig) {
|
||||||
|
run.builder.ensure(Rustfmt {
|
||||||
|
compiler: run.builder.compiler(run.builder.top_stage, run.builder.build.build),
|
||||||
|
target: run.target,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run(self, builder: &Builder) -> PathBuf {
|
||||||
|
builder.ensure(ToolBuild {
|
||||||
|
compiler: self.compiler,
|
||||||
|
target: self.target,
|
||||||
|
tool: "rustfmt",
|
||||||
|
mode: Mode::Librustc,
|
||||||
|
path: "src/tools/rustfmt",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<'a> Builder<'a> {
|
impl<'a> Builder<'a> {
|
||||||
/// Get a `Command` which is ready to run `tool` in `stage` built for
|
/// Get a `Command` which is ready to run `tool` in `stage` built for
|
||||||
/// `host`.
|
/// `host`.
|
||||||
|
@ -64,6 +64,7 @@ fn filter_dirs(path: &Path) -> bool {
|
|||||||
"src/tools/rls",
|
"src/tools/rls",
|
||||||
"src/tools/clippy",
|
"src/tools/clippy",
|
||||||
"src/tools/rust-installer",
|
"src/tools/rust-installer",
|
||||||
|
"src/tools/rustfmt",
|
||||||
];
|
];
|
||||||
skip.iter().any(|p| path.ends_with(p))
|
skip.iter().any(|p| path.ends_with(p))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user