diff options
| author | Philipp Hansch <dev@phansch.net> | 2019-03-24 14:06:47 +0100 |
|---|---|---|
| committer | Philipp Hansch <dev@phansch.net> | 2019-03-24 17:04:40 +0100 |
| commit | 02b8533ac8c1cc4521b1da91e52c1327f656c44a (patch) | |
| tree | ff71c7e73d919de241203795d7f82d5bdda16860 /src/bootstrap | |
| parent | fb5ed488ff1a251db895c545592488a67be67112 (diff) | |
| download | rust-02b8533ac8c1cc4521b1da91e52c1327f656c44a.tar.gz rust-02b8533ac8c1cc4521b1da91e52c1327f656c44a.zip | |
Add a way to track Rustfix UI test coverage
This came out of the first Rustfix WG meeting. One of the goals is to enable Rustfix tests for all UI tests that trigger lints with `MachineApplicable` suggestions. In order to do that we first want to create a tracking issue that lists all files with missing `// run-rustfix` headers. This PR adds a `--rustfix-coverage` flag to `./x.py` and compiletest to list the files with the missing headers in `/tmp/rustfix_missing_coverage.txt`. From that file we can create the tracking issue and at some point also enforce the `// run-rustfix` flag on UI tests with `MachineApplicable` lints.
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/flags.rs | 15 | ||||
| -rw-r--r-- | src/bootstrap/test.rs | 4 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index 0f9a4271ac0..23719378c84 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -56,6 +56,7 @@ pub enum Subcommand { rustc_args: Vec<String>, fail_fast: bool, doc_tests: DocTests, + rustfix_coverage: bool, }, Bench { paths: Vec<PathBuf>, @@ -188,6 +189,12 @@ To learn more about a subcommand, run `./x.py <subcommand> -h`" "mode describing what file the actual ui output will be compared to", "COMPARE MODE", ); + opts.optflag( + "", + "rustfix-coverage", + "enable this to generate a Rustfix coverage file, which is saved in \ + `/tmp/rustfix_missing_coverage.txt`", + ); } "bench" => { opts.optmulti("", "test-args", "extra arguments", "ARGS"); @@ -363,6 +370,7 @@ Arguments: test_args: matches.opt_strs("test-args"), rustc_args: matches.opt_strs("rustc-args"), fail_fast: !matches.opt_present("no-fail-fast"), + rustfix_coverage: matches.opt_present("rustfix-coverage"), doc_tests: if matches.opt_present("doc") { DocTests::Only } else if matches.opt_present("no-doc") { @@ -467,6 +475,13 @@ impl Subcommand { } } + pub fn rustfix_coverage(&self) -> bool { + match *self { + Subcommand::Test { rustfix_coverage, .. } => rustfix_coverage, + _ => false, + } + } + pub fn compare_mode(&self) -> Option<&str> { match *self { Subcommand::Test { diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index bbe1872d395..41c73f307b6 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -1284,6 +1284,10 @@ impl Step for Compiletest { cmd.arg("--android-cross-path").arg(""); } + if builder.config.cmd.rustfix_coverage() { + cmd.arg("--rustfix-coverage"); + } + builder.ci_env.force_coloring_in_ci(&mut cmd); let _folder = builder.fold_output(|| format!("test_{}", suite)); |
