Skip to content

Commit

Permalink
Add sysroot gettinh code to dogfood tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
o01eg committed Dec 6, 2018
1 parent 571d4cc commit 5113de9
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tests/dogfood.rs
Expand Up @@ -7,6 +7,31 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use std::path::PathBuf;
use std::process::Command;

fn rustc_sysroot_path() -> PathBuf {
option_env!("SYSROOT")
.map(String::from)
.or_else(|| std::env::var("SYSROOT").ok())
.or_else(|| {
let home = option_env!("RUSTUP_HOME").or(option_env!("MULTIRUST_HOME"));
let toolchain = option_env!("RUSTUP_TOOLCHAIN").or(option_env!("MULTIRUST_TOOLCHAIN"));
home.and_then(|home| toolchain.map(|toolchain| format!("{}/toolchains/{}", home, toolchain)))
})
.or_else(|| {
Command::new("rustc")
.arg("--print")
.arg("sysroot")
.output()
.ok()
.and_then(|out| String::from_utf8(out.stdout).ok())
.map(|s| s.trim().to_owned())
})
.expect("need to specify SYSROOT env var during clippy compilation, or use rustup or multirust")
.into()
}

#[test]
fn dogfood() {
if option_env!("RUSTC_TEST_SUITE").is_some() || cfg!(windows) {
Expand All @@ -21,6 +46,7 @@ fn dogfood() {
let output = std::process::Command::new(clippy_cmd)
.current_dir(root_dir)
.env("CLIPPY_DOGFOOD", "1")
.env("RUSTFLAGS", format!("--sysroot {}", rustc_sysroot_path().display()))
.arg("clippy")
.arg("--all-targets")
.arg("--all-features")
Expand Down Expand Up @@ -59,6 +85,7 @@ fn dogfood_tests() {
let output = std::process::Command::new(&clippy_cmd)
.current_dir(root_dir.join(d))
.env("CLIPPY_DOGFOOD", "1")
.env("RUSTFLAGS", format!("--sysroot {}", rustc_sysroot_path().display()))
.arg("clippy")
.arg("--")
.args(&["-D", "clippy::all"])
Expand Down

0 comments on commit 5113de9

Please sign in to comment.