-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify coverage tests #83755
Simplify coverage tests #83755
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
r? tmandry |
This addresses the problems discussed in #83663 (comment) |
r? @tmandry |
oops! Thanks Josh. |
@bors r+ |
📌 Commit 9c0eda76a1edb871f652f34fd0bb898ed2c02e12 has been approved by |
☔ The latest upstream changes (presumably #83663) made this pull request unmergeable. Please resolve the merge conflicts. |
Why are the tests Fulldeps tests are very special and should only be used for legacy plugins and other uses of the compiler as a library, any regular compiler use doesn't need it. Unnecessary use of fulldeps is a huge waste of time due to the compiler being built twice. |
I'm surprised no one has ever said anything about this in the past year, but thanks for suggesting it. I'll try moving them and if there are no side effects, I'll include the move in this cleanup PR. Thanks! |
This change reduces the risk of impacting coverage tests on unrelated changes (such as MIR and Span changes), and reduces the burden when blessing coverage changes in case it is necessary. * Remove all spanview tests. The spanview tests were useful during development, but they can be generated as needed, via compiler command line flags. They aren't critical to confirming coverage results. (The coverage report tests are sufficient.) When spanview regeneration was necessary, the diffs were way too hard to read to be useful anyway. So I'm removing them to reduce friction from a feature that is no longer useful. * Remove the requirement for `llvm-cov show --debug` when blessing tests. The `--debug` flag is, unfortunately, only available if LLVM is built with `optimize = false` (in Rust's config.toml). This adds significant time and resource burdens to the contributor's build. As it turns out, for other reasons in the past, I wasn't actually using the debug output (counter info) to validate coverage anymore either, so it was required for no reason, I now realize.
9c0eda7
to
fad5388
Compare
For some reason, the |
@tmandry (or anyone) I've resolved the conflicts. Can someone please resubmit this to bors for me? Thanks! |
@bors r=tmandry |
📌 Commit fad5388 has been approved by |
Simplify coverage tests This change reduces the risk of impacting coverage tests on unrelated changes (such as MIR and Span changes), and reduces the burden when blessing coverage changes in case it is necessary. * Remove all spanview tests. The spanview tests were useful during development, but they can be generated as needed, via compiler command line flags. They aren't critical to confirming coverage results. (The coverage report tests are sufficient.) When spanview regeneration was necessary, the diffs were way too hard to read to be useful anyway. So I'm removing them to reduce friction from a feature that is no longer useful. * Remove the requirement for `llvm-cov show --debug` when blessing tests. The `--debug` flag is, unfortunately, only available if LLVM is built with `optimize = false` (in Rust's config.toml). This adds significant time and resource burdens to the contributor's build. As it turns out, for other reasons in the past, I wasn't actually using the debug output (counter info) to validate coverage anymore either, so it was required for no reason, I now realize.
Rollup of 7 pull requests Successful merges: - rust-lang#83065 (Rework `std::sys::windows::alloc`) - rust-lang#83478 (rustdoc: Add unstable option to only emit shared/crate-specific files) - rust-lang#83629 (Fix double-drop in `Vec::from_iter(vec.into_iter())` specialization when items drop during panic) - rust-lang#83673 (give full path of constraint in suggest_constraining_type_param) - rust-lang#83755 (Simplify coverage tests) - rust-lang#83757 (2229: Support migration via rustfix) - rust-lang#83771 (Fix stack overflow detection on FreeBSD 11.1+) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Move rustdoc run-make-fulldeps tests to run-make This cuts the time to run the tests in half, because they don't require building a stage 2 compiler. They were all added to fulldeps before rust-lang#82802 because rustdoc wasn't available in run-make tests. This doesn't change coverage tests, which will be changed soon in a separate PR (rust-lang#83755 (comment)). This also changes some of the `-include` directives, see rust-lang#83773 for what's going on there. r? `@petrochenkov`
@richkadel Did you remember to build the demangler for run-make, not just run-make-fulldeps? Lines 1180 to 1182 in e87c4dd
Not sure if llvm-cov is related to the demangler, but that stood out as needing changes. |
Thanks @jyn514 ! Right, I also noticed that when I was updating bootstrap a couple of weeks ago. I'm sure that is a problem. I'm not sure if it's the only reason it failed, but possibly. (The error I saw didn't seem related to rust-demangler, but who knows how that might have manifested.) I did create a new github Issue for this, and mentioned the bootstrap change there: #83830 |
This change reduces the risk of impacting coverage tests on unrelated
changes (such as MIR and Span changes), and reduces the burden when
blessing coverage changes in case it is necessary.
Remove all spanview tests. The spanview tests were useful during
development, but they can be generated as needed, via compiler command
line flags. They aren't critical to confirming coverage results. (The
coverage report tests are sufficient.)
When spanview regeneration was necessary, the diffs were way too hard
to read to be useful anyway. So I'm removing them to reduce friction
from a feature that is no longer useful.
Remove the requirement for
llvm-cov show --debug
when blessingtests. The
--debug
flag is, unfortunately, only available if LLVM isbuilt with
optimize = false
(in Rust's config.toml). This addssignificant time and resource burdens to the contributor's build. As
it turns out, for other reasons in the past, I wasn't actually using
the debug output (counter info) to validate coverage anymore either,
so it was required for no reason, I now realize.