-
Notifications
You must be signed in to change notification settings - Fork 633
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
futures: Require all stable features in tests #2216
Conversation
0658fc3
to
b2cdebb
Compare
A workaround for "the tests take a long time" might be to set up a "cron" driven CI test, so they don't demand feature combination with PRs and soforth, but a reminder to keep on top of it still happens. |
Even if we don't do it in PR, someone has to do it to fix if cron fails... |
Yeah, just the downside really is without testing feature combos, you have no evidence features can be arbitrarily combined in a dependent. So whether or not you have tests that break, you can still have code that breaks, no? |
Our CI already does feature flag check, and, IIRC, all the current |
That looks adequate for ensuring everything compiles, sure, but doesn't give many assurances of expected behaviour. Just restricting this this way makes it harder to test things downstream in a comprehensive way. ( which is a relatively important thing to do, when you're a linux vendor ) |
Part of Rusts feature design is that features do not change behaviour they only expand the available API. As far as I can tell |
Fair enough, and I hope you're right :). I've just tended to preferred to be able to prove things via evidence, as opposed to constructing a conjecture that it should be ok, for I find that, however reasonable we are when making such a conjecture, humans always possess the risk of missing something, which only an evidential test will expose. :) |
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101. This also includes some minor cleanup of imports.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101. This also includes some minor cleanup of imports in tests.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101. This also includes some minor cleanup of imports in tests.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101. This also includes some minor cleanup of imports in tests.
After rust-lang#2216, these redundant imports are unneeded. This reverts almost all of rust-lang#2101. This also includes some minor cleanup of imports in tests.
In projects that have many feature flags and tests, it is hard to maintain the support of the feature flag combination in tests (due to complex cfgs, long test time, etc.), so it is probably better to fail tests if all stable features are not activated.
Related: #2101
Closes: #2098
cc @cramertj @Nemo157 @kentfredric