-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Convert run-make/coverage-reports
tests to use a custom compiletest mode
#112300
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
Conversation
r? @wesleywiser (rustbot has picked a reviewer for you, use r? to override) |
The part I’m least confident about is the implied |
This comment was marked as outdated.
This comment was marked as outdated.
@rustbot label +A-code-coverage |
This part looks ok to me but if @jyn514 wants to check as well, that would be awesome!
If I recall correctly, code coverage isn't supported on windows-gnu which is why the tests ignore it. |
Rebased and added some small tweaks based on feedback:
I haven't looked into the |
In light of still needing to support |
OK, I’ve fundamentally changed how the mode-implied directives work.
This is still a little bit gross, but I think it’s the best compromise for now. |
(A side-effect of the above is that it’s no longer necessary to move |
run-make/coverage-reports
tests to use a custom compiletest moderun-make/coverage-reports
tests to use a custom compiletest mode
I've now migrated all of the |
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
Looks like this is all working again now. |
Dealing with
So while it feels a bit weird to introduce a whole extra suite for one test, I think it ends up being the more natural solution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking pretty good to me! I noticed there used to be a mechanism in the coverage makefile to bless the tests, does --bless
still work?
// FIXME(mati865): MinGW GCC miscompiles compiler-rt profiling library but with Clang it works | ||
// properly. Since we only have GCC on the CI ignore the test for now. | ||
"ignore-windows-gnu", | ||
// FIXME(pietroalbini): this test currently does not work on cross-compiled | ||
// targets because remote-test is not capable of sending back the *.profraw | ||
// files generated by the LLVM instrumentation. | ||
"ignore-cross-compile", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for including these FIXMEs here, that will make it easier to understand in the future when they can be removed!
Yes, |
I was frustrated by the fact that most of the coverage tests are glued together with makefiles and shell scripts, so I tried my hand at converting most of them over to a newly-implemented
run-coverage
mode/suite in compiletest.This
mostlyresolves #85009,though I've left a small number of the existing tests as-is because they would require more work to fix/support.I had time to go back and add support for the more troublesome tests that I had initially skipped over, so this PR now manages to completely get rid of
run-make/coverage-reports
.The patches are arranged as follows:
run-make/coverage-reports