From e66ecf6f0e137196e67daf0ba0982766a2c91175 Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 11:05:05 -0600 Subject: [PATCH 1/7] Run dogfood on windows I believe this is possible as of rust-lang/rust-clippy#7631 --- tests/dogfood.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/dogfood.rs b/tests/dogfood.rs index 6f7de9c67a9b..17033f6e908f 100644 --- a/tests/dogfood.rs +++ b/tests/dogfood.rs @@ -3,8 +3,6 @@ //! //! See [Eating your own dog food](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) for context -// Dogfood cannot run on Windows -#![cfg(not(windows))] #![feature(once_cell)] #![cfg_attr(feature = "deny-warnings", deny(warnings))] #![warn(rust_2018_idioms, unused_lifetimes)] From 51dbbf3c4c67446e3ae81e2488f48bfce8dac59f Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 13:20:46 -0600 Subject: [PATCH 2/7] Refactor test utils --- tests/cargo/mod.rs | 4 ---- tests/compile-test.rs | 6 ++++-- tests/dogfood.rs | 27 ++++++++++----------------- tests/test_utils/mod.rs | 13 +++++++++++++ 4 files changed, 27 insertions(+), 23 deletions(-) delete mode 100644 tests/cargo/mod.rs create mode 100644 tests/test_utils/mod.rs diff --git a/tests/cargo/mod.rs b/tests/cargo/mod.rs deleted file mode 100644 index 4dbe71e4b6ad..000000000000 --- a/tests/cargo/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -#[must_use] -pub fn is_rustc_test_suite() -> bool { - option_env!("RUSTC_TEST_SUITE").is_some() -} diff --git a/tests/compile-test.rs b/tests/compile-test.rs index 762b67fc5854..531890c863f5 100644 --- a/tests/compile-test.rs +++ b/tests/compile-test.rs @@ -1,4 +1,5 @@ #![feature(test)] // compiletest_rs requires this attribute +#![feature(once_cell)] #![cfg_attr(feature = "deny-warnings", deny(warnings))] #![warn(rust_2018_idioms, unused_lifetimes)] @@ -11,8 +12,9 @@ use std::ffi::{OsStr, OsString}; use std::fs; use std::io; use std::path::{Path, PathBuf}; +use test_utils::IS_RUSTC_TEST_SUITE; -mod cargo; +mod test_utils; // whether to run internal tests or not const RUN_INTERNAL_TESTS: bool = cfg!(feature = "internal"); @@ -304,7 +306,7 @@ fn run_ui_cargo(config: &mut compiletest::Config) { Ok(result) } - if cargo::is_rustc_test_suite() { + if IS_RUSTC_TEST_SUITE { return; } diff --git a/tests/dogfood.rs b/tests/dogfood.rs index 17033f6e908f..42e1628f6422 100644 --- a/tests/dogfood.rs +++ b/tests/dogfood.rs @@ -7,28 +7,21 @@ #![cfg_attr(feature = "deny-warnings", deny(warnings))] #![warn(rust_2018_idioms, unused_lifetimes)] -use std::lazy::SyncLazy; use std::path::PathBuf; use std::process::Command; +use test_utils::{CARGO_CLIPPY_PATH, IS_RUSTC_TEST_SUITE}; -mod cargo; - -static CLIPPY_PATH: SyncLazy = SyncLazy::new(|| { - let mut path = std::env::current_exe().unwrap(); - assert!(path.pop()); // deps - path.set_file_name("cargo-clippy"); - path -}); +mod test_utils; #[test] fn dogfood_clippy() { // run clippy on itself and fail the test if lint warnings are reported - if cargo::is_rustc_test_suite() { + if IS_RUSTC_TEST_SUITE { return; } let root_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let mut command = Command::new(&*CLIPPY_PATH); + let mut command = Command::new(&*CARGO_CLIPPY_PATH); command .current_dir(root_dir) .env("CARGO_INCREMENTAL", "0") @@ -55,7 +48,7 @@ fn dogfood_clippy() { } fn test_no_deps_ignores_path_deps_in_workspaces() { - if cargo::is_rustc_test_suite() { + if IS_RUSTC_TEST_SUITE { return; } let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")); @@ -74,7 +67,7 @@ fn test_no_deps_ignores_path_deps_in_workspaces() { // `path_dep` is a path dependency of `subcrate` that would trigger a denied lint. // Make sure that with the `--no-deps` argument Clippy does not run on `path_dep`. - let output = Command::new(&*CLIPPY_PATH) + let output = Command::new(&*CARGO_CLIPPY_PATH) .current_dir(&cwd) .env("CARGO_INCREMENTAL", "0") .arg("clippy") @@ -93,7 +86,7 @@ fn test_no_deps_ignores_path_deps_in_workspaces() { let lint_path_dep = || { // Test that without the `--no-deps` argument, `path_dep` is linted. - let output = Command::new(&*CLIPPY_PATH) + let output = Command::new(&*CARGO_CLIPPY_PATH) .current_dir(&cwd) .env("CARGO_INCREMENTAL", "0") .arg("clippy") @@ -119,7 +112,7 @@ fn test_no_deps_ignores_path_deps_in_workspaces() { lint_path_dep(); let successful_build = || { - let output = Command::new(&*CLIPPY_PATH) + let output = Command::new(&*CARGO_CLIPPY_PATH) .current_dir(&cwd) .env("CARGO_INCREMENTAL", "0") .arg("clippy") @@ -153,7 +146,7 @@ fn test_no_deps_ignores_path_deps_in_workspaces() { #[test] fn dogfood_subprojects() { // run clippy on remaining subprojects and fail the test if lint warnings are reported - if cargo::is_rustc_test_suite() { + if IS_RUSTC_TEST_SUITE { return; } @@ -218,7 +211,7 @@ fn run_metadata_collection_lint() { fn run_clippy_for_project(project: &str) { let root_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let mut command = Command::new(&*CLIPPY_PATH); + let mut command = Command::new(&*test_utils::CARGO_CLIPPY_PATH); command .current_dir(root_dir.join(project)) diff --git a/tests/test_utils/mod.rs b/tests/test_utils/mod.rs new file mode 100644 index 000000000000..8a4de3f6def9 --- /dev/null +++ b/tests/test_utils/mod.rs @@ -0,0 +1,13 @@ +#![allow(dead_code)] // see https://github.com/rust-lang/rust/issues/46379 + +use std::lazy::SyncLazy; +use std::path::PathBuf; + +pub static CARGO_CLIPPY_PATH: SyncLazy = SyncLazy::new(|| { + let mut path = std::env::current_exe().unwrap(); + assert!(path.pop()); // deps + path.set_file_name("cargo-clippy"); + path +}); + +pub const IS_RUSTC_TEST_SUITE: bool = option_env!("RUSTC_TEST_SUITE").is_some(); From 920e9f0c4b1aa0921d4dd5e22ea727a31dd8e2cc Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 15:27:00 -0600 Subject: [PATCH 3/7] Move workspace test --- .github/workflows/clippy.yml | 8 -- .github/workflows/clippy_bors.yml | 8 -- .gitignore | 1 - tests/dogfood.rs | 111 +----------------- tests/workspace.rs | 107 +++++++++++++++++ .../workspace_test}/Cargo.toml | 2 +- .../workspace_test}/build.rs | 0 .../workspace_test}/path_dep/Cargo.toml | 0 .../workspace_test}/path_dep/src/lib.rs | 0 .../workspace_test}/src/main.rs | 0 .../workspace_test}/subcrate/Cargo.toml | 0 .../workspace_test}/subcrate/src/lib.rs | 0 12 files changed, 109 insertions(+), 128 deletions(-) create mode 100644 tests/workspace.rs rename {clippy_workspace_tests => tests/workspace_test}/Cargo.toml (71%) rename {clippy_workspace_tests => tests/workspace_test}/build.rs (100%) rename {clippy_workspace_tests => tests/workspace_test}/path_dep/Cargo.toml (100%) rename {clippy_workspace_tests => tests/workspace_test}/path_dep/src/lib.rs (100%) rename {clippy_workspace_tests => tests/workspace_test}/src/main.rs (100%) rename {clippy_workspace_tests => tests/workspace_test}/subcrate/Cargo.toml (100%) rename {clippy_workspace_tests => tests/workspace_test}/subcrate/src/lib.rs (100%) diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml index 8b5e814b1772..116ae031bb71 100644 --- a/.github/workflows/clippy.yml +++ b/.github/workflows/clippy.yml @@ -70,14 +70,6 @@ jobs: run: cargo test --features deny-warnings working-directory: clippy_dev - - name: Test cargo-clippy - run: ../target/debug/cargo-clippy - working-directory: clippy_workspace_tests - - - name: Test cargo-clippy --fix - run: ../target/debug/cargo-clippy clippy --fix - working-directory: clippy_workspace_tests - - name: Test clippy-driver run: bash .github/driver.sh env: diff --git a/.github/workflows/clippy_bors.yml b/.github/workflows/clippy_bors.yml index eb045ec30dc3..fe02d9cfc849 100644 --- a/.github/workflows/clippy_bors.yml +++ b/.github/workflows/clippy_bors.yml @@ -133,14 +133,6 @@ jobs: run: cargo test --features deny-warnings working-directory: clippy_dev - - name: Test cargo-clippy - run: ../target/debug/cargo-clippy - working-directory: clippy_workspace_tests - - - name: Test cargo-clippy --fix - run: ../target/debug/cargo-clippy clippy --fix - working-directory: clippy_workspace_tests - - name: Test clippy-driver run: bash .github/driver.sh env: diff --git a/.gitignore b/.gitignore index e82a0ec4765b..3e50c45a9b63 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,6 @@ out /target /clippy_lints/target /clippy_utils/target -/clippy_workspace_tests/target /clippy_dev/target /lintcheck/target /rustc_tools_util/target diff --git a/tests/dogfood.rs b/tests/dogfood.rs index 42e1628f6422..6665bb21784b 100644 --- a/tests/dogfood.rs +++ b/tests/dogfood.rs @@ -47,102 +47,6 @@ fn dogfood_clippy() { assert!(output.status.success()); } -fn test_no_deps_ignores_path_deps_in_workspaces() { - if IS_RUSTC_TEST_SUITE { - return; - } - let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let target_dir = root.join("target").join("dogfood"); - let cwd = root.join("clippy_workspace_tests"); - - // Make sure we start with a clean state - Command::new("cargo") - .current_dir(&cwd) - .env("CARGO_TARGET_DIR", &target_dir) - .arg("clean") - .args(&["-p", "subcrate"]) - .args(&["-p", "path_dep"]) - .output() - .unwrap(); - - // `path_dep` is a path dependency of `subcrate` that would trigger a denied lint. - // Make sure that with the `--no-deps` argument Clippy does not run on `path_dep`. - let output = Command::new(&*CARGO_CLIPPY_PATH) - .current_dir(&cwd) - .env("CARGO_INCREMENTAL", "0") - .arg("clippy") - .args(&["-p", "subcrate"]) - .arg("--no-deps") - .arg("--") - .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir - .args(&["--cfg", r#"feature="primary_package_test""#]) - .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()); - - let lint_path_dep = || { - // Test that without the `--no-deps` argument, `path_dep` is linted. - let output = Command::new(&*CARGO_CLIPPY_PATH) - .current_dir(&cwd) - .env("CARGO_INCREMENTAL", "0") - .arg("clippy") - .args(&["-p", "subcrate"]) - .arg("--") - .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir - .args(&["--cfg", r#"feature="primary_package_test""#]) - .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()); - assert!( - String::from_utf8(output.stderr) - .unwrap() - .contains("error: empty `loop {}` wastes CPU cycles") - ); - }; - - // Make sure Cargo is aware of the removal of `--no-deps`. - lint_path_dep(); - - let successful_build = || { - let output = Command::new(&*CARGO_CLIPPY_PATH) - .current_dir(&cwd) - .env("CARGO_INCREMENTAL", "0") - .arg("clippy") - .args(&["-p", "subcrate"]) - .arg("--") - .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir - .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()); - - output - }; - - // Trigger a sucessful build, so Cargo would like to cache the build result. - successful_build(); - - // Make sure there's no spurious rebuild when nothing changes. - let stderr = String::from_utf8(successful_build().stderr).unwrap(); - assert!(!stderr.contains("Compiling")); - assert!(!stderr.contains("Checking")); - assert!(stderr.contains("Finished")); - - // Make sure Cargo is aware of the new `--cfg` flag. - lint_path_dep(); -} - #[test] fn dogfood_subprojects() { // run clippy on remaining subprojects and fail the test if lint warnings are reported @@ -151,22 +55,9 @@ fn dogfood_subprojects() { } // NOTE: `path_dep` crate is omitted on purpose here - for project in &[ - "clippy_workspace_tests", - "clippy_workspace_tests/src", - "clippy_workspace_tests/subcrate", - "clippy_workspace_tests/subcrate/src", - "clippy_dev", - "clippy_lints", - "clippy_utils", - "rustc_tools_util", - ] { + for project in &["clippy_dev", "clippy_lints", "clippy_utils", "rustc_tools_util"] { run_clippy_for_project(project); } - - // NOTE: Since tests run in parallel we can't run cargo commands on the same workspace at the - // same time, so we test this immediately after the dogfood for workspaces. - test_no_deps_ignores_path_deps_in_workspaces(); } #[test] diff --git a/tests/workspace.rs b/tests/workspace.rs new file mode 100644 index 000000000000..677b4a4d5699 --- /dev/null +++ b/tests/workspace.rs @@ -0,0 +1,107 @@ +#![feature(once_cell)] + +use std::path::PathBuf; +use std::process::Command; +use test_utils::{CARGO_CLIPPY_PATH, IS_RUSTC_TEST_SUITE}; + +mod test_utils; + +#[test] +fn test_no_deps_ignores_path_deps_in_workspaces() { + if IS_RUSTC_TEST_SUITE { + return; + } + let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let target_dir = root.join("target").join("workspace_test"); + let cwd = root.join("tests/workspace_test"); + + // Make sure we start with a clean state + Command::new("cargo") + .current_dir(&cwd) + .env("CARGO_TARGET_DIR", &target_dir) + .arg("clean") + .args(&["-p", "subcrate"]) + .args(&["-p", "path_dep"]) + .output() + .unwrap(); + + // `path_dep` is a path dependency of `subcrate` that would trigger a denied lint. + // Make sure that with the `--no-deps` argument Clippy does not run on `path_dep`. + let output = Command::new(&*CARGO_CLIPPY_PATH) + .current_dir(&cwd) + .env("CARGO_INCREMENTAL", "0") + .env("CARGO_TARGET_DIR", &target_dir) + .arg("clippy") + .args(&["-p", "subcrate"]) + .arg("--no-deps") + .arg("--") + .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir + .args(&["--cfg", r#"feature="primary_package_test""#]) + .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()); + + let lint_path_dep = || { + // Test that without the `--no-deps` argument, `path_dep` is linted. + let output = Command::new(&*CARGO_CLIPPY_PATH) + .current_dir(&cwd) + .env("CARGO_INCREMENTAL", "0") + .env("CARGO_TARGET_DIR", &target_dir) + .arg("clippy") + .args(&["-p", "subcrate"]) + .arg("--") + .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir + .args(&["--cfg", r#"feature="primary_package_test""#]) + .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()); + assert!( + String::from_utf8(output.stderr) + .unwrap() + .contains("error: empty `loop {}` wastes CPU cycles") + ); + }; + + // Make sure Cargo is aware of the removal of `--no-deps`. + lint_path_dep(); + + let successful_build = || { + let output = Command::new(&*CARGO_CLIPPY_PATH) + .current_dir(&cwd) + .env("CARGO_INCREMENTAL", "0") + .env("CARGO_TARGET_DIR", &target_dir) + .arg("clippy") + .args(&["-p", "subcrate"]) + .arg("--") + .arg("-Cdebuginfo=0") // disable debuginfo to generate less data in the target dir + .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()); + + output + }; + + // Trigger a sucessful build, so Cargo would like to cache the build result. + successful_build(); + + // Make sure there's no spurious rebuild when nothing changes. + let stderr = String::from_utf8(successful_build().stderr).unwrap(); + assert!(!stderr.contains("Compiling")); + assert!(!stderr.contains("Checking")); + assert!(stderr.contains("Finished")); + + // Make sure Cargo is aware of the new `--cfg` flag. + lint_path_dep(); +} diff --git a/clippy_workspace_tests/Cargo.toml b/tests/workspace_test/Cargo.toml similarity index 71% rename from clippy_workspace_tests/Cargo.toml rename to tests/workspace_test/Cargo.toml index 7a235b215d38..bf5b4ca5288a 100644 --- a/clippy_workspace_tests/Cargo.toml +++ b/tests/workspace_test/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "clippy_workspace_tests" +name = "workspace_test" version = "0.1.0" edition = "2018" diff --git a/clippy_workspace_tests/build.rs b/tests/workspace_test/build.rs similarity index 100% rename from clippy_workspace_tests/build.rs rename to tests/workspace_test/build.rs diff --git a/clippy_workspace_tests/path_dep/Cargo.toml b/tests/workspace_test/path_dep/Cargo.toml similarity index 100% rename from clippy_workspace_tests/path_dep/Cargo.toml rename to tests/workspace_test/path_dep/Cargo.toml diff --git a/clippy_workspace_tests/path_dep/src/lib.rs b/tests/workspace_test/path_dep/src/lib.rs similarity index 100% rename from clippy_workspace_tests/path_dep/src/lib.rs rename to tests/workspace_test/path_dep/src/lib.rs diff --git a/clippy_workspace_tests/src/main.rs b/tests/workspace_test/src/main.rs similarity index 100% rename from clippy_workspace_tests/src/main.rs rename to tests/workspace_test/src/main.rs diff --git a/clippy_workspace_tests/subcrate/Cargo.toml b/tests/workspace_test/subcrate/Cargo.toml similarity index 100% rename from clippy_workspace_tests/subcrate/Cargo.toml rename to tests/workspace_test/subcrate/Cargo.toml diff --git a/clippy_workspace_tests/subcrate/src/lib.rs b/tests/workspace_test/subcrate/src/lib.rs similarity index 100% rename from clippy_workspace_tests/subcrate/src/lib.rs rename to tests/workspace_test/subcrate/src/lib.rs From 4a549338451cae037fcbb4c4a6a608132e61a305 Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 14:03:55 -0600 Subject: [PATCH 4/7] Merge dogfood tests The two dogfood tests cannot be run concurrently since they use the same target directory. --- tests/dogfood.rs | 49 +++++++----------------------------------------- 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/tests/dogfood.rs b/tests/dogfood.rs index 6665bb21784b..67af9d05bf40 100644 --- a/tests/dogfood.rs +++ b/tests/dogfood.rs @@ -9,54 +9,19 @@ use std::path::PathBuf; use std::process::Command; -use test_utils::{CARGO_CLIPPY_PATH, IS_RUSTC_TEST_SUITE}; +use test_utils::IS_RUSTC_TEST_SUITE; mod test_utils; #[test] fn dogfood_clippy() { - // run clippy on itself and fail the test if lint warnings are reported - if IS_RUSTC_TEST_SUITE { - return; - } - let root_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - - let mut command = Command::new(&*CARGO_CLIPPY_PATH); - command - .current_dir(root_dir) - .env("CARGO_INCREMENTAL", "0") - .arg("clippy") - .arg("--all-targets") - .arg("--all-features") - .arg("--") - .args(&["-D", "clippy::all"]) - .args(&["-D", "clippy::pedantic"]) - .arg("-Cdebuginfo=0"); // disable debuginfo to generate less data in the target dir - - // internal lints only exist if we build with the internal feature - if cfg!(feature = "internal") { - command.args(&["-D", "clippy::internal"]); - } - - let output = command.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_subprojects() { - // run clippy on remaining subprojects and fail the test if lint warnings are reported if IS_RUSTC_TEST_SUITE { return; } - // NOTE: `path_dep` crate is omitted on purpose here - for project in &["clippy_dev", "clippy_lints", "clippy_utils", "rustc_tools_util"] { - run_clippy_for_project(project); + // "" is the root package + for package in &["", "clippy_dev", "clippy_lints", "clippy_utils", "rustc_tools_util"] { + run_clippy_for_package(package); } } @@ -73,7 +38,7 @@ fn run_metadata_collection_lint() { // Run collection as is std::env::set_var("ENABLE_METADATA_COLLECTION", "1"); - run_clippy_for_project("clippy_lints"); + run_clippy_for_package("clippy_lints"); // Check if cargo caching got in the way if let Ok(file) = File::open(metadata_output_path) { @@ -96,10 +61,10 @@ fn run_metadata_collection_lint() { .unwrap(); // Running the collection again - run_clippy_for_project("clippy_lints"); + run_clippy_for_package("clippy_lints"); } -fn run_clippy_for_project(project: &str) { +fn run_clippy_for_package(project: &str) { let root_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); let mut command = Command::new(&*test_utils::CARGO_CLIPPY_PATH); From 21343ab2a5c89dd881cd34986eb85487513f47d1 Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 14:05:38 -0600 Subject: [PATCH 5/7] Remove rustfmt component check This was more valuable when we used the latest nightly without specifying the toolchain version. --- tests/fmt.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tests/fmt.rs b/tests/fmt.rs index 383702dd439c..0defd45b68b0 100644 --- a/tests/fmt.rs +++ b/tests/fmt.rs @@ -10,14 +10,6 @@ fn fmt() { return; } - // Skip this test if nightly rustfmt is unavailable - let rustup_output = Command::new("rustup").args(&["component", "list"]).output().unwrap(); - assert!(rustup_output.status.success()); - let component_output = String::from_utf8_lossy(&rustup_output.stdout); - if !component_output.contains("rustfmt") { - return; - } - let root_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); let output = Command::new("cargo") .current_dir(root_dir) From 01ef7c79322ff86a6e585d379cd0b48108e4a2a4 Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Mon, 10 Jan 2022 17:47:56 -0600 Subject: [PATCH 6/7] Fix dogfood --- clippy_utils/src/paths.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/clippy_utils/src/paths.rs b/clippy_utils/src/paths.rs index c06a1f826fa2..288c56e9fd73 100644 --- a/clippy_utils/src/paths.rs +++ b/clippy_utils/src/paths.rs @@ -117,6 +117,7 @@ pub const PARKING_LOT_RWLOCK_WRITE_GUARD: [&str; 2] = ["parking_lot", "RwLockWri pub const PATH_BUF_AS_PATH: [&str; 4] = ["std", "path", "PathBuf", "as_path"]; pub const PATH_TO_PATH_BUF: [&str; 4] = ["std", "path", "Path", "to_path_buf"]; pub const PERMISSIONS: [&str; 3] = ["std", "fs", "Permissions"]; +#[cfg_attr(not(unix), allow(clippy::invalid_paths))] pub const PERMISSIONS_FROM_MODE: [&str; 6] = ["std", "os", "unix", "fs", "PermissionsExt", "from_mode"]; pub const POLL: [&str; 4] = ["core", "task", "poll", "Poll"]; pub const POLL_PENDING: [&str; 5] = ["core", "task", "poll", "Poll", "Pending"]; From 90bf72c2cd358eb0770164412d2428cfa0d708e1 Mon Sep 17 00:00:00 2001 From: Cameron Steffen Date: Wed, 12 Jan 2022 10:46:05 -0600 Subject: [PATCH 7/7] Only run dogfood on linux in CI --- .github/workflows/clippy_bors.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/clippy_bors.yml b/.github/workflows/clippy_bors.yml index fe02d9cfc849..989667037c1c 100644 --- a/.github/workflows/clippy_bors.yml +++ b/.github/workflows/clippy_bors.yml @@ -115,8 +115,13 @@ jobs: run: cargo build --features deny-warnings,internal - name: Test + if: runner.os == 'Linux' run: cargo test --features deny-warnings,internal + - name: Test + if: runner.os != 'Linux' + run: cargo test --features deny-warnings,internal -- --skip dogfood + - name: Test clippy_lints run: cargo test --features deny-warnings,internal working-directory: clippy_lints