diff options
| author | Cameron Steffen <cam.steffen94@gmail.com> | 2022-01-10 15:27:00 -0600 |
|---|---|---|
| committer | Cameron Steffen <cam.steffen94@gmail.com> | 2022-01-10 17:08:22 -0600 |
| commit | 920e9f0c4b1aa0921d4dd5e22ea727a31dd8e2cc (patch) | |
| tree | 25602d4369e0e0d27e69dc9b2f9fc2e9ea4c283c | |
| parent | 51dbbf3c4c67446e3ae81e2488f48bfce8dac59f (diff) | |
| download | rust-920e9f0c4b1aa0921d4dd5e22ea727a31dd8e2cc.tar.gz rust-920e9f0c4b1aa0921d4dd5e22ea727a31dd8e2cc.zip | |
Move workspace test
| -rw-r--r-- | .github/workflows/clippy.yml | 8 | ||||
| -rw-r--r-- | .github/workflows/clippy_bors.yml | 8 | ||||
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | tests/dogfood.rs | 111 | ||||
| -rw-r--r-- | tests/workspace.rs | 107 | ||||
| -rw-r--r-- | tests/workspace_test/Cargo.toml (renamed from clippy_workspace_tests/Cargo.toml) | 2 | ||||
| -rw-r--r-- | tests/workspace_test/build.rs (renamed from clippy_workspace_tests/build.rs) | 0 | ||||
| -rw-r--r-- | tests/workspace_test/path_dep/Cargo.toml (renamed from clippy_workspace_tests/path_dep/Cargo.toml) | 0 | ||||
| -rw-r--r-- | tests/workspace_test/path_dep/src/lib.rs (renamed from clippy_workspace_tests/path_dep/src/lib.rs) | 0 | ||||
| -rw-r--r-- | tests/workspace_test/src/main.rs (renamed from clippy_workspace_tests/src/main.rs) | 0 | ||||
| -rw-r--r-- | tests/workspace_test/subcrate/Cargo.toml (renamed from clippy_workspace_tests/subcrate/Cargo.toml) | 0 | ||||
| -rw-r--r-- | tests/workspace_test/subcrate/src/lib.rs (renamed from clippy_workspace_tests/subcrate/src/lib.rs) | 0 |
12 files changed, 109 insertions, 128 deletions
diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml index 8b5e814b177..116ae031bb7 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 eb045ec30dc..fe02d9cfc84 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 e82a0ec4765..3e50c45a9b6 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 42e1628f642..6665bb21784 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 00000000000..677b4a4d569 --- /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 index 7a235b215d3..bf5b4ca5288 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 index 3507168a3a9..3507168a3a9 100644 --- a/clippy_workspace_tests/build.rs +++ b/tests/workspace_test/build.rs diff --git a/clippy_workspace_tests/path_dep/Cargo.toml b/tests/workspace_test/path_dep/Cargo.toml index 85a91cd2dec..85a91cd2dec 100644 --- a/clippy_workspace_tests/path_dep/Cargo.toml +++ b/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 index 35ce524f2b1..35ce524f2b1 100644 --- a/clippy_workspace_tests/path_dep/src/lib.rs +++ b/tests/workspace_test/path_dep/src/lib.rs diff --git a/clippy_workspace_tests/src/main.rs b/tests/workspace_test/src/main.rs index b322eca1db5..b322eca1db5 100644 --- a/clippy_workspace_tests/src/main.rs +++ b/tests/workspace_test/src/main.rs diff --git a/clippy_workspace_tests/subcrate/Cargo.toml b/tests/workspace_test/subcrate/Cargo.toml index 45362c11b85..45362c11b85 100644 --- a/clippy_workspace_tests/subcrate/Cargo.toml +++ b/tests/workspace_test/subcrate/Cargo.toml diff --git a/clippy_workspace_tests/subcrate/src/lib.rs b/tests/workspace_test/subcrate/src/lib.rs index 8b137891791..8b137891791 100644 --- a/clippy_workspace_tests/subcrate/src/lib.rs +++ b/tests/workspace_test/subcrate/src/lib.rs |
