mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 07:22:42 +00:00
Implement x.py test src/tools/clippy --bless
- Add clippy_dev to the rust workspace Before, it would give an error that it wasn't either included or excluded from the workspace: ``` error: current package believes it's in a workspace when it's not: current: /home/joshua/rustc/src/tools/clippy/clippy_dev/Cargo.toml workspace: /home/joshua/rustc/Cargo.toml this may be fixable by adding `src/tools/clippy/clippy_dev` to the `workspace.members` array of the manifest located at: /home/joshua/rustc/Cargo.toml Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude` array, or add an empty `[workspace]` table to the package's manifest. ``` - Change clippy's copy of compiletest not to special-case rust-lang/rust. Using OUT_DIR confused `clippy_dev` and it couldn't find the test outputs. This is one of the reasons why `cargo dev bless` used to silently do nothing (the others were that `CARGO_TARGET_DIR` and `PROFILE` weren't set appropriately). - Run clippy_dev on test failure I tested this by removing a couple lines from a stderr file, and they were correctly replaced. - Fix clippy_dev warnings
This commit is contained in:
parent
f6d1f368db
commit
af0dde24b9
@ -44,7 +44,7 @@ pub fn create(pass: Option<&str>, lint_name: Option<&str>, category: Option<&str
|
|||||||
create_test(&lint).context("Unable to create a test for the new lint")
|
create_test(&lint).context("Unable to create a test for the new lint")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_lint(lint: &LintData) -> io::Result<()> {
|
fn create_lint(lint: &LintData<'_>) -> io::Result<()> {
|
||||||
let (pass_type, pass_lifetimes, pass_import, context_import) = match lint.pass {
|
let (pass_type, pass_lifetimes, pass_import, context_import) = match lint.pass {
|
||||||
"early" => ("EarlyLintPass", "", "use rustc_ast::ast::*;", "EarlyContext"),
|
"early" => ("EarlyLintPass", "", "use rustc_ast::ast::*;", "EarlyContext"),
|
||||||
"late" => ("LateLintPass", "<'_>", "use rustc_hir::*;", "LateContext"),
|
"late" => ("LateLintPass", "<'_>", "use rustc_hir::*;", "LateContext"),
|
||||||
@ -68,7 +68,7 @@ fn create_lint(lint: &LintData) -> io::Result<()> {
|
|||||||
write_file(lint.project_root.join(&lint_path), lint_contents.as_bytes())
|
write_file(lint.project_root.join(&lint_path), lint_contents.as_bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_test(lint: &LintData) -> io::Result<()> {
|
fn create_test(lint: &LintData<'_>) -> io::Result<()> {
|
||||||
fn create_project_layout<P: Into<PathBuf>>(lint_name: &str, location: P, case: &str, hint: &str) -> io::Result<()> {
|
fn create_project_layout<P: Into<PathBuf>>(lint_name: &str, location: P, case: &str, hint: &str) -> io::Result<()> {
|
||||||
let mut path = location.into().join(case);
|
let mut path = location.into().join(case);
|
||||||
fs::create_dir(&path)?;
|
fs::create_dir(&path)?;
|
||||||
|
@ -83,14 +83,7 @@ fn default_config() -> compiletest::Config {
|
|||||||
third_party_crates(),
|
third_party_crates(),
|
||||||
));
|
));
|
||||||
|
|
||||||
config.build_base = if cargo::is_rustc_test_suite() {
|
config.build_base = host_lib().join("test_build_base");
|
||||||
// This make the stderr files go to clippy OUT_DIR on rustc repo build dir
|
|
||||||
let mut path = PathBuf::from(env!("OUT_DIR"));
|
|
||||||
path.push("test_build_base");
|
|
||||||
path
|
|
||||||
} else {
|
|
||||||
host_lib().join("test_build_base")
|
|
||||||
};
|
|
||||||
config.rustc_path = clippy_driver_path();
|
config.rustc_path = clippy_driver_path();
|
||||||
config
|
config
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user