diff options
| author | Michael Woerister <michaelwoerister@posteo> | 2019-01-11 13:37:08 +0100 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo> | 2019-01-17 16:49:32 +0100 |
| commit | ea4fb95dc9e234d35a7a94f6cdc37cb5103c35ed (patch) | |
| tree | 89c224e14b67476141c8bb6a79287b0f81e5da7d /src/bootstrap | |
| parent | 50b25105924a23f1070e916ce3bff4be5a7c9c58 (diff) | |
| download | rust-ea4fb95dc9e234d35a7a94f6cdc37cb5103c35ed.tar.gz rust-ea4fb95dc9e234d35a7a94f6cdc37cb5103c35ed.zip | |
Support clang-based run-make tests in rustbuild.
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/test.rs | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 2edc78ebaa9..ff66c75dc8c 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -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[..], |
