reconsider "the way to run a crate's unit tests is `x test <crate>`"
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
Summary
@ChrisDenton brought up to me the following thorny problem:
Say you are a libs contributor working on std. Right now, to run all relevant tests, the command you need is something like x test library tests/ui/std rustdoc-js-std. This is verbose and a little unreasonable to expect people to remember.
We would like to add an alias for this; x test std-tests could work. But now x test std does something people don't expect (only runs a subset of the std tests). If we change x test std to mean x test std-tests, then now we have an inconsistency between x test core, which only runs crate tests, and x test std, which means "run a superset of crate tests".
When I added unit tests in https://github.com/rust-lang/rust/pull/95503, I wasn't really thinking about "run all the tests for an area", because we didn't have any equivalent of std-tests, then or now. But now that I've added it, the naming conflict is unfortunate. Maybe we should reconsider the naming here, and have the way to run unit tests for a crate be x test std-unit or something like that? Or only do this for library crates, and have x test rustc_resolve continue to mean "run the unit tests for rustc_resolve"? It could be nice to have x test rustc_resolve also imply x test tests/ui/resolve, though.
Command used
x test std
x test library
x test rustc_resolve
Expected behaviour
Actual behaviour
Bootstrap configuration (bootstrap.toml)
see above
Operating system
ubuntu 22.04, but this is a problem on all OSes
HEAD
a114bcffe7c6cd4c7cf6dccac0a47ed49894ed2f
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the x test command paths for std, core, library, and rustc_resolve, using the commands listed in the issue. First establish the intended distinction between crate unit tests and all tests for an area, then compare the naming options described. Done means an agreed naming and behavior scheme, with coverage for the affected command cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100