diff options
| author | onur-ozkan <work@onurozkan.dev> | 2025-04-18 09:03:17 +0000 |
|---|---|---|
| committer | onur-ozkan <work@onurozkan.dev> | 2025-04-18 21:04:14 +0300 |
| commit | 4ba9fffba53d8e9b38d37af64b4d965bf388cee4 (patch) | |
| tree | 83fe60e7a4555ad42c9b8089d89f6f4e8a9be2cc | |
| parent | edfef428f7f80d17f7e2f1bf0620a01b9ac6621e (diff) | |
| download | rust-4ba9fffba53d8e9b38d37af64b4d965bf388cee4.tar.gz rust-4ba9fffba53d8e9b38d37af64b4d965bf388cee4.zip | |
add regression test for dist compilation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
| -rw-r--r-- | src/bootstrap/src/core/builder/tests.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/bootstrap/src/core/builder/tests.rs b/src/bootstrap/src/core/builder/tests.rs index fd3b28e4e6a..9a724ec3489 100644 --- a/src/bootstrap/src/core/builder/tests.rs +++ b/src/bootstrap/src/core/builder/tests.rs @@ -408,6 +408,7 @@ mod dist { use pretty_assertions::assert_eq; use super::{Config, TEST_TRIPLE_1, TEST_TRIPLE_2, TEST_TRIPLE_3, first, run_build}; + use crate::Flags; use crate::core::builder::*; fn configure(host: &[&str], target: &[&str]) -> Config { @@ -646,6 +647,37 @@ mod dist { ); } + /// This also serves as an important regression test for <https://github.com/rust-lang/rust/issues/138123> + /// and <https://github.com/rust-lang/rust/issues/138004>. + #[test] + fn dist_all_cross() { + let cmd_args = + &["dist", "--stage", "2", "--dry-run", "--config=/does/not/exist"].map(str::to_owned); + let config_str = r#" + [rust] + channel = "nightly" + + [build] + extended = true + + build = "i686-unknown-haiku" + host = ["i686-unknown-netbsd"] + target = ["i686-unknown-netbsd"] + "#; + let config = Config::parse_inner(Flags::parse(cmd_args), |&_| toml::from_str(config_str)); + let mut cache = run_build(&[], config); + + // Stage 2 `compile::Rustc` should **NEVER** be cached here. + assert_eq!( + first(cache.all::<compile::Rustc>()), + &[ + rustc!(TEST_TRIPLE_1 => TEST_TRIPLE_1, stage = 0), + rustc!(TEST_TRIPLE_1 => TEST_TRIPLE_1, stage = 1), + rustc!(TEST_TRIPLE_1 => TEST_TRIPLE_3, stage = 1), + ] + ); + } + #[test] fn build_all() { let build = Build::new(configure( |
