-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Run standard library unit tests without optimizations in nopt
CI jobs
#73383
Conversation
I would rather add a dedicated flag (or perhaps third value for disable-optimize-tests) which builds std unoptimized and tests that; I suspect that should mostly be a matter of adjusting this to gate on We'll want to test, but I believe that should just work then on the nopt builders and get us the behavior we want (stage 2 testing). |
Actually to start off we may want some compiler team survey or so -- maybe there's no need for a separate flag, we can just integrate it directly. I would be fine with that personally but maybe there's value for "compiler" and "std"/test/etc tests being separated out. |
I'm going to relabel as waiting-on-author. I'll leave it up to you if you want to bring this up at a meeting (nominating it, I guess) to determine whether a dedicated flag or not makes sense, or instead implement separate flag(s). |
☔ The latest upstream changes (presumably #73650) made this pull request unmergeable. Please resolve the merge conflicts. |
@ecstatic-morse This is a triage bump |
Still needs a rebase... |
41eaf0a
to
07a66a1
Compare
We already have builders which built standard library *test*s without optimizations, but we previously did not have builders which built the standard library itself without optimizations and then tested that. This adds those builds for i686 and x86_64 linux.
07a66a1
to
b190d29
Compare
@bors try |
⌛ Trying commit b190d29cb370185f56da1952c20422c217d3b2cb with merge b527eeff23cea94181bdef3d291105be5addd1df... |
☀️ Try build successful - checks-actions, checks-azure |
b190d29
to
662871f
Compare
@bors r+ Okay, I've rebased this and the try build came back successfully, so approving. Looking back at what I said earlier, I think a dedicated option for "I want to run tests against no-opt versions of std" or so may make sense, but it need not block the minimal version here which doesn't require any bootstrap changes. This PR also gets us stage 0, i.e., |
📌 Commit 662871f has been approved by |
☀️ Test successful - checks-actions, checks-azure |
This was discussed in #73288 as a way to catch similar issues in the future. This builds an unoptimized standard library with the bootstrap compiler and runs the unit tests. This takes about 2 minutes on my laptop.
I confirmed that this method works locally, although there may be a better way of implementing it. It would be better to use the stage 2 compiler instead of the bootstrap one.
Notably, there are currently four
libstd
unit tests that fail in debug mode oni686-unkown-linux-gnu
(a tier one target):These are the tests that prompted #73288 as well as the ones added in #72568, which is currently broken due to #73328.