94a6eb0695
This introduces a work-around for a bug in rustup.rs when excuting cargo from a custom toolchain. Instead of trusting rustup to invoke cargo from one of the release channels we just invoke nightly cargo directly.
66 lines
2.0 KiB
Rust
66 lines
2.0 KiB
Rust
#[test]
|
|
fn dogfood() {
|
|
if option_env!("RUSTC_TEST_SUITE").is_some() {
|
|
return;
|
|
}
|
|
let root_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
|
let clippy_cmd = std::path::Path::new(&root_dir)
|
|
.join("target")
|
|
.join(env!("PROFILE"))
|
|
.join("cargo-clippy");
|
|
|
|
let output = std::process::Command::new(clippy_cmd)
|
|
.current_dir(root_dir)
|
|
.env("CLIPPY_DOGFOOD", "1")
|
|
.arg("clippy")
|
|
.arg("--all-targets")
|
|
.arg("--all-features")
|
|
.arg("--")
|
|
.args(&["-D", "clippy::all"])
|
|
.args(&["-D", "clippy::internal"])
|
|
.args(&["-D", "clippy::pedantic"])
|
|
.output()
|
|
.unwrap();
|
|
println!("status: {}", output.status);
|
|
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
|
|
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
|
|
|
|
assert!(output.status.success());
|
|
}
|
|
|
|
#[test]
|
|
fn dogfood_tests() {
|
|
if option_env!("RUSTC_TEST_SUITE").is_some() {
|
|
return;
|
|
}
|
|
let root_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
|
let clippy_cmd = std::path::Path::new(&root_dir)
|
|
.join("target")
|
|
.join(env!("PROFILE"))
|
|
.join("cargo-clippy");
|
|
|
|
for d in &[
|
|
"clippy_workspace_tests",
|
|
"clippy_workspace_tests/src",
|
|
"clippy_workspace_tests/subcrate",
|
|
"clippy_workspace_tests/subcrate/src",
|
|
"clippy_dev",
|
|
"rustc_tools_util",
|
|
] {
|
|
let output = std::process::Command::new(&clippy_cmd)
|
|
.current_dir(root_dir.join(d))
|
|
.env("CLIPPY_DOGFOOD", "1")
|
|
.arg("clippy")
|
|
.arg("--")
|
|
.args(&["-D", "clippy::all"])
|
|
.args(&["-D", "clippy::pedantic"])
|
|
.output()
|
|
.unwrap();
|
|
println!("status: {}", output.status);
|
|
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
|
|
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
|
|
|
|
assert!(output.status.success());
|
|
}
|
|
}
|