opt-dist: dont overrwite config.toml when verifying
This is another step toward making opt-dist work in sandboxed environments opt-dist verifies the final built rustc against a subset of rustc test suite. However it overwrote the pre-existing `config.toml` [^1], and that results in ./vendor/ directory removed [^2]. Instead of overwriting, this patch use `--set <config-value>` to override paths to rustc / cargo / llvm-config. [^1]:606afbb617/src/tools/opt-dist/src/tests.rs (L62-L77)
[^2]:8679004993/src/bootstrap/bootstrap.py (L1057)
This commit is contained in:
parent
0a59f11362
commit
c81a40bbc0
@ -59,26 +59,17 @@ pub fn run_tests(env: &Environment) -> anyhow::Result<()> {
|
||||
.join(format!("llvm-config{}", executable_extension()));
|
||||
assert!(llvm_config.is_file());
|
||||
|
||||
let config_content = format!(
|
||||
r#"profile = "user"
|
||||
change-id = 115898
|
||||
let rustc = format!("build.rustc={}", rustc_path.to_string().replace('\\', "/"));
|
||||
let cargo = format!("build.cargo={}", cargo_path.to_string().replace('\\', "/"));
|
||||
let llvm_config =
|
||||
format!("target.{host_triple}.llvm-config={}", llvm_config.to_string().replace('\\', "/"));
|
||||
|
||||
[build]
|
||||
rustc = "{rustc}"
|
||||
cargo = "{cargo}"
|
||||
|
||||
[target.{host_triple}]
|
||||
llvm-config = "{llvm_config}"
|
||||
"#,
|
||||
rustc = rustc_path.to_string().replace('\\', "/"),
|
||||
cargo = cargo_path.to_string().replace('\\', "/"),
|
||||
llvm_config = llvm_config.to_string().replace('\\', "/")
|
||||
);
|
||||
log::info!("Using following `config.toml` for running tests:\n{config_content}");
|
||||
log::info!("Set the following configurations for running tests:");
|
||||
log::info!("\t{rustc}");
|
||||
log::info!("\t{cargo}");
|
||||
log::info!("\t{llvm_config}");
|
||||
|
||||
// Simulate a stage 0 compiler with the extracted optimized dist artifacts.
|
||||
std::fs::write("config.toml", config_content)?;
|
||||
|
||||
let x_py = env.checkout_path().join("x.py");
|
||||
let mut args = vec![
|
||||
env.python_binary(),
|
||||
@ -97,6 +88,12 @@ pub fn run_tests(env: &Environment) -> anyhow::Result<()> {
|
||||
"tests/run-pass-valgrind",
|
||||
"tests/ui",
|
||||
"tests/crashes",
|
||||
"--set",
|
||||
&rustc,
|
||||
"--set",
|
||||
&cargo,
|
||||
"--set",
|
||||
&llvm_config,
|
||||
];
|
||||
for test_path in env.skipped_tests() {
|
||||
args.extend(["--skip", test_path]);
|
||||
|
Loading…
Reference in New Issue
Block a user