-
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
Implement some way to run UI tests ignoring run-pass tests #54047
Comments
Of the above choices, I think I like (1b) the best... Anyway, my apologies: My whole strategy of resolving #53764 by migrating the |
Nominating for discussion at T-compiler meeting. |
(actually, after further reflection, I'm starting to warm up to option (1a). After all, we started with a model where we had separate compile-fail and run-pass suites. So it would make sense to retain that division, and just think of this as "upgrading" each of the suites to test the compiler UX as well...) |
I remember that @nikomatsakis wanted to avoid variants like
with run-pass/compile-pass/compile-fail discerned by in-file annotations (i.e. like it works right now basically). |
I do notice that I suspect that is implemented by inspecting directory names, but since it does not list Update: Oops, the documentation doesn't mention Still, I am warming up to this new approach to implementing option (2b). |
My feeling here:
This leads me to suggest that we ought to add a "test filter" that lets you pare down the tests to exclude run-pass or other modes. In fact, if we included the "mode" in the name of the test, that would happen automatically via e.g., the name of a (Of course, there really is no ideal way to organize the tests. But organizing by "what the tests are testing" has advantages when you're trying to look over the set of tests for a given feature, and using |
discussed at meeting. P-high. I will work on addressing @petrochenkov 's developer UX concern in short term. |
namely, my short term plan is:
That the short-term plan. The long term plan will involve engaging the broader compile team to figure out how we want to organize all of our tests. |
AFAIK we also skip e.g. run-pass tests on some CI jobs, which would be to be reimplemented if those are all in ui now -- right? At least, https://github.com/rust-lang/rust/blob/992d1e4d3de364c895963167b70934599574d9a7/src/bootstrap/mk/Makefile.in is doing something that looks like classifying parts of the test suite to not run all of it everywhere. |
@RalfJung yes, one of my assumptions is that as part of a broader reworking, we'll set things up so that one can opt into skipping e.g. all tests that have |
visited for triage. The plan is still to move However, given that landing PR #54223 hasn't been a seamless process: If #54223 hasn't landed in a week's time, then I will immediately move |
…sakis `ui`ify run-pass This addresses the remainder of #53764 by first converting `src/test/run-pass` into another `ui`-style test suite, and then turning on `compare-mode=nll` for that new suite. After this lands, we can address #54047 for the short term by moving all the `src/test/ui/run-pass` tests back to `src/test/run-pass`. (Longer term, the compiler team's current (hypothetical sketch of a) plan (see [1][], [2][]) is unify all the tests by embedding these meta-properties like "// run-pass` into their headers explicitly and dropping the significance of their location on the file system.) [1]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/subject/weekly.20meeting.202018-09-13/near/133889370 [2]: #54047 (comment)
yay #54223 landed. Going to move |
visited for triage. making progress; short term plan should be finished once PR #54530 lands. |
run-pass
test were recently merged into UI tests (#53860, #53992, #53994), which is unfortunate in several aspects.If you are working with diagnostics (changing spans, labels, error messages, etc) or in "compile-fail" area in general, and want to check the result on UI tests, then there's absolutely no need to run thousands of run-pass tests (+ their NLL variations) as well, which are also quite slow because you have to launch both the compiler and the produced executable.
The text was updated successfully, but these errors were encountered: