Support clang-based run-make tests in rustbuild.

This commit is contained in:
Michael Woerister 2019-01-11 13:37:08 +01:00
parent 50b2510592
commit ea4fb95dc9

View File

@ -1106,13 +1106,13 @@ impl Step for Compiletest {
}).to_string()
})
};
let lldb_exe = if builder.config.lldb_enabled && !target.contains("emscripten") {
let (lldb_exe, clang_exe) =
if builder.config.lldb_enabled && !target.contains("emscripten") {
// Test against the lldb that was just built.
builder.llvm_out(target)
.join("bin")
.join("lldb")
(builder.llvm_out(target).join("bin").join("lldb"),
builder.llvm_out(target).join("bin").join("clang"))
} else {
PathBuf::from("lldb")
(PathBuf::from("lldb"), PathBuf::from("clang"))
};
let lldb_version = Command::new(&lldb_exe)
.arg("--version")
@ -1127,6 +1127,31 @@ impl Step for Compiletest {
}
}
let clang_version = Command::new(&clang_exe)
.arg("--version")
.output()
.map(|output| { String::from_utf8_lossy(&output.stdout).to_string() })
.ok();
if let Some(ref vers) = clang_version {
cmd.arg("--clang-version").arg(vers);
}
if let Some(var) = env::var_os("RUSTBUILD_FORCE_CLANG_BASED_TESTS") {
match &var.to_string_lossy()[..] {
"1" | "yes" | "on" => {
cmd.arg("--force-clang-based-tests");
}
"0" | "no" | "off" => {
// Nothing to do.
}
other => {
// Let's make sure typos don't get unnoticed
panic!("Unrecognized option '{}' set in \
RUSTBUILD_FORCE_CLANG_BASED_TESTS", other);
}
}
}
// Get paths from cmd args
let paths = match &builder.config.cmd {
Subcommand::Test { ref paths, .. } => &paths[..],