diff options
| author | Joshua Nelson <jnelson@cloudflare.com> | 2022-03-23 18:23:26 -0500 |
|---|---|---|
| committer | Joshua Nelson <jnelson@cloudflare.com> | 2022-04-09 11:40:35 -0500 |
| commit | a0de44f469c22d10c3aada165ae6afd38d40ad2c (patch) | |
| tree | 8b2f59ec27c1a9da5d885fec51d28208da0b230b | |
| parent | 5f4e0677190b82e61dc507e3e72caf89da8e5e28 (diff) | |
| download | rust-a0de44f469c22d10c3aada165ae6afd38d40ad2c.tar.gz rust-a0de44f469c22d10c3aada165ae6afd38d40ad2c.zip | |
Make it possible to run `cargo test` for bootstrap
Note that this only runs bootstrap's self-tests, not compiler or library tests.
| -rw-r--r-- | src/bootstrap/builder/tests.rs | 7 | ||||
| -rw-r--r-- | src/bootstrap/lib.rs | 2 | ||||
| -rw-r--r-- | src/bootstrap/test.rs | 4 |
3 files changed, 3 insertions, 10 deletions
diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs index b76bb569852..a59f72ed968 100644 --- a/src/bootstrap/builder/tests.rs +++ b/src/bootstrap/builder/tests.rs @@ -8,12 +8,9 @@ fn configure(cmd: &str, host: &[&str], target: &[&str]) -> Config { config.save_toolstates = None; config.dry_run = true; config.ninja_in_file = false; - config.out = PathBuf::from(env::var_os("BOOTSTRAP_OUTPUT_DIRECTORY").unwrap()); - config.initial_rustc = PathBuf::from(env::var_os("RUSTC").unwrap()); - config.initial_cargo = PathBuf::from(env::var_os("BOOTSTRAP_INITIAL_CARGO").unwrap()); // try to avoid spurious failures in dist where we create/delete each others file - let dir = config - .out + // HACK: rather than pull in `tempdir`, use the one that cargo has conveniently created for us + let dir = Path::new(env!("OUT_DIR")) .join("tmp-rustbuild-tests") .join(&thread::current().name().unwrap_or("unknown").replace(":", "-")); t!(fs::create_dir_all(&dir)); diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 2ee67d623ee..d3df5f77109 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -442,7 +442,7 @@ impl Build { .map(PathBuf::from) .unwrap_or_else(|_| src.join("target")); let bootstrap_out = workspace_target_dir.join("debug"); - if !bootstrap_out.join("rustc").exists() { + if !bootstrap_out.join("rustc").exists() && !cfg!(test) { // this restriction can be lifted whenever https://github.com/rust-lang/rfcs/pull/3028 is implemented panic!("run `cargo build --bins` before `cargo run`") } diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 58b73ebed50..10f4c4b03c0 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -2346,10 +2346,6 @@ impl Step for Bootstrap { .current_dir(builder.src.join("src/bootstrap")) .env("RUSTFLAGS", "-Cdebuginfo=2") .env("CARGO_TARGET_DIR", builder.out.join("bootstrap")) - // HACK: bootstrap's tests want to know the output directory, but there's no way to set - // it except through config.toml. Set it through an env variable instead. - .env("BOOTSTRAP_OUTPUT_DIRECTORY", &builder.config.out) - .env("BOOTSTRAP_INITIAL_CARGO", &builder.config.initial_cargo) .env("RUSTC_BOOTSTRAP", "1") .env("RUSTC", &builder.initial_rustc); if let Some(flags) = option_env!("RUSTFLAGS") { |
