Description
This is a tracking issue for efforts related to some cleanups for bootstrap's test steps (related to ./x test
). I intend to use this issue to track possible cleanups/follow-ups related to trying to break up test.rs
into smaller modules by test kind #135072 and improving test step naming, and will be updated as we go.
Phase 1: Improve the logical organization of test steps
This phase is focused around to break up the huge test.rs
file into more logically organized modules. This is to (1) lower cognitive load when trying to figure out what test steps do, and (2) make it easier to fix existing test steps / add new test steps, by grouping similar test steps together (and localizing helpers / macros).
Possible cleanups/improvements noticed
- Split the tidy test step into two logical steps (Steps A, B).
- Step A: this step runs tidy rules and enforces them on the source tree.
- Step B: this step runs tidy self-tests (this involves an alias hack
tidyselftest
to remap./x test tidy
to run tidy, not tidy's self-tests). - Note that current step impl merges the two roles together into one step.
-
CrateBootstrap
is confusingly named (esp. whenBootstrap
is also a test step). It doesn't actually test bootstrap (that would beBootstrap
), it tests some tools used by bootstrap. -
compiletest
self-test step is named inconsistently asCompiletestTest
(versusCrateXXX
that other self-tests seem to use?). -
Crate
is confusingly named and implement: it's shared by compiler crate tests but also std crate stes? -
TestFloatParse
is one step that does two things (self test vs testing std float).
Phase 2: Improve consistency of test step naming
See discussion in https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Renaming.20test.20step.20structs.
Currently, there really isn't any logical naming scheme for bootstrap test steps, which makes it extra confusing because things are inconsistently named. We'd like to investigate if it's possible to rename test steps to better reflect their nature. This phase consist of mostly two steps:
- 1. Figure out a sane naming scheme for test steps, possibly categorized via nature of test steps.
- 2. Rename test steps and fix inconsistencies noticed while enforcing the naming scheme.