diff options
| author | Mark Simulacrum <mark.simulacrum@gmail.com> | 2017-07-12 10:12:47 -0600 |
|---|---|---|
| committer | Mark Simulacrum <mark.simulacrum@gmail.com> | 2017-07-20 11:23:59 -0600 |
| commit | ceecd6250f31e614c5ae86165e70ce3f09dc9008 (patch) | |
| tree | 9d762385405f8c14a22f24206f8ad16226f7b52a /src/bootstrap/check.rs | |
| parent | a5ab2ceef8393f94fd1aa07b35bc25f74e9f879f (diff) | |
| download | rust-ceecd6250f31e614c5ae86165e70ce3f09dc9008.tar.gz rust-ceecd6250f31e614c5ae86165e70ce3f09dc9008.zip | |
Fix more incorrectly transitioned code
Diffstat (limited to 'src/bootstrap/check.rs')
| -rw-r--r-- | src/bootstrap/check.rs | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs index e4cfe884295..e5e0bfa0ac9 100644 --- a/src/bootstrap/check.rs +++ b/src/bootstrap/check.rs @@ -32,7 +32,7 @@ use util::{self, dylib_path, dylib_path_var}; use compile; use native; use builder::{Kind, Builder, Compiler, Step}; -use tool::Tool; +use tool::{self, Tool}; const ADB_TEST_DIR: &str = "/data/tmp/work"; @@ -151,6 +151,17 @@ impl<'a> Step<'a> for Cargotest<'a> { type Output = (); const ONLY_HOSTS: bool = true; + fn should_run(_builder: &Builder, path: &Path) -> bool { + path.ends_with("src/tools/cargotest") + } + + fn make_run(builder: &Builder, _path: Option<&Path>, host: &str, _target: &str) { + builder.ensure(Cargotest { + stage: builder.top_stage, + host: host, + }); + } + /// Runs the `cargotest` tool as compiled in `stage` by the `host` compiler. /// /// This tool in `src/tools` will check out a few Rust projects and run `cargo @@ -786,6 +797,9 @@ impl<'a> Step<'a> for Docs<'a> { fn run(self, builder: &Builder) { let build = builder.build; let compiler = self.compiler; + + builder.ensure(compile::Test { compiler, target: compiler.host }); + // Do a breadth-first traversal of the `src/doc` directory and just run // tests for all files that end in `*.md` let mut stack = vec![build.src.join("src/doc")]; @@ -1106,6 +1120,7 @@ impl<'a> Step<'a> for Krate<'a> { ("libtest", "src/libtest", String::new(), "test") } Mode::Librustc => { + builder.ensure(compile::Rustc { compiler, target }); ("librustc", "src/rustc", build.rustc_features(), "rustc-main") } _ => panic!("can only test libraries"), @@ -1261,16 +1276,6 @@ fn find_tests(dir: &Path, target: &str) -> Vec<PathBuf> { dst } -// // Some test suites are run inside emulators or on remote devices, and most -// // of our test binaries are linked dynamically which means we need to ship -// // the standard library and such to the emulator ahead of time. This step -// // represents this and is a dependency of all test suites. -// // -// // Most of the time this step is a noop (the `check::emulator_copy_libs` -// // only does work if necessary). For some steps such as shipping data to -// // QEMU we have to build our own tools so we've got conditional dependencies -// // on those programs as well. Note that the remote test client is built for -// // the build target (us) and the server is built for the target. // rules.test("remote-copy-libs", "path/to/nowhere") // .dep(|s| s.name("libtest")) // .dep(move |s| { @@ -1290,6 +1295,15 @@ fn find_tests(dir: &Path, target: &str) -> Vec<PathBuf> { // .run(move |s| check::remote_copy_libs(build, &s.compiler(), s.target)); // +/// Some test suites are run inside emulators or on remote devices, and most +/// of our test binaries are linked dynamically which means we need to ship +/// the standard library and such to the emulator ahead of time. This step +/// represents this and is a dependency of all test suites. +/// +/// Most of the time this is a noop. For some steps such as shipping data to +/// QEMU we have to build our own tools so we've got conditional dependencies +/// on those programs as well. Note that the remote test client is built for +/// the build target (us) and the server is built for the target. #[derive(Serialize)] pub struct RemoteCopyLibs<'a> { compiler: Compiler<'a>, @@ -1312,9 +1326,7 @@ impl<'a> Step<'a> for RemoteCopyLibs<'a> { println!("REMOTE copy libs to emulator ({})", target); t!(fs::create_dir_all(build.out.join("tmp"))); - // FIXME: This builds the tool for the native build triple - // (build.build); that is probably wrong. Should build for target. - let server = builder.tool_exe(Tool::RemoteTestServer); + let server = builder.ensure(tool::RemoteTestServer { compiler, target })); // Spawn the emulator and wait for it to come online let tool = builder.tool_exe(Tool::RemoteTestClient); @@ -1356,6 +1368,9 @@ impl<'a> Step<'a> for Distcheck { fn run(self, builder: &Builder) { let build = builder.build; + builder.ensure(dist::PlainSourceTarball); + builder.ensure(dist::Src); + if build.build != "x86_64-unknown-linux-gnu" { return } @@ -1366,9 +1381,6 @@ impl<'a> Step<'a> for Distcheck { return } - builder.ensure(dist::PlainSourceTarball); - builder.ensure(dist::Src); - println!("Distcheck"); let dir = build.out.join("tmp").join("distcheck"); let _ = fs::remove_dir_all(&dir); |
