-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Move coverage tests from run-make-fulldeps to run-make #85007
Conversation
cc894d1
to
8939a19
Compare
I forget - maybe we've already had this conversation - but while this doesn't seem like a bad step, it may also make sense to move the coverage tests into compiletest itself (similar to how we have mir-opt tests, in theory). I'm not quite sure what is too unique about them that they need to be driven by Make, but my guess is writing the driver in Rust is likely going to help avoid some of the problems that've cropped up over time, and will help avoid tying coverage tests to any 'related' dependencies (e.g., run-make tests depend on rustdoc, but coverage tests likely don't need rustdoc). |
Making a coverage-specific compiletest has been discussed a couple of times. It's a good idea, but there just hasn't been time (especially for me to get ramped up on how to write a compiletest, let alone migrate all of the logic from the Makefiles, which is non-trivial). I don't think I've ever filed an Issue, though, so I'll do that at least. |
I don't understand why that would need the LLVM library path. |
Filed #85009 |
To be honest, I don't know if it will. No one so far has been able to explain why the MUSL build target fails in CI (very early in the build) with: failed to execute command: "musl-g++" "-ffunction-sections"
I don't know anything about the MUSL target, but I think |
Also, it's not 100% certain that the error: |
☔ The latest upstream changes (presumably #85022) made this pull request unmergeable. Please resolve the merge conflicts. |
8939a19
to
9e41596
Compare
This comment has been minimized.
This comment has been minimized.
9e41596
to
baa07f7
Compare
This comment has been minimized.
This comment has been minimized.
baa07f7
to
25692e8
Compare
This comment has been minimized.
This comment has been minimized.
25692e8
to
013aa9a
Compare
This comment has been minimized.
This comment has been minimized.
Fixes: rust-lang#83830 The first commit was migrated from another PR that failed because CI had errors likely resulting from trying to run the coverage tests in run-make. (See: rust-lang#84797 (comment)) So moving the tests should be done as it's own separate PR. To attempt to resolve those CI errors, this PR also updates bootstrap to add LLVM library link path to run-make. When moving coverage tests from run-make-fulldeps to run-make, some targets failed in CI with an obscure message: failed to execute command: "musl-g++" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-static" "-Wa,-mrelax-relocations=no" "-print-file-name=libstdc++.a" error: No such file or directory (os error 2) The coverage tests include # needs-profiler-support and these are the first run-make tests to require it (as far as I can tell). There is a special case in bootstrap for adding the LLVM library link path, and it applies to run-make-fulldeps. This commit adds it for run-make as well.
When moving `coverage` tests from `run-make-fulldeps` to `run-make`, some targets failed in CI with an obscure message: failed to execute command: "musl-g++" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-static" "-Wa,-mrelax-relocations=no" "-print-file-name=libstdc++.a" error: No such file or directory (os error 2) The coverage tests include `# needs-profiler-support` and these are the first `run-make` tests to require it (as far as I can tell). There is a special case in `bootstrap` for adding the LLVM library link path, and it applies to `run-make-fulldeps`. This commit adds it for `run-make` as well.
013aa9a
to
4881fc7
Compare
@bors r+ rollup=never |
📌 Commit 4881fc7 has been approved by |
⌛ Testing commit 4881fc7 with merge 8f0f5468b2b5cb2a26d03fbd3e99dd47d4568e6a... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
Well, I did try to test this using the target Docker image and I don't know what else to try. |
I'm able to reproduce this with |
I guess it refers to |
Thanks for the insights! I did see a different error message (different from CI) in my Docker repro that seems to confirm So I don't know if @hyd-dev Since you are able to reproduce, did all tests for And if so, does it run |
I guess you could just check the log of another (merged) PR: https://github.com/rust-lang-ci/rust/runs/2534368555 (looks like |
You're right. Thank you. No need to check locally. That explains the difference at least. |
@jyn514 @petrochenkov - IIRC both of you recommended moving coverage tests from I'm considering abandoning this PR and leaving the coverage tests in Please let me know if you have a better recommendation. As recently revealed (see prior comment), apparently I could try I don't know if it's worth trying to identify ALL of the I don't see a clear, well understood path to porting tests from Thanks in advance for your thoughts and recommendations! |
@@ -1399,7 +1399,7 @@ note: if you're sure you want to do this, please open an issue as to why. In the | |||
// requirement, but the `-L` library path is not propagated across | |||
// separate compilations. We can add LLVM's library path to the | |||
// platform-specific environment variable as a workaround. | |||
if !builder.config.dry_run && suite.ends_with("fulldeps") { | |||
if !builder.config.dry_run && (suite == "ui-fulldeps" || mode == "run-make") { |
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 change should be removed. We now know this did not fix the CI issues in the MUSL target.
I don't understand run-make very well at all (I've also had trouble in #83775) and also I don't have time to review this. |
☔ The latest upstream changes (presumably #85199) made this pull request unmergeable. Please resolve the merge conflicts. |
No known way to resolve this, so I'm closing this PR. |
Fixes: #83830
The first commit was migrated from another PR that failed because CI had errors likely resulting from trying to run the coverage tests in
run-make
. (See: #84797 (comment))So moving the tests should be done as it's own separate PR.
To attempt to resolve those CI errors, this PR also updates bootstrap to add LLVM library link path to
run-make
.When moving
coverage
tests fromrun-make-fulldeps
torun-make
,some targets failed in CI with an obscure message:
failed to execute command: "musl-g++" "-ffunction-sections"
"-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386"
"-static" "-Wa,-mrelax-relocations=no" "-print-file-name=libstdc++.a"
error: No such file or directory (os error 2)
The coverage tests include
# needs-profiler-support
and these are thefirst
run-make
tests to require it (as far as I can tell).There is a special case in
bootstrap
for adding the LLVM library linkpath, and it applies to
run-make-fulldeps
. This commit adds it forrun-make
as well.r? @tmandry
cc: @wesleywiser @cuviper (regarding the change in
bootstrap/tests.rs